diff --git a/ballerina/client.bal b/ballerina/client.bal index 87e1844..f0dbd30 100644 --- a/ballerina/client.bal +++ b/ballerina/client.bal @@ -17,6 +17,7 @@ // specific language governing permissions and limitations // under the License. +import ballerina/data.jsondata; import ballerina/http; import ballerina/mime; @@ -29,5697 +30,4661 @@ public isolated client class Client { # + serviceUrl - URL of the target service # + return - An error if connector initialization failed public isolated function init(ConnectionConfig config, string serviceUrl = "https://api.stripe.com/v1") returns error? { - http:ClientConfiguration httpClientConfig = {auth: config.auth, httpVersion: config.httpVersion, timeout: config.timeout, forwarded: config.forwarded, poolConfig: config.poolConfig, compression: config.compression, circuitBreaker: config.circuitBreaker, retryConfig: config.retryConfig, validation: config.validation}; - do { - if config.http1Settings is ClientHttp1Settings { - ClientHttp1Settings settings = check config.http1Settings.ensureType(ClientHttp1Settings); - httpClientConfig.http1Settings = {...settings}; - } - if config.http2Settings is http:ClientHttp2Settings { - httpClientConfig.http2Settings = check config.http2Settings.ensureType(http:ClientHttp2Settings); - } - if config.cache is http:CacheConfig { - httpClientConfig.cache = check config.cache.ensureType(http:CacheConfig); - } - if config.responseLimits is http:ResponseLimitConfigs { - httpClientConfig.responseLimits = check config.responseLimits.ensureType(http:ResponseLimitConfigs); - } - if config.secureSocket is http:ClientSecureSocket { - httpClientConfig.secureSocket = check config.secureSocket.ensureType(http:ClientSecureSocket); - } - if config.proxy is http:ProxyConfig { - httpClientConfig.proxy = check config.proxy.ensureType(http:ProxyConfig); - } - } - http:Client httpEp = check new (serviceUrl, httpClientConfig); - self.clientEp = httpEp; - return; + http:ClientConfiguration httpClientConfig = {auth: config.auth, httpVersion: config.httpVersion, http1Settings: config.http1Settings, http2Settings: config.http2Settings, timeout: config.timeout, forwarded: config.forwarded, followRedirects: config.followRedirects, poolConfig: config.poolConfig, cache: config.cache, compression: config.compression, circuitBreaker: config.circuitBreaker, retryConfig: config.retryConfig, cookieConfig: config.cookieConfig, responseLimits: config.responseLimits, secureSocket: config.secureSocket, proxy: config.proxy, socketConfig: config.socketConfig, validation: config.validation, laxDataBinding: config.laxDataBinding}; + self.clientEp = check new (serviceUrl, httpClientConfig); } - #

With Connect, you can delete accounts you manage.

- # - #

Test-mode accounts can be deleted at any time.

- # - #

Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all balances are zero.

- # - #

If you want to delete your own account, use the account information tab in your account settings instead.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete accounts/[string account](map headers = {}) returns Deleted_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Delete a specified external account for a given account.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete accounts/[string account]/bank_accounts/[string id](map headers = {}) returns Deleted_external_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts/${getEncodedUri(id)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Delete a specified external account for a given account.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete accounts/[string account]/external_accounts/[string id](map headers = {}) returns Deleted_external_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts/${getEncodedUri(id)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete accounts/[string account]/people/[string person](map headers = {}) returns Deleted_person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/people/${getEncodedUri(person)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete accounts/[string account]/persons/[string person](map headers = {}) returns Deleted_person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/persons/${getEncodedUri(person)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Delete an apple pay domain.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete apple_pay/domains/[string domain](map headers = {}) returns Deleted_apple_pay_domain|error { - string resourcePath = string `/apple_pay/domains/${getEncodedUri(domain)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

You can delete coupons via the coupon management page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can’t redeem the coupon. You can also delete coupons via the API.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete coupons/[string coupon](map headers = {}) returns Deleted_coupon|error { - string resourcePath = string `/coupons/${getEncodedUri(coupon)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer](map headers = {}) returns Deleted_customer|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Delete a specified source for a given customer.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/bank_accounts/[string id](bank_accounts_id_body_2 payload, map headers = {}) returns inline_response_200_2|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Delete a specified source for a given customer.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/cards/[string id](cards_id_body_1 payload, map headers = {}) returns inline_response_200_2|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cards/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Removes the currently applied discount on a customer.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/discount(map headers = {}) returns Deleted_discount|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/discount`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Delete a specified source for a given customer.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/sources/[string id](sources_id_body_1 payload, map headers = {}) returns inline_response_200_2|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Cancels a customer’s subscription. If you set the at_period_end parameter to true, the subscription will remain active until the end of the period, at which point it will be canceled and not renewed. Otherwise, with the default false value, the subscription is terminated immediately. In either case, the customer will not be charged again for the subscription.

- # - #

Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

- # - #

By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/subscriptions/[string subscription_exposed_id](subscriptions_subscription_exposed_id_body_1 payload, map headers = {}) returns Subscription|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscription_exposed_id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Removes the currently applied discount on a customer.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/subscriptions/[string subscription_exposed_id]/discount(map headers = {}) returns Deleted_discount|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscription_exposed_id)}/discount`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes an existing tax_id object.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete customers/[string customer]/tax_ids/[string id](map headers = {}) returns Deleted_tax_id|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids/${getEncodedUri(id)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Invalidates a short-lived API key for a given resource.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete ephemeral_keys/[string 'key](ephemeral_keys_key_body payload, map headers = {}) returns Ephemeral_key|error { - string resourcePath = string `/ephemeral_keys/${getEncodedUri('key)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they’re not attached to invoices, or if it’s attached to a draft invoice.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete invoiceitems/[string invoiceitem](map headers = {}) returns Deleted_invoiceitem|error { - string resourcePath = string `/invoiceitems/${getEncodedUri(invoiceitem)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be voided.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete invoices/[string invoice](map headers = {}) returns Deleted_invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deleting plans means new subscribers can’t be added. Existing subscribers aren’t affected.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete plans/[string plan](map headers = {}) returns Deleted_plan|error { - string resourcePath = string `/plans/${getEncodedUri(plan)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete products/[string id](map headers = {}) returns Deleted_product|error { - string resourcePath = string `/products/${getEncodedUri(id)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes the feature attachment to a product

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete products/[string product]/features/[string id](map headers = {}) returns Deleted_product_feature|error { - string resourcePath = string `/products/${getEncodedUri(product)}/features/${getEncodedUri(id)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes a ValueListItem object, removing it from its parent value list.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete radar/value_list_items/[string item](map headers = {}) returns Deleted_radar\.value_list_item|error { - string resourcePath = string `/radar/value_list_items/${getEncodedUri(item)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete radar/value_lists/[string value_list](map headers = {}) returns Deleted_radar\.value_list|error { - string resourcePath = string `/radar/value_lists/${getEncodedUri(value_list)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete subscription_items/[string item](subscription_items_item_body_1 payload, map headers = {}) returns Deleted_subscription_item|error { - string resourcePath = string `/subscription_items/${getEncodedUri(item)}`; - http:Request request = new; - string encodedRequestBody = createFormURLEncodedRequestBody(payload); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

- # - #

Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

- # - #

By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete subscriptions/[string subscription_exposed_id](subscriptions_subscription_exposed_id_body_3 payload, map headers = {}) returns Subscription|error { - string resourcePath = string `/subscriptions/${getEncodedUri(subscription_exposed_id)}`; - http:Request request = new; - map requestBodyEncoding = {"cancellation_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->delete(resourcePath, request, headers); - } - - #

Removes the currently applied discount on a subscription.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete subscriptions/[string subscription_exposed_id]/discount(map headers = {}) returns Deleted_discount|error { - string resourcePath = string `/subscriptions/${getEncodedUri(subscription_exposed_id)}/discount`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes an existing account or customer tax_id object.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete tax_ids/[string id](map headers = {}) returns Deleted_tax_id|error { - string resourcePath = string `/tax_ids/${getEncodedUri(id)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes a Configuration object.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete terminal/configurations/[string configuration](map headers = {}) returns Deleted_terminal\.configuration|error { - string resourcePath = string `/terminal/configurations/${getEncodedUri(configuration)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes a Location object.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete terminal/locations/[string location](map headers = {}) returns Deleted_terminal\.location|error { - string resourcePath = string `/terminal/locations/${getEncodedUri(location)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes a Reader object.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete terminal/readers/[string reader](map headers = {}) returns Deleted_terminal\.reader|error { - string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Deletes a test clock.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete test_helpers/test_clocks/[string test_clock](map headers = {}) returns Deleted_test_helpers\.test_clock|error { - string resourcePath = string `/test_helpers/test_clocks/${getEncodedUri(test_clock)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

You can also delete webhook endpoints via the webhook endpoint management page of the Stripe dashboard.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function delete webhook_endpoints/[string webhook_endpoint](map headers = {}) returns Deleted_webhook_endpoint|error { - string resourcePath = string `/webhook_endpoints/${getEncodedUri(webhook_endpoint)}`; - return self.clientEp->delete(resourcePath, headers = headers); - } - - #

Retrieves the details of an account.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get account(map headers = {}, *GetAccountQueries queries) returns Account|error { - string resourcePath = string `/account`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of accounts connected to your platform via Connect. If you’re not a platform, the list is empty.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts(map headers = {}, *GetAccountsQueries queries) returns AccountList|error { - string resourcePath = string `/accounts`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the details of an account.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account](map headers = {}, *GetAccountsAccountQueries queries) returns Account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a specified external account for a given account.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/bank_accounts/[string id](map headers = {}, *GetAccountsAccountBankAccountsIdQueries queries) returns External_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/capabilities(map headers = {}, *GetAccountsAccountCapabilitiesQueries queries) returns ListAccountCapability|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/capabilities`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves information about the specified Account Capability.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/capabilities/[string capability](map headers = {}, *GetAccountsAccountCapabilitiesCapabilityQueries queries) returns Capability|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/capabilities/${getEncodedUri(capability)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

List external accounts for an account.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/external_accounts(map headers = {}, *GetAccountsAccountExternalAccountsQueries queries) returns ExternalAccountList|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a specified external account for a given account.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/external_accounts/[string id](map headers = {}, *GetAccountsAccountExternalAccountsIdQueries queries) returns External_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/people(map headers = {}, *GetAccountsAccountPeopleQueries queries) returns PersonList|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/people`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves an existing person.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/people/[string person](map headers = {}, *GetAccountsAccountPeoplePersonQueries queries) returns Person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/people/${getEncodedUri(person)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/persons(map headers = {}, *GetAccountsAccountPersonsQueries queries) returns PersonList|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/persons`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves an existing person.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get accounts/[string account]/persons/[string person](map headers = {}, *GetAccountsAccountPersonsPersonQueries queries) returns Person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/persons/${getEncodedUri(person)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

List apple pay domains.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get apple_pay/domains(map headers = {}, *GetApplePayDomainsQueries queries) returns ApplePayDomainList|error { - string resourcePath = string `/apple_pay/domains`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve an apple pay domain.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get apple_pay/domains/[string domain](map headers = {}, *GetApplePayDomainsDomainQueries queries) returns Apple_pay_domain|error { - string resourcePath = string `/apple_pay/domains/${getEncodedUri(domain)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of application fees you’ve previously collected. The application fees are returned in sorted order, with the most recent fees appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get application_fees(map headers = {}, *GetApplicationFeesQueries queries) returns PlatformEarningList|error { - string resourcePath = string `/application_fees`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get application_fees/[string fee]/refunds/[string id](map headers = {}, *GetApplicationFeesFeeRefundsIdQueries queries) returns Fee_refund|error { - string resourcePath = string `/application_fees/${getEncodedUri(fee)}/refunds/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get application_fees/[string id](map headers = {}, *GetApplicationFeesIdQueries queries) returns Application_fee|error { - string resourcePath = string `/application_fees/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get application_fees/[string id]/refunds(map headers = {}, *GetApplicationFeesIdRefundsQueries queries) returns FeeRefundList|error { - string resourcePath = string `/application_fees/${getEncodedUri(id)}/refunds`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

List all secrets stored on the given scope.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get apps/secrets(map headers = {}, *GetAppsSecretsQueries queries) returns SecretServiceResourceSecretList|error { - string resourcePath = string `/apps/secrets`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Finds a secret in the secret store by name and scope.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get apps/secrets/find(map headers = {}, *GetAppsSecretsFindQueries queries) returns Apps\.secret|error { - string resourcePath = string `/apps/secrets/find`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the current account balance, based on the authentication that was used to make the request. - # For a sample request, see Accounting for negative balances.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get balance(map headers = {}, *GetBalanceQueries queries) returns Balance|error { - string resourcePath = string `/balance`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

- # - #

Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get balance/history(map headers = {}, *GetBalanceHistoryQueries queries) returns BalanceTransactionsList|error { - string resourcePath = string `/balance/history`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the balance transaction with the given ID.

- # - #

Note that this endpoint previously used the path /v1/balance/history/:id.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get balance/history/[string id](map headers = {}, *GetBalanceHistoryIdQueries queries) returns Balance_transaction|error { - string resourcePath = string `/balance/history/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

- # - #

Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get balance_transactions(map headers = {}, *GetBalanceTransactionsQueries queries) returns BalanceTransactionsList|error { - string resourcePath = string `/balance_transactions`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the balance transaction with the given ID.

- # - #

Note that this endpoint previously used the path /v1/balance/history/:id.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get balance_transactions/[string id](map headers = {}, *GetBalanceTransactionsIdQueries queries) returns Balance_transaction|error { - string resourcePath = string `/balance_transactions/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a list of billing meters.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get billing/meters(map headers = {}, *GetBillingMetersQueries queries) returns BillingMeterResourceBillingMeterList|error { - string resourcePath = string `/billing/meters`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a billing meter given an ID

- # - # + id - Unique identifier for the object. - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get billing/meters/[string id](map headers = {}, *GetBillingMetersIdQueries queries) returns Billing\.meter|error { - string resourcePath = string `/billing/meters/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a list of billing meter event summaries.

- # - # + id - Unique identifier for the object. - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get billing/meters/[string id]/event_summaries(map headers = {}, *GetBillingMetersIdEventSummariesQueries queries) returns BillingMeterResourceBillingMeterEventSummaryList|error { - string resourcePath = string `/billing/meters/${getEncodedUri(id)}/event_summaries`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of configurations that describe the functionality of the customer portal.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get billing_portal/configurations(map headers = {}, *GetBillingPortalConfigurationsQueries queries) returns PortalPublicResourceConfigurationList|error { - string resourcePath = string `/billing_portal/configurations`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a configuration that describes the functionality of the customer portal.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get billing_portal/configurations/[string configuration](map headers = {}, *GetBillingPortalConfigurationsConfigurationQueries queries) returns Billing_portal\.configuration|error { - string resourcePath = string `/billing_portal/configurations/${getEncodedUri(configuration)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of charges you’ve previously created. The charges are returned in sorted order, with the most recent charges appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get charges(map headers = {}, *GetChargesQueries queries) returns ChargeList|error { - string resourcePath = string `/charges`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get charges/[string charge](map headers = {}, *GetChargesChargeQueries queries) returns Charge|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a dispute for a specified charge.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get charges/[string charge]/dispute(map headers = {}, *GetChargesChargeDisputeQueries queries) returns Dispute|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/dispute`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

You can see a list of the refunds belonging to a specific charge. Note that the 10 most recent refunds are always available by default on the charge object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get charges/[string charge]/refunds(map headers = {}, *GetChargesChargeRefundsQueries queries) returns RefundList|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the details of an existing refund.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get charges/[string charge]/refunds/[string refund](map headers = {}, *GetChargesChargeRefundsRefundQueries queries) returns Refund|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds/${getEncodedUri(refund)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Search for charges you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get charges/search(map headers = {}, *GetChargesSearchQueries queries) returns SearchResult|error { - string resourcePath = string `/charges/search`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of Checkout Sessions.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get checkout/sessions(map headers = {}, *GetCheckoutSessionsQueries queries) returns PaymentPagesCheckoutSessionList|error { - string resourcePath = string `/checkout/sessions`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a Session object.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get checkout/sessions/[string session](map headers = {}, *GetCheckoutSessionsSessionQueries queries) returns Checkout\.session|error { - string resourcePath = string `/checkout/sessions/${getEncodedUri(session)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get checkout/sessions/[string session]/line_items(map headers = {}, *GetCheckoutSessionsSessionLineItemsQueries queries) returns PaymentPagesCheckoutSessionListLineItems|error { - string resourcePath = string `/checkout/sessions/${getEncodedUri(session)}/line_items`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Lists all Climate order objects. The orders are returned sorted by creation date, with the - # most recently created orders appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get climate/orders(map headers = {}, *GetClimateOrdersQueries queries) returns ClimateRemovalsOrdersList|error { - string resourcePath = string `/climate/orders`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the details of a Climate order object with the given ID.

- # - # + 'order - Unique identifier of the order. - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get climate/orders/[string 'order](map headers = {}, *GetClimateOrdersOrderQueries queries) returns Climate\.order|error { - string resourcePath = string `/climate/orders/${getEncodedUri('order)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Lists all available Climate product objects.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get climate/products(map headers = {}, *GetClimateProductsQueries queries) returns ClimateRemovalsProductsList|error { - string resourcePath = string `/climate/products`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the details of a Climate product with the given ID.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get climate/products/[string product](map headers = {}, *GetClimateProductsProductQueries queries) returns Climate\.product|error { - string resourcePath = string `/climate/products/${getEncodedUri(product)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Lists all available Climate supplier objects.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get climate/suppliers(map headers = {}, *GetClimateSuppliersQueries queries) returns ClimateRemovalsSuppliersList|error { - string resourcePath = string `/climate/suppliers`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a Climate supplier object.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get climate/suppliers/[string supplier](map headers = {}, *GetClimateSuppliersSupplierQueries queries) returns Climate\.supplier|error { - string resourcePath = string `/climate/suppliers/${getEncodedUri(supplier)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves an existing ConfirmationToken object

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get confirmation_tokens/[string confirmation_token](map headers = {}, *GetConfirmationTokensConfirmationTokenQueries queries) returns Confirmation_token|error { - string resourcePath = string `/confirmation_tokens/${getEncodedUri(confirmation_token)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Lists all Country Spec objects available in the API.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get country_specs(map headers = {}, *GetCountrySpecsQueries queries) returns CountrySpecList|error { - string resourcePath = string `/country_specs`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a Country Spec for a given Country code.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get country_specs/[string country](map headers = {}, *GetCountrySpecsCountryQueries queries) returns Country_spec|error { - string resourcePath = string `/country_specs/${getEncodedUri(country)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of your coupons.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get coupons(map headers = {}, *GetCouponsQueries queries) returns CouponsResourceCouponList|error { - string resourcePath = string `/coupons`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the coupon with the given ID.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get coupons/[string coupon](map headers = {}, *GetCouponsCouponQueries queries) returns Coupon|error { - string resourcePath = string `/coupons/${getEncodedUri(coupon)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of credit notes.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get credit_notes(map headers = {}, *GetCreditNotesQueries queries) returns CreditNotesList|error { - string resourcePath = string `/credit_notes`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

When retrieving a credit note, you’ll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get credit_notes/[string credit_note]/lines(map headers = {}, *GetCreditNotesCreditNoteLinesQueries queries) returns CreditNoteLinesList|error { - string resourcePath = string `/credit_notes/${getEncodedUri(credit_note)}/lines`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the credit note object with the given identifier.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get credit_notes/[string id](map headers = {}, *GetCreditNotesIdQueries queries) returns Credit_note|error { - string resourcePath = string `/credit_notes/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Get a preview of a credit note without creating it.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get credit_notes/preview(map headers = {}, *GetCreditNotesPreviewQueries queries) returns Credit_note|error { - string resourcePath = string `/credit_notes/preview`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

When retrieving a credit note preview, you’ll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get credit_notes/preview/lines(map headers = {}, *GetCreditNotesPreviewLinesQueries queries) returns CreditNoteLinesList|error { - string resourcePath = string `/credit_notes/preview/lines`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers(map headers = {}, *GetCustomersQueries queries) returns CustomerResourceCustomerList|error { - string resourcePath = string `/customers`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a Customer object.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer](map headers = {}, *GetCustomersCustomerQueries queries) returns inline_response_200|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of transactions that updated the customer’s balances.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/balance_transactions(map headers = {}, *GetCustomersCustomerBalanceTransactionsQueries queries) returns CustomerBalanceTransactionList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a specific customer balance transaction that updated the customer’s balances.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/balance_transactions/[string 'transaction](map headers = {}, *GetCustomersCustomerBalanceTransactionsTransactionQueries queries) returns Customer_balance_transaction|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions/${getEncodedUri('transaction)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

You can see a list of the bank accounts belonging to a Customer. Note that the 10 most recent sources are always available by default on the Customer. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional bank accounts.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - # - # # Deprecated - @deprecated - resource isolated function get customers/[string customer]/bank_accounts(map headers = {}, *GetCustomersCustomerBankAccountsQueries queries) returns BankAccountList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

By default, you can see the 10 most recent sources stored on a Customer directly on the object, but you can also retrieve details about a specific bank account stored on the Stripe account.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - # - # # Deprecated - @deprecated - resource isolated function get customers/[string customer]/bank_accounts/[string id](map headers = {}, *GetCustomersCustomerBankAccountsIdQueries queries) returns Bank_account|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

You can see a list of the cards belonging to a customer. - # Note that the 10 most recent sources are always available on the Customer object. - # If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional cards.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - # - # # Deprecated - @deprecated - resource isolated function get customers/[string customer]/cards(map headers = {}, *GetCustomersCustomerCardsQueries queries) returns CardList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cards`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

You can always see the 10 most recent cards directly on a customer; this method lets you retrieve details about a specific card stored on the customer.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - # - # # Deprecated - @deprecated - resource isolated function get customers/[string customer]/cards/[string id](map headers = {}, *GetCustomersCustomerCardsIdQueries queries) returns Card|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cards/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a customer’s cash balance.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/cash_balance(map headers = {}, *GetCustomersCustomerCashBalanceQueries queries) returns Cash_balance|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of transactions that modified the customer’s cash balance.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/cash_balance_transactions(map headers = {}, *GetCustomersCustomerCashBalanceTransactionsQueries queries) returns CustomerCashBalanceTransactionList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance_transactions`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a specific cash balance transaction, which updated the customer’s cash balance.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/cash_balance_transactions/[string 'transaction](map headers = {}, *GetCustomersCustomerCashBalanceTransactionsTransactionQueries queries) returns Customer_cash_balance_transaction|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance_transactions/${getEncodedUri('transaction)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - # - # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/discount(map headers = {}, *GetCustomersCustomerDiscountQueries queries) returns Discount|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/discount`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of PaymentMethods for a given Customer

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/payment_methods(map headers = {}, *GetCustomersCustomerPaymentMethodsQueries queries) returns CustomerPaymentMethodResourceList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/payment_methods`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves a PaymentMethod object for a given Customer.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/payment_methods/[string payment_method](map headers = {}, *GetCustomersCustomerPaymentMethodsPaymentMethodQueries queries) returns Payment_method|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/payment_methods/${getEncodedUri(payment_method)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

List sources for a specified customer.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/sources(map headers = {}, *GetCustomersCustomerSourcesQueries queries) returns ApmsSourcesSourceList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/sources`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a specified source for a given customer.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/sources/[string id](map headers = {}, *GetCustomersCustomerSourcesIdQueries queries) returns Payment_source|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

You can see a list of the customer’s active subscriptions. Note that the 10 most recent active subscriptions are always available by default on the customer object. If you need more than those 10, you can use the limit and starting_after parameters to page through additional subscriptions.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/subscriptions(map headers = {}, *GetCustomersCustomerSubscriptionsQueries queries) returns SubscriptionList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the subscription with the given ID.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/subscriptions/[string subscription_exposed_id](map headers = {}, *GetCustomersCustomerSubscriptionsSubscriptionExposedIdQueries queries) returns Subscription|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscription_exposed_id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - # - # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/subscriptions/[string subscription_exposed_id]/discount(map headers = {}, *GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscountQueries queries) returns Discount|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscription_exposed_id)}/discount`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of tax IDs for a customer.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/tax_ids(map headers = {}, *GetCustomersCustomerTaxIdsQueries queries) returns TaxIDsList|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the tax_id object with the given identifier.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/[string customer]/tax_ids/[string id](map headers = {}, *GetCustomersCustomerTaxIdsIdQueries queries) returns Tax_id|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Search for customers you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get customers/search(map headers = {}, *GetCustomersSearchQueries queries) returns SearchResult_1|error { - string resourcePath = string `/customers/search`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Returns a list of your disputes.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get disputes(map headers = {}, *GetDisputesQueries queries) returns DisputeList|error { - string resourcePath = string `/disputes`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieves the dispute with the given ID.

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get disputes/[string dispute](map headers = {}, *GetDisputesDisputeQueries queries) returns Dispute|error { - string resourcePath = string `/disputes/${getEncodedUri(dispute)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a list of active entitlements for a customer

- # - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get entitlements/active_entitlements(map headers = {}, *GetEntitlementsActiveEntitlementsQueries queries) returns EntitlementsResourceCustomerEntitlementList|error { - string resourcePath = string `/entitlements/active_entitlements`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve an active entitlement

- # - # + id - The ID of the entitlement. - # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get entitlements/active_entitlements/[string id](map headers = {}, *GetEntitlementsActiveEntitlementsIdQueries queries) returns Entitlements\.active_entitlement|error { - string resourcePath = string `/entitlements/active_entitlements/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); - } - - #

Retrieve a list of features

+ #

Retrieves the details of an account.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get entitlements/features(map headers = {}, *GetEntitlementsFeaturesQueries queries) returns EntitlementsResourceFeatureList|error { - string resourcePath = string `/entitlements/features`; + # + return - Successful response + resource isolated function get account(map headers = {}, *GetAccountQueries queries) returns Account|error { + string resourcePath = string `/account`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a feature

+ #

Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.

# - # + id - The ID of the feature. # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get entitlements/features/[string id](map headers = {}, *GetEntitlementsFeaturesIdQueries queries) returns Entitlements\.feature|error { - string resourcePath = string `/entitlements/features/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post account_links(AccountLinksBody payload, map headers = {}) returns AccountLink|error { + string resourcePath = string `/account_links`; + http:Request request = new; + map requestBodyEncoding = {"collection_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in event object api_version attribute (not according to your current Stripe API version or Stripe-Version header).

+ #

Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get events(map headers = {}, *GetEventsQueries queries) returns NotificationEventList|error { - string resourcePath = string `/events`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "types": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post account_sessions(AccountSessionsBody payload, map headers = {}) returns AccountSession|error { + string resourcePath = string `/account_sessions`; + http:Request request = new; + map requestBodyEncoding = {"components": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an event. Supply the unique identifier of the event, which you might have received in a webhook.

+ #

Returns a list of accounts connected to your platform via Connect. If you’re not a platform, the list is empty.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get events/[string id](map headers = {}, *GetEventsIdQueries queries) returns Event|error { - string resourcePath = string `/events/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get accounts(map headers = {}, *GetAccountsQueries queries) returns AccountList|error { + string resourcePath = string `/accounts`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports.

+ #

With Connect, you can create Stripe accounts for your users. + # To do this, you’ll first need to register your platform.

+ # + #

If you’ve already collected information for your connected accounts, you can prefill that information when + # creating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding. + # You can prefill any information on the account.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get exchange_rates(map headers = {}, *GetExchangeRatesQueries queries) returns ExchangeRateList|error { - string resourcePath = string `/exchange_rates`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts(AccountsBody payload, map headers = {}) returns Account|error { + string resourcePath = string `/accounts`; + http:Request request = new; + map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "business_profile": {style: DEEPOBJECT, explode: true}, "capabilities": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "controller": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "settings": {style: DEEPOBJECT, explode: true}, "tos_acceptance": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the exchange rates from the given currency to every supported currency.

+ #

Retrieves the details of an account.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get exchange_rates/[string rate_id](map headers = {}, *GetExchangeRatesRateIdQueries queries) returns Exchange_rate|error { - string resourcePath = string `/exchange_rates/${getEncodedUri(rate_id)}`; + # + return - Successful response + resource isolated function get accounts/[string account](map headers = {}, *GetAccountsAccountQueries queries) returns Account|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of file links.

+ #

Updates a connected account by setting the values of the parameters passed. Any parameters not provided are + # left unchanged.

+ # + #

For accounts where controller.requirement_collection + # is application, which includes Custom accounts, you can update any information on the account.

+ # + #

For accounts where controller.requirement_collection + # is stripe, which includes Standard and Express accounts, you can update all information until you create + # an Account Link or Account Session to start Connect onboarding, + # after which some properties can no longer be updated.

+ # + #

To update your own account, use the Dashboard. Refer to our + # Connect documentation to learn more about updating accounts.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get file_links(map headers = {}, *GetFileLinksQueries queries) returns FileResourceFileLinkList|error { - string resourcePath = string `/file_links`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account](AccountsaccountBody payload, map headers = {}) returns Account|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}`; + http:Request request = new; + map requestBodyEncoding = {"business_profile": {style: DEEPOBJECT, explode: true}, "capabilities": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "settings": {style: DEEPOBJECT, explode: true}, "tos_acceptance": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the file link with the given ID.

+ #

With Connect, you can delete accounts you manage.

+ # + #

Test-mode accounts can be deleted at any time.

+ # + #

Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all balances are zero.

+ # + #

If you want to delete your own account, use the account information tab in your account settings instead.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get file_links/[string link](map headers = {}, *GetFileLinksLinkQueries queries) returns File_link|error { - string resourcePath = string `/file_links/${getEncodedUri(link)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete accounts/[string account](map headers = {}) returns DeletedAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top.

+ #

Create an external account for a given account.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get files(map headers = {}, *GetFilesQueries queries) returns FileResourceFileList|error { - string resourcePath = string `/files`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/bank_accounts(AccountBankAccountsBody payload, map headers = {}) returns ExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts`; + http:Request request = new; + map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to access file contents.

+ #

Retrieve a specified external account for a given account.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get files/[string file](map headers = {}, *GetFilesFileQueries queries) returns File|error { - string resourcePath = string `/files/${getEncodedUri(file)}`; + # + return - Successful response + resource isolated function get accounts/[string account]/bank_accounts/[string id](map headers = {}, *GetAccountsAccountBankAccountsIdQueries queries) returns ExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Financial Connections Account objects.

+ #

Updates the metadata, account holder name, account holder type of a bank account belonging to + # a connected account and optionally sets it as the default for its currency. Other bank account + # details are not editable by design.

+ # + #

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

+ # + #

You can re-enable a disabled bank account by performing an update call without providing any + # arguments or changes.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get financial_connections/accounts(map headers = {}, *GetFinancialConnectionsAccountsQueries queries) returns BankConnectionsResourceLinkedAccountList|error { - string resourcePath = string `/financial_connections/accounts`; - map queryParamEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/bank_accounts/[string id](BankAccountsidBody payload, map headers = {}) returns ExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an Financial Connections Account.

+ #

Delete a specified external account for a given account.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get financial_connections/accounts/[string account](map headers = {}, *GetFinancialConnectionsAccountsAccountQueries queries) returns Financial_connections\.account|error { - string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete accounts/[string account]/bank_accounts/[string id](map headers = {}) returns DeletedExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts/${getEncodedUri(id)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Lists all owners for a given Account

+ #

Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get financial_connections/accounts/[string account]/owners(map headers = {}, *GetFinancialConnectionsAccountsAccountOwnersQueries queries) returns BankConnectionsResourceOwnerList|error { - string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/owners`; + # + return - Successful response + resource isolated function get accounts/[string account]/capabilities(map headers = {}, *GetAccountsAccountCapabilitiesQueries queries) returns ListAccountCapability|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/capabilities`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of a Financial Connections Session

+ #

Retrieves information about the specified Account Capability.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get financial_connections/sessions/[string session](map headers = {}, *GetFinancialConnectionsSessionsSessionQueries queries) returns Financial_connections\.session|error { - string resourcePath = string `/financial_connections/sessions/${getEncodedUri(session)}`; + # + return - Successful response + resource isolated function get accounts/[string account]/capabilities/[string capability](map headers = {}, *GetAccountsAccountCapabilitiesCapabilityQueries queries) returns Capability|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/capabilities/${getEncodedUri(capability)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Financial Connections Transaction objects.

+ #

Updates an existing Account Capability. Request or remove a capability by updating its requested parameter.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get financial_connections/transactions(map headers = {}, *GetFinancialConnectionsTransactionsQueries queries) returns BankConnectionsResourceTransactionList|error { - string resourcePath = string `/financial_connections/transactions`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "transacted_at": {style: DEEPOBJECT, explode: true}, "transaction_refresh": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/capabilities/[string capability](CapabilitiescapabilityBody payload, map headers = {}) returns Capability|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/capabilities/${getEncodedUri(capability)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of a Financial Connections Transaction

+ #

List external accounts for an account.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get financial_connections/transactions/[string 'transaction](map headers = {}, *GetFinancialConnectionsTransactionsTransactionQueries queries) returns Financial_connections\.transaction|error { - string resourcePath = string `/financial_connections/transactions/${getEncodedUri('transaction)}`; + # + return - Successful response + resource isolated function get accounts/[string account]/external_accounts(map headers = {}, *GetAccountsAccountExternalAccountsQueries queries) returns ExternalAccountList|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Lists all ForwardingRequest objects.

+ #

Create an external account for a given account.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get forwarding/requests(map headers = {}, *GetForwardingRequestsQueries queries) returns ForwardingRequestList|error { - string resourcePath = string `/forwarding/requests`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/external_accounts(AccountExternalAccountsBody payload, map headers = {}) returns ExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts`; + http:Request request = new; + map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a ForwardingRequest object.

+ #

Retrieve a specified external account for a given account.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get forwarding/requests/[string id](map headers = {}, *GetForwardingRequestsIdQueries queries) returns Forwarding\.request|error { - string resourcePath = string `/forwarding/requests/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get accounts/[string account]/external_accounts/[string id](map headers = {}, *GetAccountsAccountExternalAccountsIdQueries queries) returns ExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

List all verification reports.

+ #

Updates the metadata, account holder name, account holder type of a bank account belonging to + # a connected account and optionally sets it as the default for its currency. Other bank account + # details are not editable by design.

+ # + #

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

+ # + #

You can re-enable a disabled bank account by performing an update call without providing any + # arguments or changes.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get identity/verification_reports(map headers = {}, *GetIdentityVerificationReportsQueries queries) returns GelatoVerificationReportList|error { - string resourcePath = string `/identity/verification_reports`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/external_accounts/[string id](ExternalAccountsidBody payload, map headers = {}) returns ExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves an existing VerificationReport

+ #

Delete a specified external account for a given account.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get identity/verification_reports/[string report](map headers = {}, *GetIdentityVerificationReportsReportQueries queries) returns Identity\.verification_report|error { - string resourcePath = string `/identity/verification_reports/${getEncodedUri(report)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete accounts/[string account]/external_accounts/[string id](map headers = {}) returns DeletedExternalAccount|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts/${getEncodedUri(id)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Returns a list of VerificationSessions

+ #

Creates a single-use login link for a connected account to access the Express Dashboard.

+ # + #

You can only create login links for accounts that use the Express Dashboard and are connected to your platform.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get identity/verification_sessions(map headers = {}, *GetIdentityVerificationSessionsQueries queries) returns GelatoVerificationSessionList|error { - string resourcePath = string `/identity/verification_sessions`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/login_links(AccountLoginLinksBody payload, map headers = {}) returns LoginLink|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/login_links`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of a VerificationSession that was previously created.

- # - #

When the session status is requires_input, you can use this method to retrieve a valid - # client_secret or url to allow re-submission.

+ #

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get identity/verification_sessions/[string session](map headers = {}, *GetIdentityVerificationSessionsSessionQueries queries) returns Identity\.verification_session|error { - string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get accounts/[string account]/people(map headers = {}, *GetAccountsAccountPeopleQueries queries) returns PersonList|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/people`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first.

+ #

Creates a new person.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoiceitems(map headers = {}, *GetInvoiceitemsQueries queries) returns InvoicesItemsList|error { - string resourcePath = string `/invoiceitems`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/people(AccountPeopleBody payload, map headers = {}) returns Person|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/people`; + http:Request request = new; + map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the invoice item with the given ID.

+ #

Retrieves an existing person.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoiceitems/[string invoiceitem](map headers = {}, *GetInvoiceitemsInvoiceitemQueries queries) returns Invoiceitem|error { - string resourcePath = string `/invoiceitems/${getEncodedUri(invoiceitem)}`; + # + return - Successful response + resource isolated function get accounts/[string account]/people/[string person](map headers = {}, *GetAccountsAccountPeoplePersonQueries queries) returns Person|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/people/${getEncodedUri(person)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first.

+ #

Updates an existing person.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoices(map headers = {}, *GetInvoicesQueries queries) returns InvoicesResourceList|error { - string resourcePath = string `/invoices`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "due_date": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/people/[string person](PeoplepersonBody payload, map headers = {}) returns Person|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/people/${getEncodedUri(person)}`; + http:Request request = new; + map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the invoice with the given ID.

+ #

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoices/[string invoice](map headers = {}, *GetInvoicesInvoiceQueries queries) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete accounts/[string account]/people/[string person](map headers = {}) returns DeletedPerson|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/people/${getEncodedUri(person)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

When retrieving an invoice, you’ll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

+ #

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoices/[string invoice]/lines(map headers = {}, *GetInvoicesInvoiceLinesQueries queries) returns InvoiceLinesList|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/lines`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get accounts/[string account]/persons(map headers = {}, *GetAccountsAccountPersonsQueries queries) returns PersonList|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/persons`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Search for invoices you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

+ #

Creates a new person.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoices/search(map headers = {}, *GetInvoicesSearchQueries queries) returns SearchResult_2|error { - string resourcePath = string `/invoices/search`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/persons(AccountPersonsBody payload, map headers = {}) returns Person|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/persons`; + http:Request request = new; + map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.

- # - #

Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.

- # - #

You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.

- # - #

Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. Learn more

+ #

Retrieves an existing person.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoices/upcoming(map headers = {}, *GetInvoicesUpcomingQueries queries) returns Invoice|error { - string resourcePath = string `/invoices/upcoming`; - map queryParamEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_items": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "schedule_details": {style: DEEPOBJECT, explode: true}, "subscription_billing_cycle_anchor": {style: DEEPOBJECT, explode: true}, "subscription_cancel_at": {style: DEEPOBJECT, explode: true}, "subscription_default_tax_rates": {style: DEEPOBJECT, explode: true}, "subscription_details": {style: DEEPOBJECT, explode: true}, "subscription_items": {style: DEEPOBJECT, explode: true}, "subscription_trial_end": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get accounts/[string account]/persons/[string person](map headers = {}, *GetAccountsAccountPersonsPersonQueries queries) returns Person|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/persons/${getEncodedUri(person)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

When retrieving an upcoming invoice, you’ll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

+ #

Updates an existing person.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get invoices/upcoming/lines(map headers = {}, *GetInvoicesUpcomingLinesQueries queries) returns InvoiceLinesList|error { - string resourcePath = string `/invoices/upcoming/lines`; - map queryParamEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_items": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "schedule_details": {style: DEEPOBJECT, explode: true}, "subscription_billing_cycle_anchor": {style: DEEPOBJECT, explode: true}, "subscription_cancel_at": {style: DEEPOBJECT, explode: true}, "subscription_default_tax_rates": {style: DEEPOBJECT, explode: true}, "subscription_details": {style: DEEPOBJECT, explode: true}, "subscription_items": {style: DEEPOBJECT, explode: true}, "subscription_trial_end": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/persons/[string person](PersonspersonBody payload, map headers = {}) returns Person|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/persons/${getEncodedUri(person)}`; + http:Request request = new; + map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/authorizations(map headers = {}, *GetIssuingAuthorizationsQueries queries) returns IssuingAuthorizationList|error { - string resourcePath = string `/issuing/authorizations`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete accounts/[string account]/persons/[string person](map headers = {}) returns DeletedPerson|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/persons/${getEncodedUri(person)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Retrieves an Issuing Authorization object.

+ #

With Connect, you can reject accounts that you have flagged as suspicious.

+ # + #

Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/authorizations/[string authorization](map headers = {}, *GetIssuingAuthorizationsAuthorizationQueries queries) returns Issuing\.authorization|error { - string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post accounts/[string account]/reject(AccountRejectBody payload, map headers = {}) returns Account|error { + string resourcePath = string `/accounts/${getEncodedUri(account)}/reject`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

List apple pay domains.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/cardholders(map headers = {}, *GetIssuingCardholdersQueries queries) returns IssuingCardholderList|error { - string resourcePath = string `/issuing/cardholders`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get apple_pay/domains(map headers = {}, *GetApplePayDomainsQueries queries) returns ApplePayDomainList|error { + string resourcePath = string `/apple_pay/domains`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves an Issuing Cardholder object.

+ #

Create an apple pay domain.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/cardholders/[string cardholder](map headers = {}, *GetIssuingCardholdersCardholderQueries queries) returns Issuing\.cardholder|error { - string resourcePath = string `/issuing/cardholders/${getEncodedUri(cardholder)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post apple_pay/domains(ApplePayDomainsBody payload, map headers = {}) returns ApplePayDomain|error { + string resourcePath = string `/apple_pay/domains`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Retrieve an apple pay domain.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/cards(map headers = {}, *GetIssuingCardsQueries queries) returns IssuingCardList|error { - string resourcePath = string `/issuing/cards`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get apple_pay/domains/[string domain](map headers = {}, *GetApplePayDomainsDomainQueries queries) returns ApplePayDomain|error { + string resourcePath = string `/apple_pay/domains/${getEncodedUri(domain)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves an Issuing Card object.

+ #

Delete an apple pay domain.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/cards/[string card](map headers = {}, *GetIssuingCardsCardQueries queries) returns Issuing\.card|error { - string resourcePath = string `/issuing/cards/${getEncodedUri(card)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete apple_pay/domains/[string domain](map headers = {}) returns DeletedApplePayDomain|error { + string resourcePath = string `/apple_pay/domains/${getEncodedUri(domain)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Returns a list of application fees you’ve previously collected. The application fees are returned in sorted order, with the most recent fees appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/disputes(map headers = {}, *GetIssuingDisputesQueries queries) returns IssuingDisputeList|error { - string resourcePath = string `/issuing/disputes`; + # + return - Successful response + resource isolated function get application_fees(map headers = {}, *GetApplicationFeesQueries queries) returns PlatformEarningList|error { + string resourcePath = string `/application_fees`; map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves an Issuing Dispute object.

+ #

By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/disputes/[string dispute](map headers = {}, *GetIssuingDisputesDisputeQueries queries) returns Issuing\.dispute|error { - string resourcePath = string `/issuing/disputes/${getEncodedUri(dispute)}`; + # + return - Successful response + resource isolated function get application_fees/[string fee]/refunds/[string id](map headers = {}, *GetApplicationFeesFeeRefundsIdQueries queries) returns FeeRefund|error { + string resourcePath = string `/application_fees/${getEncodedUri(fee)}/refunds/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ # + #

This request only accepts metadata as an argument.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/personalization_designs(map headers = {}, *GetIssuingPersonalizationDesignsQueries queries) returns IssuingPersonalizationDesignList|error { - string resourcePath = string `/issuing/personalization_designs`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lookup_keys": {style: DEEPOBJECT, explode: true}, "preferences": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post application_fees/[string fee]/refunds/[string id](RefundsidBody payload, map headers = {}) returns FeeRefund|error { + string resourcePath = string `/application_fees/${getEncodedUri(fee)}/refunds/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a personalization design object.

+ #

Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/personalization_designs/[string personalization_design](map headers = {}, *GetIssuingPersonalizationDesignsPersonalizationDesignQueries queries) returns Issuing\.personalization_design|error { - string resourcePath = string `/issuing/personalization_designs/${getEncodedUri(personalization_design)}`; + # + return - Successful response + resource isolated function get application_fees/[string id](map headers = {}, *GetApplicationFeesIdQueries queries) returns ApplicationFee|error { + string resourcePath = string `/application_fees/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ # # # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/physical_bundles(map headers = {}, *GetIssuingPhysicalBundlesQueries queries) returns IssuingPhysicalBundleList|error { - string resourcePath = string `/issuing/physical_bundles`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post application_fees/[string id]/refund(IdRefundBody payload, map headers = {}) returns ApplicationFee|error { + string resourcePath = string `/application_fees/${getEncodedUri(id)}/refund`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a physical bundle object.

+ #

You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/physical_bundles/[string physical_bundle](map headers = {}, *GetIssuingPhysicalBundlesPhysicalBundleQueries queries) returns Issuing\.physical_bundle|error { - string resourcePath = string `/issuing/physical_bundles/${getEncodedUri(physical_bundle)}`; + # + return - Successful response + resource isolated function get application_fees/[string id]/refunds(map headers = {}, *GetApplicationFeesIdRefundsQueries queries) returns FeeRefundList|error { + string resourcePath = string `/application_fees/${getEncodedUri(id)}/refunds`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves an Issuing Settlement object.

+ #

Refunds an application fee that has previously been collected but not yet refunded. + # Funds will be refunded to the Stripe account from which the fee was originally collected.

+ # + #

You can optionally refund only part of an application fee. + # You can do so multiple times, until the entire fee has been refunded.

+ # + #

Once entirely refunded, an application fee can’t be refunded again. + # This method will raise an error when called on an already-refunded application fee, + # or when trying to refund more money than is left on an application fee.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/settlements/[string settlement](map headers = {}, *GetIssuingSettlementsSettlementQueries queries) returns Issuing\.settlement|error { - string resourcePath = string `/issuing/settlements/${getEncodedUri(settlement)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post application_fees/[string id]/refunds(IdRefundsBody payload, map headers = {}) returns FeeRefund|error { + string resourcePath = string `/application_fees/${getEncodedUri(id)}/refunds`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Lists all Issuing Token objects for a given card.

+ #

List all secrets stored on the given scope.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/tokens(map headers = {}, *GetIssuingTokensQueries queries) returns IssuingNetworkTokenList|error { - string resourcePath = string `/issuing/tokens`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get apps/secrets(map headers = {}, *GetAppsSecretsQueries queries) returns SecretServiceResourceSecretList|error { + string resourcePath = string `/apps/secrets`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves an Issuing Token object.

+ #

Create or replace a secret in the secret store.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/tokens/[string token](map headers = {}, *GetIssuingTokensTokenQueries queries) returns Issuing\.token|error { - string resourcePath = string `/issuing/tokens/${getEncodedUri(token)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post apps/secrets(AppsSecretsBody payload, map headers = {}) returns AppsSecret|error { + string resourcePath = string `/apps/secrets`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Deletes a secret from the secret store by name and scope.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post apps/secrets/delete(SecretsDeleteBody payload, map headers = {}) returns AppsSecret|error { + string resourcePath = string `/apps/secrets/delete`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Finds a secret in the secret store by name and scope.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/transactions(map headers = {}, *GetIssuingTransactionsQueries queries) returns IssuingTransactionList|error { - string resourcePath = string `/issuing/transactions`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get apps/secrets/find(map headers = {}, *GetAppsSecretsFindQueries queries) returns AppsSecret|error { + string resourcePath = string `/apps/secrets/find`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves an Issuing Transaction object.

+ #

Retrieves the current account balance, based on the authentication that was used to make the request. + # For a sample request, see Accounting for negative balances.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get issuing/transactions/[string 'transaction](map headers = {}, *GetIssuingTransactionsTransactionQueries queries) returns Issuing\.transaction|error { - string resourcePath = string `/issuing/transactions/${getEncodedUri('transaction)}`; + # + return - Successful response + resource isolated function get balance(map headers = {}, *GetBalanceQueries queries) returns Balance|error { + string resourcePath = string `/balance`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of a Financial Connections Session

+ #

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

+ # + #

Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get link_account_sessions/[string session](map headers = {}, *GetLinkAccountSessionsSessionQueries queries) returns Financial_connections\.session|error { - string resourcePath = string `/link_account_sessions/${getEncodedUri(session)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get balance/history(map headers = {}, *GetBalanceHistoryQueries queries) returns BalanceTransactionsList|error { + string resourcePath = string `/balance/history`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Financial Connections Account objects.

+ #

Retrieves the balance transaction with the given ID.

+ # + #

Note that this endpoint previously used the path /v1/balance/history/:id.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get linked_accounts(map headers = {}, *GetLinkedAccountsQueries queries) returns BankConnectionsResourceLinkedAccountList|error { - string resourcePath = string `/linked_accounts`; - map queryParamEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get balance/history/[string id](map headers = {}, *GetBalanceHistoryIdQueries queries) returns BalanceTransaction|error { + string resourcePath = string `/balance/history/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an Financial Connections Account.

+ #

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

+ # + #

Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get linked_accounts/[string account](map headers = {}, *GetLinkedAccountsAccountQueries queries) returns Financial_connections\.account|error { - string resourcePath = string `/linked_accounts/${getEncodedUri(account)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get balance_transactions(map headers = {}, *GetBalanceTransactionsQueries queries) returns BalanceTransactionsList|error { + string resourcePath = string `/balance_transactions`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Lists all owners for a given Account

+ #

Retrieves the balance transaction with the given ID.

+ # + #

Note that this endpoint previously used the path /v1/balance/history/:id.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get linked_accounts/[string account]/owners(map headers = {}, *GetLinkedAccountsAccountOwnersQueries queries) returns BankConnectionsResourceOwnerList|error { - string resourcePath = string `/linked_accounts/${getEncodedUri(account)}/owners`; + # + return - Successful response + resource isolated function get balance_transactions/[string id](map headers = {}, *GetBalanceTransactionsIdQueries queries) returns BalanceTransaction|error { + string resourcePath = string `/balance_transactions/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a Mandate object.

+ #

Creates a billing meter event adjustment

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get mandates/[string mandate](map headers = {}, *GetMandatesMandateQueries queries) returns Mandate|error { - string resourcePath = string `/mandates/${getEncodedUri(mandate)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing/meter_event_adjustments(BillingMeterEventAdjustmentsBody payload, map headers = {}) returns BillingMeterEventAdjustment|error { + string resourcePath = string `/billing/meter_event_adjustments`; + http:Request request = new; + map requestBodyEncoding = {"cancel": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of PaymentIntents.

+ #

Creates a billing meter event

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_intents(map headers = {}, *GetPaymentIntentsQueries queries) returns PaymentFlowsPaymentIntentList|error { - string resourcePath = string `/payment_intents`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing/meter_events(BillingMeterEventsBody payload, map headers = {}) returns BillingMeterEvent|error { + string resourcePath = string `/billing/meter_events`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "payload": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of a PaymentIntent that has previously been created.

- # - #

You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string.

- # - #

If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the payment intent object reference for more details.

+ #

Retrieve a list of billing meters.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_intents/[string intent](map headers = {}, *GetPaymentIntentsIntentQueries queries) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}`; + # + return - Successful response + resource isolated function get billing/meters(map headers = {}, *GetBillingMetersQueries queries) returns BillingMeterResourceBillingMeterList|error { + string resourcePath = string `/billing/meters`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Search for PaymentIntents you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

+ #

Creates a billing meter

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_intents/search(map headers = {}, *GetPaymentIntentsSearchQueries queries) returns SearchResult_3|error { - string resourcePath = string `/payment_intents/search`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing/meters(BillingMetersBody payload, map headers = {}) returns BillingMeter|error { + string resourcePath = string `/billing/meters`; + http:Request request = new; + map requestBodyEncoding = {"customer_mapping": {style: DEEPOBJECT, explode: true}, "default_aggregation": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "value_settings": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of your payment links.

+ #

Retrieves a billing meter given an ID

# + # + id - Unique identifier for the object # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_links(map headers = {}, *GetPaymentLinksQueries queries) returns PaymentLinksResourcePaymentLinkList|error { - string resourcePath = string `/payment_links`; + # + return - Successful response + resource isolated function get billing/meters/[string id](map headers = {}, *GetBillingMetersIdQueries queries) returns BillingMeter|error { + string resourcePath = string `/billing/meters/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieve a payment link.

+ #

Updates a billing meter

# + # + id - Unique identifier for the object # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_links/[string payment_link](map headers = {}, *GetPaymentLinksPaymentLinkQueries queries) returns Payment_link|error { - string resourcePath = string `/payment_links/${getEncodedUri(payment_link)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing/meters/[string id](MetersidBody payload, map headers = {}) returns BillingMeter|error { + string resourcePath = string `/billing/meters/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

+ #

Deactivates a billing meter

+ # + # + id - Unique identifier for the object + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post billing/meters/[string id]/deactivate(IdDeactivateBody payload, map headers = {}) returns BillingMeter|error { + string resourcePath = string `/billing/meters/${getEncodedUri(id)}/deactivate`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Retrieve a list of billing meter event summaries.

# + # + id - Unique identifier for the object # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_links/[string payment_link]/line_items(map headers = {}, *GetPaymentLinksPaymentLinkLineItemsQueries queries) returns PaymentLinksResourceListLineItems|error { - string resourcePath = string `/payment_links/${getEncodedUri(payment_link)}/line_items`; + # + return - Successful response + resource isolated function get billing/meters/[string id]/event_summaries(map headers = {}, *GetBillingMetersIdEventSummariesQueries queries) returns BillingMeterResourceBillingMeterEventSummaryList|error { + string resourcePath = string `/billing/meters/${getEncodedUri(id)}/event_summaries`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

List payment method configurations

+ #

Reactivates a billing meter

# + # + id - Unique identifier for the object # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_method_configurations(map headers = {}, *GetPaymentMethodConfigurationsQueries queries) returns PaymentMethodConfigResourcePaymentMethodConfigurationsList|error { - string resourcePath = string `/payment_method_configurations`; - map queryParamEncoding = {"application": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing/meters/[string id]/reactivate(IdReactivateBody payload, map headers = {}) returns BillingMeter|error { + string resourcePath = string `/billing/meters/${getEncodedUri(id)}/reactivate`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieve payment method configuration

+ #

Returns a list of configurations that describe the functionality of the customer portal.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_method_configurations/[string configuration](map headers = {}, *GetPaymentMethodConfigurationsConfigurationQueries queries) returns Payment_method_configuration|error { - string resourcePath = string `/payment_method_configurations/${getEncodedUri(configuration)}`; + # + return - Successful response + resource isolated function get billing_portal/configurations(map headers = {}, *GetBillingPortalConfigurationsQueries queries) returns PortalPublicResourceConfigurationList|error { + string resourcePath = string `/billing_portal/configurations`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Lists the details of existing payment method domains.

+ #

Creates a configuration that describes the functionality and behavior of a PortalSession

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_method_domains(map headers = {}, *GetPaymentMethodDomainsQueries queries) returns PaymentMethodDomainResourcePaymentMethodDomainList|error { - string resourcePath = string `/payment_method_domains`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing_portal/configurations(BillingPortalConfigurationsBody payload, map headers = {}) returns BillingPortalConfiguration|error { + string resourcePath = string `/billing_portal/configurations`; + http:Request request = new; + map requestBodyEncoding = {"business_profile": {style: DEEPOBJECT, explode: true}, "default_return_url": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}, "login_page": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an existing payment method domain.

+ #

Retrieves a configuration that describes the functionality of the customer portal.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_method_domains/[string payment_method_domain](map headers = {}, *GetPaymentMethodDomainsPaymentMethodDomainQueries queries) returns Payment_method_domain|error { - string resourcePath = string `/payment_method_domains/${getEncodedUri(payment_method_domain)}`; + # + return - Successful response + resource isolated function get billing_portal/configurations/[string configuration](map headers = {}, *GetBillingPortalConfigurationsConfigurationQueries queries) returns BillingPortalConfiguration|error { + string resourcePath = string `/billing_portal/configurations/${getEncodedUri(configuration)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the List a Customer’s PaymentMethods API instead.

+ #

Updates a configuration that describes the functionality of the customer portal.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_methods(map headers = {}, *GetPaymentMethodsQueries queries) returns PaymentFlowsPaymentMethodList|error { - string resourcePath = string `/payment_methods`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing_portal/configurations/[string configuration](ConfigurationsconfigurationBody payload, map headers = {}) returns BillingPortalConfiguration|error { + string resourcePath = string `/billing_portal/configurations/${getEncodedUri(configuration)}`; + http:Request request = new; + map requestBodyEncoding = {"business_profile": {style: DEEPOBJECT, explode: true}, "default_return_url": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}, "login_page": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use Retrieve a Customer’s PaymentMethods

+ #

Creates a session of the customer portal.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payment_methods/[string payment_method](map headers = {}, *GetPaymentMethodsPaymentMethodQueries queries) returns Payment_method|error { - string resourcePath = string `/payment_methods/${getEncodedUri(payment_method)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post billing_portal/sessions(BillingPortalSessionsBody payload, map headers = {}) returns BillingPortalSession|error { + string resourcePath = string `/billing_portal/sessions`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "flow_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.

+ #

Returns a list of charges you’ve previously created. The charges are returned in sorted order, with the most recent charges appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payouts(map headers = {}, *GetPayoutsQueries queries) returns PayoutList|error { - string resourcePath = string `/payouts`; - map queryParamEncoding = {"arrival_date": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get charges(map headers = {}, *GetChargesQueries queries) returns ChargeList|error { + string resourcePath = string `/charges`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.

+ #

This method is no longer recommended—use the Payment Intents API + # to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge + # object used to request payment.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get payouts/[string payout](map headers = {}, *GetPayoutsPayoutQueries queries) returns Payout|error { - string resourcePath = string `/payouts/${getEncodedUri(payout)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges(ChargesBody payload, map headers = {}) returns Charge|error { + string resourcePath = string `/charges`; + http:Request request = new; + map requestBodyEncoding = {"card": {style: DEEPOBJECT, explode: true}, "destination": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of your plans.

+ #

Search for charges you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get plans(map headers = {}, *GetPlansQueries queries) returns PlanList|error { - string resourcePath = string `/plans`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get charges/search(map headers = {}, *GetChargesSearchQueries queries) returns SearchResult|error { + string resourcePath = string `/charges/search`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the plan with the given ID.

+ #

Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get plans/[string plan](map headers = {}, *GetPlansPlanQueries queries) returns Plan|error { - string resourcePath = string `/plans/${getEncodedUri(plan)}`; + # + return - Successful response + resource isolated function get charges/[string charge](map headers = {}, *GetChargesChargeQueries queries) returns Charge|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your active prices, excluding inline prices. For the list of inactive prices, set active to false.

+ #

Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get prices(map headers = {}, *GetPricesQueries queries) returns PriceList|error { - string resourcePath = string `/prices`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "lookup_keys": {style: DEEPOBJECT, explode: true}, "recurring": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges/[string charge](ChargeschargeBody payload, map headers = {}) returns Charge|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "fraud_details": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the price with the given ID.

+ #

Capture the payment of an existing, uncaptured charge that was created with the capture option set to false.

+ # + #

Uncaptured payments expire a set number of days after they are created (7 by default), after which they are marked as refunded and capture attempts will fail.

+ # + #

Don’t use this method to capture a PaymentIntent-initiated charge. Use Capture a PaymentIntent.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get prices/[string price](map headers = {}, *GetPricesPriceQueries queries) returns Price|error { - string resourcePath = string `/prices/${getEncodedUri(price)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges/[string charge]/capture(ChargeCaptureBody payload, map headers = {}) returns Charge|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/capture`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Search for prices you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

+ #

Retrieve a dispute for a specified charge.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get prices/search(map headers = {}, *GetPricesSearchQueries queries) returns SearchResult_4|error { - string resourcePath = string `/prices/search`; + # + return - Successful response + resource isolated function get charges/[string charge]/dispute(map headers = {}, *GetChargesChargeDisputeQueries queries) returns Dispute|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/dispute`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.

+ # # # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get products(map headers = {}, *GetProductsQueries queries) returns ProductList|error { - string resourcePath = string `/products`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "ids": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges/[string charge]/dispute(ChargeDisputeBody payload, map headers = {}) returns Dispute|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/dispute`; + http:Request request = new; + map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information.

+ # # # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get products/[string id](map headers = {}, *GetProductsIdQueries queries) returns Product|error { - string resourcePath = string `/products/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges/[string charge]/dispute/close(DisputeCloseBody payload, map headers = {}) returns Dispute|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/dispute/close`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieve a list of features for a product

+ #

When you create a new refund, you must specify either a Charge or a PaymentIntent object.

+ # + #

This action refunds a previously created charge that’s not refunded yet. + # Funds are refunded to the credit or debit card that’s originally charged.

+ # + #

You can optionally refund only part of a charge. + # You can repeat this until the entire charge is refunded.

+ # + #

After you entirely refund a charge, you can’t refund it again. + # This method raises an error when it’s called on an already-refunded charge, + # or when you attempt to refund more money than is left on a charge.

# + # + charge - The identifier of the charge to refund # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get products/[string product]/features(map headers = {}, *GetProductsProductFeaturesQueries queries) returns EntitlementsResourceProductFeatureList|error { - string resourcePath = string `/products/${getEncodedUri(product)}/features`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges/[string charge]/refund(ChargeRefundBody payload, map headers = {}) returns Charge|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/refund`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a product_feature, which represents a feature attachment to a product

+ #

You can see a list of the refunds belonging to a specific charge. Note that the 10 most recent refunds are always available by default on the charge object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

# - # + id - The ID of the product_feature. - # + product - The ID of the product. # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get products/[string product]/features/[string id](map headers = {}, *GetProductsProductFeaturesIdQueries queries) returns Product_feature|error { - string resourcePath = string `/products/${getEncodedUri(product)}/features/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get charges/[string charge]/refunds(map headers = {}, *GetChargesChargeRefundsQueries queries) returns RefundList|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Search for products you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

+ #

When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.

+ # + #

Creating a new refund will refund a charge that has previously been created but not yet refunded. + # Funds will be refunded to the credit or debit card that was originally charged.

+ # + #

You can optionally refund only part of a charge. + # You can do so multiple times, until the entire charge has been refunded.

+ # + #

Once entirely refunded, a charge can’t be refunded again. + # This method will raise an error when called on an already-refunded charge, + # or when trying to refund more money than is left on a charge.

+ # + # + charge - The identifier of the charge to refund + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post charges/[string charge]/refunds(ChargeRefundsBody payload, map headers = {}) returns Refund|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Retrieves the details of an existing refund.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get products/search(map headers = {}, *GetProductsSearchQueries queries) returns SearchResult_5|error { - string resourcePath = string `/products/search`; + # + return - Successful response + resource isolated function get charges/[string charge]/refunds/[string refund](map headers = {}, *GetChargesChargeRefundsRefundQueries queries) returns Refund|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds/${getEncodedUri(refund)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your promotion codes.

+ #

Update a specified refund.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get promotion_codes(map headers = {}, *GetPromotionCodesQueries queries) returns PromotionCodesResourcePromotionCodeList|error { - string resourcePath = string `/promotion_codes`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post charges/[string charge]/refunds/[string refund](RefundsrefundBody payload, map headers = {}) returns Refund|error { + string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds/${getEncodedUri(refund)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use list with the desired code.

+ #

Returns a list of Checkout Sessions.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get promotion_codes/[string promotion_code](map headers = {}, *GetPromotionCodesPromotionCodeQueries queries) returns Promotion_code|error { - string resourcePath = string `/promotion_codes/${getEncodedUri(promotion_code)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get checkout/sessions(map headers = {}, *GetCheckoutSessionsQueries queries) returns PaymentPagesCheckoutSessionList|error { + string resourcePath = string `/checkout/sessions`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your quotes.

+ #

Creates a Session object.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get quotes(map headers = {}, *GetQuotesQueries queries) returns QuotesResourceQuoteList|error { - string resourcePath = string `/quotes`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post checkout/sessions(CheckoutSessionsBody payload, map headers = {}) returns CheckoutSession|error { + string resourcePath = string `/checkout/sessions`; + http:Request request = new; + map requestBodyEncoding = {"after_expiration": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "consent_collection": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "custom_text": {style: DEEPOBJECT, explode: true}, "customer_update": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_creation": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_intent_data": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "phone_number_collection": {style: DEEPOBJECT, explode: true}, "saved_payment_method_options": {style: DEEPOBJECT, explode: true}, "setup_intent_data": {style: DEEPOBJECT, explode: true}, "shipping_address_collection": {style: DEEPOBJECT, explode: true}, "shipping_options": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "tax_id_collection": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the quote with the given ID.

+ #

Retrieves a Session object.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get quotes/[string quote](map headers = {}, *GetQuotesQuoteQueries queries) returns Quote|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}`; + # + return - Successful response + resource isolated function get checkout/sessions/[string session](map headers = {}, *GetCheckoutSessionsSessionQueries queries) returns CheckoutSession|error { + string resourcePath = string `/checkout/sessions/${getEncodedUri(session)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

When retrieving a quote, there is an includable computed.upfront.line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.

+ #

A Session can be expired when it is in one of these statuses: open

+ # + #

After it expires, a customer can’t complete a Session and customers loading the Session see a message saying the Session is expired.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get quotes/[string quote]/computed_upfront_line_items(map headers = {}, *GetQuotesQuoteComputedUpfrontLineItemsQueries queries) returns QuotesResourceListLineItems|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}/computed_upfront_line_items`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post checkout/sessions/[string session]/expire(SessionExpireBody payload, map headers = {}) returns CheckoutSession|error { + string resourcePath = string `/checkout/sessions/${getEncodedUri(session)}/expire`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

+ #

When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get quotes/[string quote]/line_items(map headers = {}, *GetQuotesQuoteLineItemsQueries queries) returns QuotesResourceListLineItems|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}/line_items`; + # + return - Successful response + resource isolated function get checkout/sessions/[string session]/line_items(map headers = {}, *GetCheckoutSessionsSessionLineItemsQueries queries) returns PaymentPagesCheckoutSessionListLineItems|error { + string resourcePath = string `/checkout/sessions/${getEncodedUri(session)}/line_items`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Download the PDF for a finalized quote. Explanation for special handling can be found here

+ #

Lists all Climate order objects. The orders are returned sorted by creation date, with the + # most recently created orders appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get quotes/[string quote]/pdf(map headers = {}, *GetQuotesQuotePdfQueries queries) returns http:Response|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}/pdf`; + # + return - Successful response + resource isolated function get climate/orders(map headers = {}, *GetClimateOrdersQueries queries) returns ClimateRemovalsOrdersList|error { + string resourcePath = string `/climate/orders`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of early fraud warnings.

+ #

Creates a Climate order object for a given Climate product. The order will be processed immediately + # after creation and payment will be deducted your Stripe balance.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get radar/early_fraud_warnings(map headers = {}, *GetRadarEarlyFraudWarningsQueries queries) returns RadarEarlyFraudWarningList|error { - string resourcePath = string `/radar/early_fraud_warnings`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post climate/orders(ClimateOrdersBody payload, map headers = {}) returns ClimateOrder|error { + string resourcePath = string `/climate/orders`; + http:Request request = new; + map requestBodyEncoding = {"beneficiary": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an early fraud warning that has previously been created.

- # - #

Please refer to the early fraud warning object reference for more details.

+ #

Retrieves the details of a Climate order object with the given ID.

# + # + 'order - Unique identifier of the order # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get radar/early_fraud_warnings/[string early_fraud_warning](map headers = {}, *GetRadarEarlyFraudWarningsEarlyFraudWarningQueries queries) returns Radar\.early_fraud_warning|error { - string resourcePath = string `/radar/early_fraud_warnings/${getEncodedUri(early_fraud_warning)}`; + # + return - Successful response + resource isolated function get climate/orders/[string 'order](map headers = {}, *GetClimateOrdersOrderQueries queries) returns ClimateOrder|error { + string resourcePath = string `/climate/orders/${getEncodedUri('order)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Updates the specified order by setting the values of the parameters passed.

# + # + 'order - Unique identifier of the order # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get radar/value_list_items(map headers = {}, *GetRadarValueListItemsQueries queries) returns RadarListListItemList|error { - string resourcePath = string `/radar/value_list_items`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post climate/orders/[string 'order](OrdersorderBody payload, map headers = {}) returns ClimateOrder|error { + string resourcePath = string `/climate/orders/${getEncodedUri('order)}`; + http:Request request = new; + map requestBodyEncoding = {"beneficiary": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a ValueListItem object.

+ #

Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the + # reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier + # might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe + # provides 90 days advance notice and refunds the amount_total.

+ # + # + 'order - Unique identifier of the order + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post climate/orders/[string 'order]/cancel(OrderCancelBody payload, map headers = {}) returns ClimateOrder|error { + string resourcePath = string `/climate/orders/${getEncodedUri('order)}/cancel`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Lists all available Climate product objects.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get radar/value_list_items/[string item](map headers = {}, *GetRadarValueListItemsItemQueries queries) returns Radar\.value_list_item|error { - string resourcePath = string `/radar/value_list_items/${getEncodedUri(item)}`; + # + return - Successful response + resource isolated function get climate/products(map headers = {}, *GetClimateProductsQueries queries) returns ClimateRemovalsProductsList|error { + string resourcePath = string `/climate/products`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Retrieves the details of a Climate product with the given ID.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get radar/value_lists(map headers = {}, *GetRadarValueListsQueries queries) returns RadarListListList|error { - string resourcePath = string `/radar/value_lists`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get climate/products/[string product](map headers = {}, *GetClimateProductsProductQueries queries) returns ClimateProduct|error { + string resourcePath = string `/climate/products/${getEncodedUri(product)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a ValueList object.

+ #

Lists all available Climate supplier objects.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get radar/value_lists/[string value_list](map headers = {}, *GetRadarValueListsValueListQueries queries) returns Radar\.value_list|error { - string resourcePath = string `/radar/value_lists/${getEncodedUri(value_list)}`; + # + return - Successful response + resource isolated function get climate/suppliers(map headers = {}, *GetClimateSuppliersQueries queries) returns ClimateRemovalsSuppliersList|error { + string resourcePath = string `/climate/suppliers`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first The 10 most recent refunds are always available by default on the Charge object.

+ #

Retrieves a Climate supplier object.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get refunds(map headers = {}, *GetRefundsQueries queries) returns APIMethodRefundList|error { - string resourcePath = string `/refunds`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get climate/suppliers/[string supplier](map headers = {}, *GetClimateSuppliersSupplierQueries queries) returns ClimateSupplier|error { + string resourcePath = string `/climate/suppliers/${getEncodedUri(supplier)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an existing refund.

+ #

Retrieves an existing ConfirmationToken object

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get refunds/[string refund](map headers = {}, *GetRefundsRefundQueries queries) returns Refund|error { - string resourcePath = string `/refunds/${getEncodedUri(refund)}`; + # + return - Successful response + resource isolated function get confirmation_tokens/[string confirmationToken](map headers = {}, *GetConfirmationTokensConfirmationTokenQueries queries) returns ConfirmationToken|error { + string resourcePath = string `/confirmation_tokens/${getEncodedUri(confirmationToken)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Report Runs, with the most recent appearing first.

+ #

Lists all Country Spec objects available in the API.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get reporting/report_runs(map headers = {}, *GetReportingReportRunsQueries queries) returns FinancialReportingFinanceReportRunList|error { - string resourcePath = string `/reporting/report_runs`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get country_specs(map headers = {}, *GetCountrySpecsQueries queries) returns CountrySpecList|error { + string resourcePath = string `/country_specs`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an existing Report Run.

+ #

Returns a Country Spec for a given Country code.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get reporting/report_runs/[string report_run](map headers = {}, *GetReportingReportRunsReportRunQueries queries) returns Reporting\.report_run|error { - string resourcePath = string `/reporting/report_runs/${getEncodedUri(report_run)}`; + # + return - Successful response + resource isolated function get country_specs/[string country](map headers = {}, *GetCountrySpecsCountryQueries queries) returns CountrySpec|error { + string resourcePath = string `/country_specs/${getEncodedUri(country)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a full list of Report Types.

+ #

Returns a list of your coupons.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get reporting/report_types(map headers = {}, *GetReportingReportTypesQueries queries) returns FinancialReportingFinanceReportTypeList|error { - string resourcePath = string `/reporting/report_types`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get coupons(map headers = {}, *GetCouponsQueries queries) returns CouponsResourceCouponList|error { + string resourcePath = string `/coupons`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of a Report Type. (Certain report types require a live-mode API key.)

+ #

You can create coupons easily via the coupon management page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.

+ # + #

A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post coupons(CouponsBody payload, map headers = {}) returns Coupon|error { + string resourcePath = string `/coupons`; + http:Request request = new; + map requestBodyEncoding = {"applies_to": {style: DEEPOBJECT, explode: true}, "currency_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Retrieves the coupon with the given ID.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get reporting/report_types/[string report_type](map headers = {}, *GetReportingReportTypesReportTypeQueries queries) returns Reporting\.report_type|error { - string resourcePath = string `/reporting/report_types/${getEncodedUri(report_type)}`; + # + return - Successful response + resource isolated function get coupons/[string coupon](map headers = {}, *GetCouponsCouponQueries queries) returns Coupon|error { + string resourcePath = string `/coupons/${getEncodedUri(coupon)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ #

Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get reviews(map headers = {}, *GetReviewsQueries queries) returns RadarReviewList|error { - string resourcePath = string `/reviews`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post coupons/[string coupon](CouponscouponBody payload, map headers = {}) returns Coupon|error { + string resourcePath = string `/coupons/${getEncodedUri(coupon)}`; + http:Request request = new; + map requestBodyEncoding = {"currency_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a Review object.

+ #

You can delete coupons via the coupon management page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can’t redeem the coupon. You can also delete coupons via the API.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get reviews/[string review](map headers = {}, *GetReviewsReviewQueries queries) returns Review|error { - string resourcePath = string `/reviews/${getEncodedUri(review)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete coupons/[string coupon](map headers = {}) returns DeletedCoupon|error { + string resourcePath = string `/coupons/${getEncodedUri(coupon)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Returns a list of SetupAttempts that associate with a provided SetupIntent.

+ #

Returns a list of credit notes.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get setup_attempts(map headers = {}, *GetSetupAttemptsQueries queries) returns PaymentFlowsSetupIntentSetupAttemptList|error { - string resourcePath = string `/setup_attempts`; + # + return - Successful response + resource isolated function get credit_notes(map headers = {}, *GetCreditNotesQueries queries) returns CreditNotesList|error { + string resourcePath = string `/credit_notes`; map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of SetupIntents.

+ #

Issue a credit note to adjust the amount of a finalized invoice. For a status=open invoice, a credit note reduces + # its amount_due. For a status=paid invoice, a credit note does not affect its amount_due. Instead, it can result + # in any combination of the following:

+ # + #
    + #
  • Refund: create a new refund (using refund_amount) or link an existing refund (using refund).
  • + #
  • Customer balance credit: credit the customer’s balance (using credit_amount) which will be automatically applied to their next invoice when it’s finalized.
  • + #
  • Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount).
  • + #
+ # + #

For post-payment credit notes the sum of the refund, credit and outside of Stripe amounts must equal the credit note total.

+ # + #

You may issue multiple credit notes for an invoice. Each credit note will increment the invoice’s pre_payment_credit_notes_amount + # or post_payment_credit_notes_amount depending on its status at the time of credit note creation.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get setup_intents(map headers = {}, *GetSetupIntentsQueries queries) returns PaymentFlowsSetupIntentList|error { - string resourcePath = string `/setup_intents`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post credit_notes(CreditNotesBody payload, map headers = {}) returns CreditNote|error { + string resourcePath = string `/credit_notes`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of a SetupIntent that has previously been created.

- # - #

Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string.

- # - #

When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the SetupIntent object reference for more details.

+ #

Get a preview of a credit note without creating it.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get setup_intents/[string intent](map headers = {}, *GetSetupIntentsIntentQueries queries) returns Setup_intent|error { - string resourcePath = string `/setup_intents/${getEncodedUri(intent)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get credit_notes/preview(map headers = {}, *GetCreditNotesPreviewQueries queries) returns CreditNote|error { + string resourcePath = string `/credit_notes/preview`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your shipping rates.

+ #

When retrieving a credit note preview, you’ll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get shipping_rates(map headers = {}, *GetShippingRatesQueries queries) returns ShippingResourcesShippingRateList|error { - string resourcePath = string `/shipping_rates`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get credit_notes/preview/lines(map headers = {}, *GetCreditNotesPreviewLinesQueries queries) returns CreditNoteLinesList|error { + string resourcePath = string `/credit_notes/preview/lines`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns the shipping rate object with the given ID.

+ #

When retrieving a credit note, you’ll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get shipping_rates/[string shipping_rate_token](map headers = {}, *GetShippingRatesShippingRateTokenQueries queries) returns Shipping_rate|error { - string resourcePath = string `/shipping_rates/${getEncodedUri(shipping_rate_token)}`; + # + return - Successful response + resource isolated function get credit_notes/[string creditNote]/lines(map headers = {}, *GetCreditNotesCreditNoteLinesQueries queries) returns CreditNoteLinesList|error { + string resourcePath = string `/credit_notes/${getEncodedUri(creditNote)}/lines`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of scheduled query runs.

+ #

Retrieves the credit note object with the given identifier.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get sigma/scheduled_query_runs(map headers = {}, *GetSigmaScheduledQueryRunsQueries queries) returns SigmaScheduledQueryRunList|error { - string resourcePath = string `/sigma/scheduled_query_runs`; + # + return - Successful response + resource isolated function get credit_notes/[string id](map headers = {}, *GetCreditNotesIdQueries queries) returns CreditNote|error { + string resourcePath = string `/credit_notes/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an scheduled query run.

+ #

Updates an existing credit note.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get sigma/scheduled_query_runs/[string scheduled_query_run](map headers = {}, *GetSigmaScheduledQueryRunsScheduledQueryRunQueries queries) returns Scheduled_query_run|error { - string resourcePath = string `/sigma/scheduled_query_runs/${getEncodedUri(scheduled_query_run)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post credit_notes/[string id](CreditNotesidBody payload, map headers = {}) returns CreditNote|error { + string resourcePath = string `/credit_notes/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information.

+ #

Marks a credit note as void. Learn more about voiding credit notes.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get sources/[string 'source](map headers = {}, *GetSourcesSourceQueries queries) returns Source|error { - string resourcePath = string `/sources/${getEncodedUri('source)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post credit_notes/[string id]/void(IdVoidBody payload, map headers = {}) returns CreditNote|error { + string resourcePath = string `/credit_notes/${getEncodedUri(id)}/void`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a new Source MandateNotification.

+ #

Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get sources/[string 'source]/mandate_notifications/[string mandate_notification](map headers = {}, *GetSourcesSourceMandateNotificationsMandateNotificationQueries queries) returns Source_mandate_notification|error { - string resourcePath = string `/sources/${getEncodedUri('source)}/mandate_notifications/${getEncodedUri(mandate_notification)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customer_sessions(CustomerSessionsBody payload, map headers = {}) returns CustomerSession|error { + string resourcePath = string `/customer_sessions`; + http:Request request = new; + map requestBodyEncoding = {"components": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

List source transactions for a given source.

+ #

Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get sources/[string 'source]/source_transactions(map headers = {}, *GetSourcesSourceSourceTransactionsQueries queries) returns ApmsSourcesSourceTransactionList|error { - string resourcePath = string `/sources/${getEncodedUri('source)}/source_transactions`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get customers(map headers = {}, *GetCustomersQueries queries) returns CustomerResourceCustomerList|error { + string resourcePath = string `/customers`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieve an existing source transaction object. Supply the unique source ID from a source creation request and the source transaction ID and Stripe will return the corresponding up-to-date source object information.

+ #

Creates a new customer object.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get sources/[string 'source]/source_transactions/[string source_transaction](map headers = {}, *GetSourcesSourceSourceTransactionsSourceTransactionQueries queries) returns Source_transaction|error { - string resourcePath = string `/sources/${getEncodedUri('source)}/source_transactions/${getEncodedUri(source_transaction)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers(CustomersBody payload, map headers = {}) returns Customer|error { + string resourcePath = string `/customers`; + http:Request request = new; + map requestBodyEncoding = {"address": {style: DEEPOBJECT, explode: true}, "cash_balance": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "tax": {style: DEEPOBJECT, explode: true}, "tax_id_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of your subscription items for a given subscription.

+ #

Search for customers you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscription_items(map headers = {}, *GetSubscriptionItemsQueries queries) returns SubscriptionsItemsSubscriptionItemList|error { - string resourcePath = string `/subscription_items`; + # + return - Successful response + resource isolated function get customers/search(map headers = {}, *GetCustomersSearchQueries queries) returns SearchResult1|error { + string resourcePath = string `/customers/search`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the subscription item with the given ID.

+ #

Retrieves a Customer object.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscription_items/[string item](map headers = {}, *GetSubscriptionItemsItemQueries queries) returns Subscription_item|error { - string resourcePath = string `/subscription_items/${getEncodedUri(item)}`; + # + return - Successful response + resource isolated function get customers/[string customer](map headers = {}, *GetCustomersCustomerQueries queries) returns InlineResponse200|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

For the specified subscription item, returns a list of summary objects. Each object in the list provides usage information that’s been summarized from multiple usage records and over a subscription billing period (e.g., 15 usage records in the month of September).

+ #

Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer’s active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer’s current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior.

# - #

The list is sorted in reverse-chronological order (newest first). The first list item represents the most current usage period that hasn’t ended yet. Since new usage records can still be added, the returned summary information for the subscription item’s ID should be seen as unstable until the subscription billing period ends.

+ #

This request accepts mostly the same arguments as the customer creation call.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscription_items/[string subscription_item]/usage_record_summaries(map headers = {}, *GetSubscriptionItemsSubscriptionItemUsageRecordSummariesQueries queries) returns UsageEventsResourceUsageRecordSummaryList|error { - string resourcePath = string `/subscription_items/${getEncodedUri(subscription_item)}/usage_record_summaries`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer](CustomerscustomerBody payload, map headers = {}) returns Customer|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}`; + http:Request request = new; + map requestBodyEncoding = {"address": {style: DEEPOBJECT, explode: true}, "bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cash_balance": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "tax": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the list of your subscription schedules.

+ #

Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscription_schedules(map headers = {}, *GetSubscriptionSchedulesQueries queries) returns SubscriptionSchedulesResourceScheduleList|error { - string resourcePath = string `/subscription_schedules`; - map queryParamEncoding = {"canceled_at": {style: DEEPOBJECT, explode: true}, "completed_at": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "released_at": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete customers/[string customer](map headers = {}) returns DeletedCustomer|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.

+ #

Returns a list of transactions that updated the customer’s balances.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscription_schedules/[string schedule](map headers = {}, *GetSubscriptionSchedulesScheduleQueries queries) returns Subscription_schedule|error { - string resourcePath = string `/subscription_schedules/${getEncodedUri(schedule)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/balance_transactions(map headers = {}, *GetCustomersCustomerBalanceTransactionsQueries queries) returns CustomerBalanceTransactionList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled.

+ #

Creates an immutable transaction that updates the customer’s credit balance.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscriptions(map headers = {}, *GetSubscriptionsQueries queries) returns SubscriptionsSubscriptionList|error { - string resourcePath = string `/subscriptions`; - map queryParamEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "current_period_end": {style: DEEPOBJECT, explode: true}, "current_period_start": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/balance_transactions(CustomerBalanceTransactionsBody payload, map headers = {}) returns CustomerBalanceTransaction|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the subscription with the given ID.

+ #

Retrieves a specific customer balance transaction that updated the customer’s balances.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscriptions/[string subscription_exposed_id](map headers = {}, *GetSubscriptionsSubscriptionExposedIdQueries queries) returns Subscription|error { - string resourcePath = string `/subscriptions/${getEncodedUri(subscription_exposed_id)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/balance_transactions/[string 'transaction](map headers = {}, *GetCustomersCustomerBalanceTransactionsTransactionQueries queries) returns CustomerBalanceTransaction|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions/${getEncodedUri('transaction)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Search for subscriptions you’ve previously created using Stripe’s Search Query Language. - # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating - # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up - # to an hour behind during outages. Search functionality is not available to merchants in India.

+ #

Most credit balance transaction fields are immutable, but you may update its description and metadata.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post customers/[string customer]/balance_transactions/[string 'transaction](BalanceTransactionstransactionBody payload, map headers = {}) returns CustomerBalanceTransaction|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions/${getEncodedUri('transaction)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

You can see a list of the bank accounts belonging to a Customer. Note that the 10 most recent sources are always available by default on the Customer. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional bank accounts.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get subscriptions/search(map headers = {}, *GetSubscriptionsSearchQueries queries) returns SearchResult_6|error { - string resourcePath = string `/subscriptions/search`; + # + return - Successful response + # + # # Deprecated + @deprecated + resource isolated function get customers/[string customer]/bank_accounts(map headers = {}, *GetCustomersCustomerBankAccountsQueries queries) returns BankAccountList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the line items of a tax calculation as a collection, if the calculation hasn’t expired.

+ #

When you create a new credit card, you must specify a customer or recipient on which to create it.

+ # + #

If the card’s owner has no default card, then the new card will become the default. + # However, if the owner already has a default, then it will not change. + # To change the default, you should update the customer to have a new default_source.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post customers/[string customer]/bank_accounts(CustomerBankAccountsBody payload, map headers = {}) returns PaymentSource|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts`; + http:Request request = new; + map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

By default, you can see the 10 most recent sources stored on a Customer directly on the object, but you can also retrieve details about a specific bank account stored on the Stripe account.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax/calculations/[string calculation]/line_items(map headers = {}, *GetTaxCalculationsCalculationLineItemsQueries queries) returns TaxProductResourceTaxCalculationLineItemList|error { - string resourcePath = string `/tax/calculations/${getEncodedUri(calculation)}/line_items`; + # + return - Successful response + # + # # Deprecated + @deprecated + resource isolated function get customers/[string customer]/bank_accounts/[string id](map headers = {}, *GetCustomersCustomerBankAccountsIdQueries queries) returns BankAccount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Tax Registration objects.

+ #

Update a specified source for a given customer.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post customers/[string customer]/bank_accounts/[string id](BankAccountsidBody1 payload, map headers = {}) returns InlineResponse2001|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Delete a specified source for a given customer.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete customers/[string customer]/bank_accounts/[string id](BankAccountsidBody2 payload, map headers = {}) returns InlineResponse2002|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); + } + + #

Verify a specified bank account for a given customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax/registrations(map headers = {}, *GetTaxRegistrationsQueries queries) returns TaxProductRegistrationsResourceTaxRegistrationList|error { - string resourcePath = string `/tax/registrations`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/bank_accounts/[string id]/verify(IdVerifyBody payload, map headers = {}) returns BankAccount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}/verify`; + http:Request request = new; + map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a Tax Registration object.

+ #

You can see a list of the cards belonging to a customer. + # Note that the 10 most recent sources are always available on the Customer object. + # If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional cards.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax/registrations/[string id](map headers = {}, *GetTaxRegistrationsIdQueries queries) returns Tax\.registration|error { - string resourcePath = string `/tax/registrations/${getEncodedUri(id)}`; + # + return - Successful response + # + # # Deprecated + @deprecated + resource isolated function get customers/[string customer]/cards(map headers = {}, *GetCustomersCustomerCardsQueries queries) returns CardList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cards`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves Tax Settings for a merchant.

+ #

When you create a new credit card, you must specify a customer or recipient on which to create it.

+ # + #

If the card’s owner has no default card, then the new card will become the default. + # However, if the owner already has a default, then it will not change. + # To change the default, you should update the customer to have a new default_source.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax/settings(map headers = {}, *GetTaxSettingsQueries queries) returns Tax\.settings|error { - string resourcePath = string `/tax/settings`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/cards(CustomerCardsBody payload, map headers = {}) returns PaymentSource|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cards`; + http:Request request = new; + map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a Tax Transaction object.

+ #

You can always see the 10 most recent cards directly on a customer; this method lets you retrieve details about a specific card stored on the customer.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax/transactions/[string 'transaction](map headers = {}, *GetTaxTransactionsTransactionQueries queries) returns Tax\.transaction|error { - string resourcePath = string `/tax/transactions/${getEncodedUri('transaction)}`; + # + return - Successful response + # + # # Deprecated + @deprecated + resource isolated function get customers/[string customer]/cards/[string id](map headers = {}, *GetCustomersCustomerCardsIdQueries queries) returns Card|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cards/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the line items of a committed standalone transaction as a collection.

+ #

Update a specified source for a given customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax/transactions/[string 'transaction]/line_items(map headers = {}, *GetTaxTransactionsTransactionLineItemsQueries queries) returns TaxProductResourceTaxTransactionLineItemList|error { - string resourcePath = string `/tax/transactions/${getEncodedUri('transaction)}/line_items`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/cards/[string id](CardsidBody payload, map headers = {}) returns InlineResponse2001|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cards/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

A list of all tax codes available to add to Products in order to allow specific tax calculations.

+ #

Delete a specified source for a given customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax_codes(map headers = {}, *GetTaxCodesQueries queries) returns TaxProductResourceTaxCodeList|error { - string resourcePath = string `/tax_codes`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete customers/[string customer]/cards/[string id](CardsidBody1 payload, map headers = {}) returns InlineResponse2002|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cards/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); } - #

Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information.

+ #

Retrieves a customer’s cash balance.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax_codes/[string id](map headers = {}, *GetTaxCodesIdQueries queries) returns Tax_code|error { - string resourcePath = string `/tax_codes/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/cash_balance(map headers = {}, *GetCustomersCustomerCashBalanceQueries queries) returns CashBalance|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of tax IDs.

+ #

Changes the settings on a customer’s cash balance.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax_ids(map headers = {}, *GetTaxIdsQueries queries) returns TaxIDsList|error { - string resourcePath = string `/tax_ids`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/cash_balance(CustomerCashBalanceBody payload, map headers = {}) returns CashBalance|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "settings": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves an account or customer tax_id object.

+ #

Returns a list of transactions that modified the customer’s cash balance.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax_ids/[string id](map headers = {}, *GetTaxIdsIdQueries queries) returns Tax_id|error { - string resourcePath = string `/tax_ids/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/cash_balance_transactions(map headers = {}, *GetCustomersCustomerCashBalanceTransactionsQueries queries) returns CustomerCashBalanceTransactionList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance_transactions`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first.

+ #

Retrieves a specific cash balance transaction, which updated the customer’s cash balance.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax_rates(map headers = {}, *GetTaxRatesQueries queries) returns TaxRatesList|error { - string resourcePath = string `/tax_rates`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get customers/[string customer]/cash_balance_transactions/[string 'transaction](map headers = {}, *GetCustomersCustomerCashBalanceTransactionsTransactionQueries queries) returns CustomerCashBalanceTransaction|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance_transactions/${getEncodedUri('transaction)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a tax rate with the given ID

+ # # # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tax_rates/[string tax_rate](map headers = {}, *GetTaxRatesTaxRateQueries queries) returns Tax_rate|error { - string resourcePath = string `/tax_rates/${getEncodedUri(tax_rate)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/discount(map headers = {}, *GetCustomersCustomerDiscountQueries queries) returns Discount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/discount`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Configuration objects.

+ #

Removes the currently applied discount on a customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get terminal/configurations(map headers = {}, *GetTerminalConfigurationsQueries queries) returns TerminalConfigurationConfigurationList|error { - string resourcePath = string `/terminal/configurations`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete customers/[string customer]/discount(map headers = {}) returns DeletedDiscount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/discount`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Retrieves a Configuration object.

+ #

Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new + # funding instructions will be created. If funding instructions have already been created for a given customer, the same + # funding instructions will be retrieved. In other words, we will return the same funding instructions each time.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get terminal/configurations/[string configuration](map headers = {}, *GetTerminalConfigurationsConfigurationQueries queries) returns inline_response_200_3|error { - string resourcePath = string `/terminal/configurations/${getEncodedUri(configuration)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/funding_instructions(CustomerFundingInstructionsBody payload, map headers = {}) returns FundingInstructions|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/funding_instructions`; + http:Request request = new; + map requestBodyEncoding = {"bank_transfer": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of Location objects.

+ #

Returns a list of PaymentMethods for a given Customer

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get terminal/locations(map headers = {}, *GetTerminalLocationsQueries queries) returns TerminalLocationLocationList|error { - string resourcePath = string `/terminal/locations`; + # + return - Successful response + resource isolated function get customers/[string customer]/payment_methods(map headers = {}, *GetCustomersCustomerPaymentMethodsQueries queries) returns CustomerPaymentMethodResourceList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/payment_methods`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a Location object.

+ #

Retrieves a PaymentMethod object for a given Customer.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get terminal/locations/[string location](map headers = {}, *GetTerminalLocationsLocationQueries queries) returns inline_response_200_4|error { - string resourcePath = string `/terminal/locations/${getEncodedUri(location)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/payment_methods/[string paymentMethod](map headers = {}, *GetCustomersCustomerPaymentMethodsPaymentMethodQueries queries) returns PaymentMethod|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/payment_methods/${getEncodedUri(paymentMethod)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of Reader objects.

+ #

List sources for a specified customer.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get terminal/readers(map headers = {}, *GetTerminalReadersQueries queries) returns TerminalReaderRetrieveReader|error { - string resourcePath = string `/terminal/readers`; + # + return - Successful response + resource isolated function get customers/[string customer]/sources(map headers = {}, *GetCustomersCustomerSourcesQueries queries) returns ApmsSourcesSourceList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/sources`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a Reader object.

+ #

When you create a new credit card, you must specify a customer or recipient on which to create it.

+ # + #

If the card’s owner has no default card, then the new card will become the default. + # However, if the owner already has a default, then it will not change. + # To change the default, you should update the customer to have a new default_source.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get terminal/readers/[string reader](map headers = {}, *GetTerminalReadersReaderQueries queries) returns inline_response_200_5|error { - string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/sources(CustomerSourcesBody payload, map headers = {}) returns PaymentSource|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/sources`; + http:Request request = new; + map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of your test clocks.

+ #

Retrieve a specified source for a given customer.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get test_helpers/test_clocks(map headers = {}, *GetTestHelpersTestClocksQueries queries) returns BillingClocksResourceBillingClockList|error { - string resourcePath = string `/test_helpers/test_clocks`; + # + return - Successful response + resource isolated function get customers/[string customer]/sources/[string id](map headers = {}, *GetCustomersCustomerSourcesIdQueries queries) returns PaymentSource|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a test clock.

+ #

Update a specified source for a given customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get test_helpers/test_clocks/[string test_clock](map headers = {}, *GetTestHelpersTestClocksTestClockQueries queries) returns Test_helpers\.test_clock|error { - string resourcePath = string `/test_helpers/test_clocks/${getEncodedUri(test_clock)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/sources/[string id](SourcesidBody payload, map headers = {}) returns InlineResponse2001|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the token with the given ID.

+ #

Delete a specified source for a given customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get tokens/[string token](map headers = {}, *GetTokensTokenQueries queries) returns Token|error { - string resourcePath = string `/tokens/${getEncodedUri(token)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete customers/[string customer]/sources/[string id](SourcesidBody1 payload, map headers = {}) returns InlineResponse2002|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); } - #

Returns a list of top-ups.

+ #

Verify a specified bank account for a given customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get topups(map headers = {}, *GetTopupsQueries queries) returns TopupList|error { - string resourcePath = string `/topups`; - map queryParamEncoding = {"amount": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/sources/[string id]/verify(IdVerifyBody1 payload, map headers = {}) returns BankAccount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}/verify`; + http:Request request = new; + map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information.

+ #

You can see a list of the customer’s active subscriptions. Note that the 10 most recent active subscriptions are always available by default on the customer object. If you need more than those 10, you can use the limit and starting_after parameters to page through additional subscriptions.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get topups/[string topup](map headers = {}, *GetTopupsTopupQueries queries) returns Topup|error { - string resourcePath = string `/topups/${getEncodedUri(topup)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/subscriptions(map headers = {}, *GetCustomersCustomerSubscriptionsQueries queries) returns SubscriptionList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first.

+ #

Creates a new subscription on an existing customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get transfers(map headers = {}, *GetTransfersQueries queries) returns TransferList|error { - string resourcePath = string `/transfers`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/subscriptions(CustomerSubscriptionsBody payload, map headers = {}) returns Subscription|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions`; + http:Request request = new; + map requestBodyEncoding = {"add_invoice_items": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "billing_thresholds": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "pending_invoice_item_interval": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}, "trial_end": {style: DEEPOBJECT, explode: true}, "trial_settings": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals.

+ #

Retrieves the subscription with the given ID.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get transfers/[string id]/reversals(map headers = {}, *GetTransfersIdReversalsQueries queries) returns TransferReversalList|error { - string resourcePath = string `/transfers/${getEncodedUri(id)}/reversals`; + # + return - Successful response + resource isolated function get customers/[string customer]/subscriptions/[string subscriptionExposedId](map headers = {}, *GetCustomersCustomerSubscriptionsSubscriptionExposedIdQueries queries) returns Subscription|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscriptionExposedId)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information.

+ #

Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the upcoming invoice endpoint.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get transfers/[string transfer](map headers = {}, *GetTransfersTransferQueries queries) returns Transfer|error { - string resourcePath = string `/transfers/${getEncodedUri(transfer)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/subscriptions/[string subscriptionExposedId](SubscriptionssubscriptionExposedIdBody payload, map headers = {}) returns Subscription|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscriptionExposedId)}`; + http:Request request = new; + map requestBodyEncoding = {"add_invoice_items": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "billing_thresholds": {style: DEEPOBJECT, explode: true}, "cancel_at": {style: DEEPOBJECT, explode: true}, "cancellation_details": {style: DEEPOBJECT, explode: true}, "default_source": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "pause_collection": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "pending_invoice_item_interval": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}, "trial_end": {style: DEEPOBJECT, explode: true}, "trial_settings": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer.

+ #

Cancels a customer’s subscription. If you set the at_period_end parameter to true, the subscription will remain active until the end of the period, at which point it will be canceled and not renewed. Otherwise, with the default false value, the subscription is terminated immediately. In either case, the customer will not be charged again for the subscription.

+ # + #

Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

+ # + #

By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete customers/[string customer]/subscriptions/[string subscriptionExposedId](SubscriptionssubscriptionExposedIdBody1 payload, map headers = {}) returns Subscription|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscriptionExposedId)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); + } + + # # # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get transfers/[string transfer]/reversals/[string id](map headers = {}, *GetTransfersTransferReversalsIdQueries queries) returns Transfer_reversal|error { - string resourcePath = string `/transfers/${getEncodedUri(transfer)}/reversals/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/subscriptions/[string subscriptionExposedId]/discount(map headers = {}, *GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscountQueries queries) returns Discount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscriptionExposedId)}/discount`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of CreditReversals.

+ #

Removes the currently applied discount on a customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/credit_reversals(map headers = {}, *GetTreasuryCreditReversalsQueries queries) returns TreasuryReceivedCreditsResourceCreditReversalList|error { - string resourcePath = string `/treasury/credit_reversals`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete customers/[string customer]/subscriptions/[string subscriptionExposedId]/discount(map headers = {}) returns DeletedDiscount|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscriptionExposedId)}/discount`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list

+ #

Returns a list of tax IDs for a customer.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/credit_reversals/[string credit_reversal](map headers = {}, *GetTreasuryCreditReversalsCreditReversalQueries queries) returns Treasury\.credit_reversal|error { - string resourcePath = string `/treasury/credit_reversals/${getEncodedUri(credit_reversal)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/tax_ids(map headers = {}, *GetCustomersCustomerTaxIdsQueries queries) returns TaxIDsList|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of DebitReversals.

+ #

Creates a new tax_id object for a customer.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/debit_reversals(map headers = {}, *GetTreasuryDebitReversalsQueries queries) returns TreasuryReceivedDebitsResourceDebitReversalList|error { - string resourcePath = string `/treasury/debit_reversals`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post customers/[string customer]/tax_ids(CustomerTaxIdsBody payload, map headers = {}) returns TaxId|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves a DebitReversal object.

+ #

Retrieves the tax_id object with the given identifier.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/debit_reversals/[string debit_reversal](map headers = {}, *GetTreasuryDebitReversalsDebitReversalQueries queries) returns Treasury\.debit_reversal|error { - string resourcePath = string `/treasury/debit_reversals/${getEncodedUri(debit_reversal)}`; + # + return - Successful response + resource isolated function get customers/[string customer]/tax_ids/[string id](map headers = {}, *GetCustomersCustomerTaxIdsIdQueries queries) returns TaxId|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of FinancialAccounts.

+ #

Deletes an existing tax_id object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete customers/[string customer]/tax_ids/[string id](map headers = {}) returns DeletedTaxId|error { + string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids/${getEncodedUri(id)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } + + #

Returns a list of your disputes.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/financial_accounts(map headers = {}, *GetTreasuryFinancialAccountsQueries queries) returns TreasuryFinancialAccountsResourceFinancialAccountList|error { - string resourcePath = string `/treasury/financial_accounts`; + # + return - Successful response + resource isolated function get disputes(map headers = {}, *GetDisputesQueries queries) returns DisputeList|error { + string resourcePath = string `/disputes`; map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of a FinancialAccount.

+ #

Retrieves the dispute with the given ID.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/financial_accounts/[string financial_account](map headers = {}, *GetTreasuryFinancialAccountsFinancialAccountQueries queries) returns Treasury\.financial_account|error { - string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financial_account)}`; + # + return - Successful response + resource isolated function get disputes/[string dispute](map headers = {}, *GetDisputesDisputeQueries queries) returns Dispute|error { + string resourcePath = string `/disputes/${getEncodedUri(dispute)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves Features information associated with the FinancialAccount.

+ #

When you get a dispute, contacting your customer is always the best first step. If that doesn’t work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your dashboard, but if you prefer, you can use the API to submit evidence programmatically.

+ # + #

Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our guide to dispute types.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/financial_accounts/[string financial_account]/features(map headers = {}, *GetTreasuryFinancialAccountsFinancialAccountFeaturesQueries queries) returns Treasury\.financial_account_features|error { - string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financial_account)}/features`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post disputes/[string dispute](DisputesdisputeBody payload, map headers = {}) returns Dispute|error { + string resourcePath = string `/disputes/${getEncodedUri(dispute)}`; + http:Request request = new; + map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of InboundTransfers sent from the specified FinancialAccount.

+ #

Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost.

+ # + #

The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/inbound_transfers(map headers = {}, *GetTreasuryInboundTransfersQueries queries) returns TreasuryInboundTransfersResourceInboundTransferList|error { - string resourcePath = string `/treasury/inbound_transfers`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post disputes/[string dispute]/close(DisputeCloseBody payload, map headers = {}) returns Dispute|error { + string resourcePath = string `/disputes/${getEncodedUri(dispute)}/close`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an existing InboundTransfer.

+ #

Retrieve a list of active entitlements for a customer

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/inbound_transfers/[string id](map headers = {}, *GetTreasuryInboundTransfersIdQueries queries) returns Treasury\.inbound_transfer|error { - string resourcePath = string `/treasury/inbound_transfers/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get entitlements/active_entitlements(map headers = {}, *GetEntitlementsActiveEntitlementsQueries queries) returns EntitlementsResourceCustomerEntitlementList|error { + string resourcePath = string `/entitlements/active_entitlements`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of OutboundPayments sent from the specified FinancialAccount.

+ #

Retrieve an active entitlement

# + # + id - The ID of the entitlement # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/outbound_payments(map headers = {}, *GetTreasuryOutboundPaymentsQueries queries) returns TreasuryOutboundPaymentsResourceOutboundPaymentList|error { - string resourcePath = string `/treasury/outbound_payments`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get entitlements/active_entitlements/[string id](map headers = {}, *GetEntitlementsActiveEntitlementsIdQueries queries) returns EntitlementsActiveEntitlement|error { + string resourcePath = string `/entitlements/active_entitlements/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list.

+ #

Retrieve a list of features

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/outbound_payments/[string id](map headers = {}, *GetTreasuryOutboundPaymentsIdQueries queries) returns Treasury\.outbound_payment|error { - string resourcePath = string `/treasury/outbound_payments/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get entitlements/features(map headers = {}, *GetEntitlementsFeaturesQueries queries) returns EntitlementsResourceFeatureList|error { + string resourcePath = string `/entitlements/features`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of OutboundTransfers sent from the specified FinancialAccount.

+ #

Creates a feature

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/outbound_transfers(map headers = {}, *GetTreasuryOutboundTransfersQueries queries) returns TreasuryOutboundTransfersResourceOutboundTransferList|error { - string resourcePath = string `/treasury/outbound_transfers`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post entitlements/features(EntitlementsFeaturesBody payload, map headers = {}) returns EntitlementsFeature|error { + string resourcePath = string `/entitlements/features`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.

+ #

Retrieves a feature

# + # + id - The ID of the feature # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/outbound_transfers/[string outbound_transfer](map headers = {}, *GetTreasuryOutboundTransfersOutboundTransferQueries queries) returns Treasury\.outbound_transfer|error { - string resourcePath = string `/treasury/outbound_transfers/${getEncodedUri(outbound_transfer)}`; + # + return - Successful response + resource isolated function get entitlements/features/[string id](map headers = {}, *GetEntitlementsFeaturesIdQueries queries) returns EntitlementsFeature|error { + string resourcePath = string `/entitlements/features/${getEncodedUri(id)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of ReceivedCredits.

+ #

Update a feature’s metadata or permanently deactivate it.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/received_credits(map headers = {}, *GetTreasuryReceivedCreditsQueries queries) returns TreasuryReceivedCreditsResourceReceivedCreditList|error { - string resourcePath = string `/treasury/received_credits`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "linked_flows": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post entitlements/features/[string id](FeaturesidBody payload, map headers = {}) returns EntitlementsFeature|error { + string resourcePath = string `/entitlements/features/${getEncodedUri(id)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list.

+ #

Creates a short-lived API key for a given resource.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/received_credits/[string id](map headers = {}, *GetTreasuryReceivedCreditsIdQueries queries) returns Treasury\.received_credit|error { - string resourcePath = string `/treasury/received_credits/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post ephemeral_keys(EphemeralKeysBody payload, map headers = {}) returns EphemeralKey|error { + string resourcePath = string `/ephemeral_keys`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Returns a list of ReceivedDebits.

+ #

Invalidates a short-lived API key for a given resource.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/received_debits(map headers = {}, *GetTreasuryReceivedDebitsQueries queries) returns TreasuryReceivedDebitsResourceReceivedDebitList|error { - string resourcePath = string `/treasury/received_debits`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function delete ephemeral_keys/[string 'key](EphemeralKeyskeyBody payload, map headers = {}) returns EphemeralKey|error { + string resourcePath = string `/ephemeral_keys/${getEncodedUri('key)}`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); } - #

Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list

+ #

List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in event object api_version attribute (not according to your current Stripe API version or Stripe-Version header).

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/received_debits/[string id](map headers = {}, *GetTreasuryReceivedDebitsIdQueries queries) returns Treasury\.received_debit|error { - string resourcePath = string `/treasury/received_debits/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get events(map headers = {}, *GetEventsQueries queries) returns NotificationEventList|error { + string resourcePath = string `/events`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "types": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a list of TransactionEntry objects.

+ #

Retrieves the details of an event. Supply the unique identifier of the event, which you might have received in a webhook.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/transaction_entries(map headers = {}, *GetTreasuryTransactionEntriesQueries queries) returns TreasuryTransactionsResourceTransactionEntryList|error { - string resourcePath = string `/treasury/transaction_entries`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "effective_at": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get events/[string id](map headers = {}, *GetEventsIdQueries queries) returns Event|error { + string resourcePath = string `/events/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a TransactionEntry object.

+ #

Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/transaction_entries/[string id](map headers = {}, *GetTreasuryTransactionEntriesIdQueries queries) returns Treasury\.transaction_entry|error { - string resourcePath = string `/treasury/transaction_entries/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function get exchange_rates(map headers = {}, *GetExchangeRatesQueries queries) returns ExchangeRateList|error { + string resourcePath = string `/exchange_rates`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves a list of Transaction objects.

+ #

Retrieves the exchange rates from the given currency to every supported currency.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/transactions(map headers = {}, *GetTreasuryTransactionsQueries queries) returns TreasuryTransactionsResourceTransactionList|error { - string resourcePath = string `/treasury/transactions`; - map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "status_transitions": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get exchange_rates/[string rateId](map headers = {}, *GetExchangeRatesRateIdQueries queries) returns ExchangeRate|error { + string resourcePath = string `/exchange_rates/${getEncodedUri(rateId)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Retrieves the details of an existing Transaction.

+ #

Returns a list of file links.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get treasury/transactions/[string id](map headers = {}, *GetTreasuryTransactionsIdQueries queries) returns Treasury\.transaction|error { - string resourcePath = string `/treasury/transactions/${getEncodedUri(id)}`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + # + return - Successful response + resource isolated function get file_links(map headers = {}, *GetFileLinksQueries queries) returns FileResourceFileLinkList|error { + string resourcePath = string `/file_links`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Returns a list of your webhook endpoints.

+ #

Creates a new file link object.

# # + headers - Headers to be sent with the request - # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get webhook_endpoints(map headers = {}, *GetWebhookEndpointsQueries queries) returns NotificationWebhookEndpointList|error { - string resourcePath = string `/webhook_endpoints`; - map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); - return self.clientEp->get(resourcePath, headers); + # + return - Successful response + resource isolated function post file_links(FileLinksBody payload, map headers = {}) returns FileLink|error { + string resourcePath = string `/file_links`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); } - #

Retrieves the webhook endpoint with the given ID.

+ #

Retrieves the file link with the given ID.

# # + headers - Headers to be sent with the request # + queries - Queries to be sent with the request - # + return - Successful response. - resource isolated function get webhook_endpoints/[string webhook_endpoint](map headers = {}, *GetWebhookEndpointsWebhookEndpointQueries queries) returns Webhook_endpoint|error { - string resourcePath = string `/webhook_endpoints/${getEncodedUri(webhook_endpoint)}`; + # + return - Successful response + resource isolated function get file_links/[string link](map headers = {}, *GetFileLinksLinkQueries queries) returns FileLink|error { + string resourcePath = string `/file_links/${getEncodedUri(link)}`; map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); return self.clientEp->get(resourcePath, headers); } - #

Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.

+ #

Updates an existing file link object. Expired links can no longer be updated.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post account_links(account_links_body payload, map headers = {}) returns Account_link|error { - string resourcePath = string `/account_links`; + # + return - Successful response + resource isolated function post file_links/[string link](FileLinkslinkBody payload, map headers = {}) returns FileLink|error { + string resourcePath = string `/file_links/${getEncodedUri(link)}`; http:Request request = new; - map requestBodyEncoding = {"collection_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "expires_at": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.

+ #

Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post account_sessions(account_sessions_body payload, map headers = {}) returns Account_session|error { - string resourcePath = string `/account_sessions`; - http:Request request = new; - map requestBodyEncoding = {"components": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get files(map headers = {}, *GetFilesQueries queries) returns FileResourceFileList|error { + string resourcePath = string `/files`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

With Connect, you can create Stripe accounts for your users. - # To do this, you’ll first need to register your platform.

+ #

To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file.

# - #

If you’ve already collected information for your connected accounts, you can prefill that information when - # creating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding. - # You can prefill any information on the account.

+ #

All of Stripe’s officially supported Client libraries support sending multipart/form-data.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts(accounts_body payload, map headers = {}) returns Account|error { - string resourcePath = string `/accounts`; + # + return - Successful response + resource isolated function post files(FilesBody payload, map headers = {}) returns File|error { + string resourcePath = string `/files`; http:Request request = new; - map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "business_profile": {style: DEEPOBJECT, explode: true}, "capabilities": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "controller": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "settings": {style: DEEPOBJECT, explode: true}, "tos_acceptance": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + map encodingMap = {"expand": {}, "file_link_data": {}}; + mime:Entity[] bodyParts = check createBodyParts(check jsondata:toJson(payload).ensureType(), encodingMap); + request.setBodyParts(bodyParts); return self.clientEp->post(resourcePath, request, headers); } - #

Updates a connected account by setting the values of the parameters passed. Any parameters not provided are - # left unchanged.

- # - #

For accounts where controller.requirement_collection - # is application, which includes Custom accounts, you can update any information on the account.

- # - #

For accounts where controller.requirement_collection - # is stripe, which includes Standard and Express accounts, you can update all information until you create - # an Account Link or Account Session to start Connect onboarding, - # after which some properties can no longer be updated.

- # - #

To update your own account, use the Dashboard. Refer to our - # Connect documentation to learn more about updating accounts.

+ #

Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to access file contents.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get files/[string file](map headers = {}, *GetFilesFileQueries queries) returns File|error { + string resourcePath = string `/files/${getEncodedUri(file)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of Financial Connections Account objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get financial_connections/accounts(map headers = {}, *GetFinancialConnectionsAccountsQueries queries) returns BankConnectionsResourceLinkedAccountList|error { + string resourcePath = string `/financial_connections/accounts`; + map queryParamEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an Financial Connections Account.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account](accounts_account_body payload, map headers = {}) returns Account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}`; - http:Request request = new; - map requestBodyEncoding = {"business_profile": {style: DEEPOBJECT, explode: true}, "capabilities": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "settings": {style: DEEPOBJECT, explode: true}, "tos_acceptance": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get financial_connections/accounts/[string account](map headers = {}, *GetFinancialConnectionsAccountsAccountQueries queries) returns FinancialConnectionsAccount|error { + string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Create an external account for a given account.

+ #

Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/bank_accounts(account_bank_accounts_body payload, map headers = {}) returns External_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts`; + # + return - Successful response + resource isolated function post financial_connections/accounts/[string account]/disconnect(AccountDisconnectBody payload, map headers = {}) returns FinancialConnectionsAccount|error { + string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/disconnect`; http:Request request = new; - map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the metadata, account holder name, account holder type of a bank account belonging to - # a connected account and optionally sets it as the default for its currency. Other bank account - # details are not editable by design.

- # - #

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

- # - #

You can re-enable a disabled bank account by performing an update call without providing any - # arguments or changes.

+ #

Lists all owners for a given Account

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/bank_accounts/[string id](bank_accounts_id_body payload, map headers = {}) returns External_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/bank_accounts/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get financial_connections/accounts/[string account]/owners(map headers = {}, *GetFinancialConnectionsAccountsAccountOwnersQueries queries) returns BankConnectionsResourceOwnerList|error { + string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/owners`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates an existing Account Capability. Request or remove a capability by updating its requested parameter.

+ #

Refreshes the data associated with a Financial Connections Account.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/capabilities/[string capability](capabilities_capability_body payload, map headers = {}) returns Capability|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/capabilities/${getEncodedUri(capability)}`; + # + return - Successful response + resource isolated function post financial_connections/accounts/[string account]/refresh(AccountRefreshBody payload, map headers = {}) returns FinancialConnectionsAccount|error { + string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/refresh`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Create an external account for a given account.

+ #

Subscribes to periodic refreshes of data associated with a Financial Connections Account.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/external_accounts(account_external_accounts_body payload, map headers = {}) returns External_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts`; + # + return - Successful response + resource isolated function post financial_connections/accounts/[string account]/subscribe(AccountSubscribeBody payload, map headers = {}) returns FinancialConnectionsAccount|error { + string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/subscribe`; http:Request request = new; - map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the metadata, account holder name, account holder type of a bank account belonging to - # a connected account and optionally sets it as the default for its currency. Other bank account - # details are not editable by design.

- # - #

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

- # - #

You can re-enable a disabled bank account by performing an update call without providing any - # arguments or changes.

+ #

Unsubscribes from periodic refreshes of data associated with a Financial Connections Account.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/external_accounts/[string id](external_accounts_id_body payload, map headers = {}) returns External_account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/external_accounts/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function post financial_connections/accounts/[string account]/unsubscribe(AccountUnsubscribeBody payload, map headers = {}) returns FinancialConnectionsAccount|error { + string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/unsubscribe`; http:Request request = new; - map requestBodyEncoding = {"documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a single-use login link for a connected account to access the Express Dashboard.

- # - #

You can only create login links for accounts that use the Express Dashboard and are connected to your platform.

+ #

To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/login_links(account_login_links_body payload, map headers = {}) returns Login_link|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/login_links`; + # + return - Successful response + resource isolated function post financial_connections/sessions(FinancialConnectionsSessionsBody payload, map headers = {}) returns FinancialConnectionsSession|error { + string resourcePath = string `/financial_connections/sessions`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "filters": {style: DEEPOBJECT, explode: true}, "permissions": {style: DEEPOBJECT, explode: true}, "prefetch": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a new person.

+ #

Retrieves the details of a Financial Connections Session

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/people(account_people_body payload, map headers = {}) returns Person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/people`; - http:Request request = new; - map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get financial_connections/sessions/[string session](map headers = {}, *GetFinancialConnectionsSessionsSessionQueries queries) returns FinancialConnectionsSession|error { + string resourcePath = string `/financial_connections/sessions/${getEncodedUri(session)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates an existing person.

+ #

Returns a list of Financial Connections Transaction objects.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/people/[string person](people_person_body payload, map headers = {}) returns Person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/people/${getEncodedUri(person)}`; - http:Request request = new; - map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get financial_connections/transactions(map headers = {}, *GetFinancialConnectionsTransactionsQueries queries) returns BankConnectionsResourceTransactionList|error { + string resourcePath = string `/financial_connections/transactions`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "transacted_at": {style: DEEPOBJECT, explode: true}, "transaction_refresh": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a new person.

+ #

Retrieves the details of a Financial Connections Transaction

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/persons(account_persons_body payload, map headers = {}) returns Person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/persons`; - http:Request request = new; - map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get financial_connections/transactions/[string 'transaction](map headers = {}, *GetFinancialConnectionsTransactionsTransactionQueries queries) returns FinancialConnectionsTransaction|error { + string resourcePath = string `/financial_connections/transactions/${getEncodedUri('transaction)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates an existing person.

+ #

Lists all ForwardingRequest objects.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/persons/[string person](persons_person_body payload, map headers = {}) returns Person|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/persons/${getEncodedUri(person)}`; - http:Request request = new; - map requestBodyEncoding = {"additional_tos_acceptances": {style: DEEPOBJECT, explode: true}, "address": {style: DEEPOBJECT, explode: true}, "address_kana": {style: DEEPOBJECT, explode: true}, "address_kanji": {style: DEEPOBJECT, explode: true}, "dob": {style: DEEPOBJECT, explode: true}, "documents": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "full_name_aliases": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "registered_address": {style: DEEPOBJECT, explode: true}, "relationship": {style: DEEPOBJECT, explode: true}, "verification": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get forwarding/requests(map headers = {}, *GetForwardingRequestsQueries queries) returns ForwardingRequestList|error { + string resourcePath = string `/forwarding/requests`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

With Connect, you can reject accounts that you have flagged as suspicious.

- # - #

Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.

+ #

Creates a ForwardingRequest object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post accounts/[string account]/reject(account_reject_body payload, map headers = {}) returns Account|error { - string resourcePath = string `/accounts/${getEncodedUri(account)}/reject`; + # + return - Successful response + resource isolated function post forwarding/requests(ForwardingRequestsBody payload, map headers = {}) returns ForwardingRequest|error { + string resourcePath = string `/forwarding/requests`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "replacements": {style: DEEPOBJECT, explode: true}, "request": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Create an apple pay domain.

+ #

Retrieves a ForwardingRequest object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post apple_pay/domains(apple_pay_domains_body payload, map headers = {}) returns Apple_pay_domain|error { - string resourcePath = string `/apple_pay/domains`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get forwarding/requests/[string id](map headers = {}, *GetForwardingRequestsIdQueries queries) returns ForwardingRequest|error { + string resourcePath = string `/forwarding/requests/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

- # - #

This request only accepts metadata as an argument.

+ #

List all verification reports.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post application_fees/[string fee]/refunds/[string id](refunds_id_body payload, map headers = {}) returns Fee_refund|error { - string resourcePath = string `/application_fees/${getEncodedUri(fee)}/refunds/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get identity/verification_reports(map headers = {}, *GetIdentityVerificationReportsQueries queries) returns GelatoVerificationReportList|error { + string resourcePath = string `/identity/verification_reports`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - # + #

Retrieves an existing VerificationReport

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post application_fees/[string id]/refund(id_refund_body payload, map headers = {}) returns Application_fee|error { - string resourcePath = string `/application_fees/${getEncodedUri(id)}/refund`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get identity/verification_reports/[string report](map headers = {}, *GetIdentityVerificationReportsReportQueries queries) returns IdentityVerificationReport|error { + string resourcePath = string `/identity/verification_reports/${getEncodedUri(report)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Refunds an application fee that has previously been collected but not yet refunded. - # Funds will be refunded to the Stripe account from which the fee was originally collected.

- # - #

You can optionally refund only part of an application fee. - # You can do so multiple times, until the entire fee has been refunded.

- # - #

Once entirely refunded, an application fee can’t be refunded again. - # This method will raise an error when called on an already-refunded application fee, - # or when trying to refund more money than is left on an application fee.

+ #

Returns a list of VerificationSessions

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post application_fees/[string id]/refunds(id_refunds_body payload, map headers = {}) returns Fee_refund|error { - string resourcePath = string `/application_fees/${getEncodedUri(id)}/refunds`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get identity/verification_sessions(map headers = {}, *GetIdentityVerificationSessionsQueries queries) returns GelatoVerificationSessionList|error { + string resourcePath = string `/identity/verification_sessions`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Create or replace a secret in the secret store.

+ #

Creates a VerificationSession object.

+ # + #

After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session’s url.

+ # + #

If your API key is in test mode, verification checks won’t actually process, though everything else will occur as if in live mode.

+ # + #

Related guide: Verify your users’ identity documents

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post apps/secrets(apps_secrets_body payload, map headers = {}) returns Apps\.secret|error { - string resourcePath = string `/apps/secrets`; + # + return - Successful response + resource isolated function post identity/verification_sessions(IdentityVerificationSessionsBody payload, map headers = {}) returns IdentityVerificationSession|error { + string resourcePath = string `/identity/verification_sessions`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "options": {style: DEEPOBJECT, explode: true}, "provided_details": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Deletes a secret from the secret store by name and scope.

+ #

Retrieves the details of a VerificationSession that was previously created.

+ # + #

When the session status is requires_input, you can use this method to retrieve a valid + # client_secret or url to allow re-submission.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post apps/secrets/delete(secrets_delete_body payload, map headers = {}) returns Apps\.secret|error { - string resourcePath = string `/apps/secrets/delete`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "scope": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get identity/verification_sessions/[string session](map headers = {}, *GetIdentityVerificationSessionsSessionQueries queries) returns IdentityVerificationSession|error { + string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a billing meter event adjustment

+ #

Updates a VerificationSession object.

+ # + #

When the session status is requires_input, you can use this method to update the + # verification check and options.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing/meter_event_adjustments(billing_meter_event_adjustments_body payload, map headers = {}) returns Billing\.meter_event_adjustment|error { - string resourcePath = string `/billing/meter_event_adjustments`; + # + return - Successful response + resource isolated function post identity/verification_sessions/[string session](VerificationSessionssessionBody payload, map headers = {}) returns IdentityVerificationSession|error { + string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}`; http:Request request = new; - map requestBodyEncoding = {"cancel": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "options": {style: DEEPOBJECT, explode: true}, "provided_details": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a billing meter event

+ #

A VerificationSession object can be canceled when it is in requires_input status.

+ # + #

Once canceled, future submission attempts are disabled. This cannot be undone. Learn more.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing/meter_events(billing_meter_events_body payload, map headers = {}) returns Billing\.meter_event|error { - string resourcePath = string `/billing/meter_events`; + # + return - Successful response + resource isolated function post identity/verification_sessions/[string session]/cancel(SessionCancelBody payload, map headers = {}) returns IdentityVerificationSession|error { + string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}/cancel`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "payload": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a billing meter

+ #

Redact a VerificationSession to remove all collected information from Stripe. This will redact + # the VerificationSession and all objects related to it, including VerificationReports, Events, + # request logs, etc.

+ # + #

A VerificationSession object can be redacted when it is in requires_input or verified + # status. Redacting a VerificationSession in requires_action + # state will automatically cancel it.

+ # + #

The redaction process may take up to four days. When the redaction process is in progress, the + # VerificationSession’s redaction.status field will be set to processing; when the process is + # finished, it will change to redacted and an identity.verification_session.redacted event + # will be emitted.

+ # + #

Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the + # fields that contain personal data will be replaced by the string [redacted] or a similar + # placeholder. The metadata field will also be erased. Redacted objects cannot be updated or + # used for any purpose.

+ # + #

Learn more.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing/meters(billing_meters_body payload, map headers = {}) returns Billing\.meter|error { - string resourcePath = string `/billing/meters`; + # + return - Successful response + resource isolated function post identity/verification_sessions/[string session]/redact(SessionRedactBody payload, map headers = {}) returns IdentityVerificationSession|error { + string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}/redact`; http:Request request = new; - map requestBodyEncoding = {"customer_mapping": {style: DEEPOBJECT, explode: true}, "default_aggregation": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "value_settings": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates a billing meter

+ #

Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first.

# - # + id - Unique identifier for the object. # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing/meters/[string id](meters_id_body payload, map headers = {}) returns Billing\.meter|error { - string resourcePath = string `/billing/meters/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoiceitems(map headers = {}, *GetInvoiceitemsQueries queries) returns InvoicesItemsList|error { + string resourcePath = string `/invoiceitems`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Deactivates a billing meter

+ #

Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.

# - # + id - Unique identifier for the object. # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing/meters/[string id]/deactivate(id_deactivate_body payload, map headers = {}) returns Billing\.meter|error { - string resourcePath = string `/billing/meters/${getEncodedUri(id)}/deactivate`; + # + return - Successful response + resource isolated function post invoiceitems(InvoiceitemsBody payload, map headers = {}) returns Invoiceitem|error { + string resourcePath = string `/invoiceitems`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "period": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_code": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Reactivates a billing meter

+ #

Retrieves the invoice item with the given ID.

# - # + id - Unique identifier for the object. # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing/meters/[string id]/reactivate(id_reactivate_body payload, map headers = {}) returns Billing\.meter|error { - string resourcePath = string `/billing/meters/${getEncodedUri(id)}/reactivate`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoiceitems/[string invoiceitem](map headers = {}, *GetInvoiceitemsInvoiceitemQueries queries) returns Invoiceitem|error { + string resourcePath = string `/invoiceitems/${getEncodedUri(invoiceitem)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a configuration that describes the functionality and behavior of a PortalSession

+ #

Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it’s attached to is closed.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing_portal/configurations(billing_portal_configurations_body payload, map headers = {}) returns Billing_portal\.configuration|error { - string resourcePath = string `/billing_portal/configurations`; + # + return - Successful response + resource isolated function post invoiceitems/[string invoiceitem](InvoiceitemsinvoiceitemBody payload, map headers = {}) returns Invoiceitem|error { + string resourcePath = string `/invoiceitems/${getEncodedUri(invoiceitem)}`; http:Request request = new; - map requestBodyEncoding = {"business_profile": {style: DEEPOBJECT, explode: true}, "default_return_url": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}, "login_page": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "period": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_code": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates a configuration that describes the functionality of the customer portal.

+ #

Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they’re not attached to invoices, or if it’s attached to a draft invoice.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing_portal/configurations/[string configuration](configurations_configuration_body payload, map headers = {}) returns Billing_portal\.configuration|error { - string resourcePath = string `/billing_portal/configurations/${getEncodedUri(configuration)}`; - http:Request request = new; - map requestBodyEncoding = {"business_profile": {style: DEEPOBJECT, explode: true}, "default_return_url": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}, "login_page": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete invoiceitems/[string invoiceitem](map headers = {}) returns DeletedInvoiceitem|error { + string resourcePath = string `/invoiceitems/${getEncodedUri(invoiceitem)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Creates a session of the customer portal.

+ #

You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post billing_portal/sessions(billing_portal_sessions_body payload, map headers = {}) returns Billing_portal\.session|error { - string resourcePath = string `/billing_portal/sessions`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "flow_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoices(map headers = {}, *GetInvoicesQueries queries) returns InvoicesResourceList|error { + string resourcePath = string `/invoices`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "due_date": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

This method is no longer recommended—use the Payment Intents API - # to initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge - # object used to request payment.

+ #

This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you finalize the invoice, which allows you to pay or send the invoice to your customers.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges(charges_body payload, map headers = {}) returns Charge|error { - string resourcePath = string `/charges`; + # + return - Successful response + resource isolated function post invoices(InvoicesBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices`; http:Request request = new; - map requestBodyEncoding = {"card": {style: DEEPOBJECT, explode: true}, "destination": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"account_tax_ids": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "from_invoice": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "rendering": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}, "shipping_details": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.

+ # + #

Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.

+ # + #

You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.

+ # + #

Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. Learn more

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge](charges_charge_body payload, map headers = {}) returns Charge|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}`; + # + return - Successful response + resource isolated function post invoices/create_preview(InvoicesCreatePreviewBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/create_preview`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "fraud_details": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_items": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "schedule_details": {style: DEEPOBJECT, explode: true}, "subscription_details": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Capture the payment of an existing, uncaptured charge that was created with the capture option set to false.

- # - #

Uncaptured payments expire a set number of days after they are created (7 by default), after which they are marked as refunded and capture attempts will fail.

- # - #

Don’t use this method to capture a PaymentIntent-initiated charge. Use Capture a PaymentIntent.

+ #

Search for invoices you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge]/capture(charge_capture_body payload, map headers = {}) returns Charge|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/capture`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoices/search(map headers = {}, *GetInvoicesSearchQueries queries) returns SearchResult2|error { + string resourcePath = string `/invoices/search`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } + #

At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.

+ # + #

Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.

# + #

You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.

+ # + #

Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. Learn more

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge]/dispute(charge_dispute_body payload, map headers = {}) returns Dispute|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/dispute`; - http:Request request = new; - map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoices/upcoming(map headers = {}, *GetInvoicesUpcomingQueries queries) returns Invoice|error { + string resourcePath = string `/invoices/upcoming`; + map queryParamEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_items": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "schedule_details": {style: DEEPOBJECT, explode: true}, "subscription_billing_cycle_anchor": {style: DEEPOBJECT, explode: true}, "subscription_cancel_at": {style: DEEPOBJECT, explode: true}, "subscription_default_tax_rates": {style: DEEPOBJECT, explode: true}, "subscription_details": {style: DEEPOBJECT, explode: true}, "subscription_items": {style: DEEPOBJECT, explode: true}, "subscription_trial_end": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - # + #

When retrieving an upcoming invoice, you’ll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge]/dispute/close(dispute_close_body payload, map headers = {}) returns Dispute|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/dispute/close`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoices/upcoming/lines(map headers = {}, *GetInvoicesUpcomingLinesQueries queries) returns InvoiceLinesList|error { + string resourcePath = string `/invoices/upcoming/lines`; + map queryParamEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_items": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "schedule_details": {style: DEEPOBJECT, explode: true}, "subscription_billing_cycle_anchor": {style: DEEPOBJECT, explode: true}, "subscription_cancel_at": {style: DEEPOBJECT, explode: true}, "subscription_default_tax_rates": {style: DEEPOBJECT, explode: true}, "subscription_details": {style: DEEPOBJECT, explode: true}, "subscription_items": {style: DEEPOBJECT, explode: true}, "subscription_trial_end": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

When you create a new refund, you must specify either a Charge or a PaymentIntent object.

- # - #

This action refunds a previously created charge that’s not refunded yet. - # Funds are refunded to the credit or debit card that’s originally charged.

- # - #

You can optionally refund only part of a charge. - # You can repeat this until the entire charge is refunded.

- # - #

After you entirely refund a charge, you can’t refund it again. - # This method raises an error when it’s called on an already-refunded charge, - # or when you attempt to refund more money than is left on a charge.

+ #

Retrieves the invoice with the given ID.

# - # + charge - The identifier of the charge to refund. # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge]/refund(charge_refund_body payload, map headers = {}) returns Charge|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/refund`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoices/[string invoice](map headers = {}, *GetInvoicesInvoiceQueries queries) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.

- # - #

Creating a new refund will refund a charge that has previously been created but not yet refunded. - # Funds will be refunded to the credit or debit card that was originally charged.

- # - #

You can optionally refund only part of a charge. - # You can do so multiple times, until the entire charge has been refunded.

+ #

Draft invoices are fully editable. Once an invoice is finalized, + # monetary values, as well as collection_method, become uneditable.

# - #

Once entirely refunded, a charge can’t be refunded again. - # This method will raise an error when called on an already-refunded charge, - # or when trying to refund more money than is left on a charge.

+ #

If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on, + # sending reminders for, or automatically reconciling invoices, pass + # auto_advance=false.

# - # + charge - The identifier of the charge to refund. # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge]/refunds(charge_refunds_body payload, map headers = {}) returns Refund|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds`; + # + return - Successful response + resource isolated function post invoices/[string invoice](InvoicesinvoiceBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"account_tax_ids": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "default_source": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "effective_at": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "number": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "rendering": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}, "shipping_details": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Update a specified refund.

+ #

Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be voided.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post charges/[string charge]/refunds/[string refund](refunds_refund_body payload, map headers = {}) returns Refund|error { - string resourcePath = string `/charges/${getEncodedUri(charge)}/refunds/${getEncodedUri(refund)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete invoices/[string invoice](map headers = {}) returns DeletedInvoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Creates a Session object.

+ #

Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post checkout/sessions(checkout_sessions_body payload, map headers = {}) returns Checkout\.session|error { - string resourcePath = string `/checkout/sessions`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/add_lines(InvoiceAddLinesBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/add_lines`; http:Request request = new; - map requestBodyEncoding = {"after_expiration": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "consent_collection": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "custom_text": {style: DEEPOBJECT, explode: true}, "customer_update": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_creation": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_intent_data": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "phone_number_collection": {style: DEEPOBJECT, explode: true}, "saved_payment_method_options": {style: DEEPOBJECT, explode: true}, "setup_intent_data": {style: DEEPOBJECT, explode: true}, "shipping_address_collection": {style: DEEPOBJECT, explode: true}, "shipping_options": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "tax_id_collection": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "invoice_metadata": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

A Session can be expired when it is in one of these statuses: open

- # - #

After it expires, a customer can’t complete a Session and customers loading the Session see a message saying the Session is expired.

+ #

Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you’d like to finalize a draft invoice manually, you can do so using this method.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post checkout/sessions/[string session]/expire(session_expire_body payload, map headers = {}) returns Checkout\.session|error { - string resourcePath = string `/checkout/sessions/${getEncodedUri(session)}/expire`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/finalize(InvoiceFinalizeBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/finalize`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a Climate order object for a given Climate product. The order will be processed immediately - # after creation and payment will be deducted your Stripe balance.

+ #

When retrieving an invoice, you’ll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post climate/orders(climate_orders_body payload, map headers = {}) returns Climate\.order|error { - string resourcePath = string `/climate/orders`; - http:Request request = new; - map requestBodyEncoding = {"beneficiary": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get invoices/[string invoice]/lines(map headers = {}, *GetInvoicesInvoiceLinesQueries queries) returns InvoiceLinesList|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/lines`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates the specified order by setting the values of the parameters passed.

+ #

Updates an invoice’s line item. Some fields, such as tax_amounts, only live on the invoice line item, + # so they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice + # item and the invoice line item, so updates on this endpoint will propagate to the invoice item as well. + # Updating an invoice’s line item is only possible before the invoice is finalized.

# - # + 'order - Unique identifier of the order. + # + invoice - Invoice ID of line item + # + lineItemId - Invoice line item ID # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post climate/orders/[string 'order](orders_order_body payload, map headers = {}) returns Climate\.order|error { - string resourcePath = string `/climate/orders/${getEncodedUri('order)}`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/lines/[string lineItemId](LineslineItemIdBody payload, map headers = {}) returns LineItem1|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/lines/${getEncodedUri(lineItemId)}`; http:Request request = new; - map requestBodyEncoding = {"beneficiary": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "period": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_amounts": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the - # reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier - # might cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe - # provides 90 days advance notice and refunds the amount_total.

+ #

Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes.

# - # + 'order - Unique identifier of the order. # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post climate/orders/[string 'order]/cancel(order_cancel_body payload, map headers = {}) returns Climate\.order|error { - string resourcePath = string `/climate/orders/${getEncodedUri('order)}/cancel`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/mark_uncollectible(InvoiceMarkUncollectibleBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/mark_uncollectible`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

You can create coupons easily via the coupon management page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.

- # - #

A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it.

+ #

Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your subscriptions settings. However, if you’d like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post coupons(coupons_body payload, map headers = {}) returns Coupon|error { - string resourcePath = string `/coupons`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/pay(InvoicePayBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/pay`; http:Request request = new; - map requestBodyEncoding = {"applies_to": {style: DEEPOBJECT, explode: true}, "currency_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.

+ #

Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post coupons/[string coupon](coupons_coupon_body payload, map headers = {}) returns Coupon|error { - string resourcePath = string `/coupons/${getEncodedUri(coupon)}`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/remove_lines(InvoiceRemoveLinesBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/remove_lines`; http:Request request = new; - map requestBodyEncoding = {"currency_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "invoice_metadata": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Issue a credit note to adjust the amount of a finalized invoice. For a status=open invoice, a credit note reduces - # its amount_due. For a status=paid invoice, a credit note does not affect its amount_due. Instead, it can result - # in any combination of the following:

- # - #
    - #
  • Refund: create a new refund (using refund_amount) or link an existing refund (using refund).
  • - #
  • Customer balance credit: credit the customer’s balance (using credit_amount) which will be automatically applied to their next invoice when it’s finalized.
  • - #
  • Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount).
  • - #
- # - #

For post-payment credit notes the sum of the refund, credit and outside of Stripe amounts must equal the credit note total.

+ #

Stripe will automatically send invoices to customers according to your subscriptions settings. However, if you’d like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email.

# - #

You may issue multiple credit notes for an invoice. Each credit note will increment the invoice’s pre_payment_credit_notes_amount - # or post_payment_credit_notes_amount depending on its status at the time of credit note creation.

+ #

Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post credit_notes(credit_notes_body payload, map headers = {}) returns Credit_note|error { - string resourcePath = string `/credit_notes`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/send(InvoiceSendBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/send`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates an existing credit note.

+ #

Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post credit_notes/[string id](credit_notes_id_body payload, map headers = {}) returns Credit_note|error { - string resourcePath = string `/credit_notes/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/update_lines(InvoiceUpdateLinesBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/update_lines`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "invoice_metadata": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Marks a credit note as void. Learn more about voiding credit notes.

+ #

Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to deletion, however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.

+ # + #

Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you’re doing business in. You might need to issue another invoice or credit note instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post credit_notes/[string id]/void(id_void_body payload, map headers = {}) returns Credit_note|error { - string resourcePath = string `/credit_notes/${getEncodedUri(id)}/void`; + # + return - Successful response + resource isolated function post invoices/[string invoice]/void(InvoiceVoidBody payload, map headers = {}) returns Invoice|error { + string resourcePath = string `/invoices/${getEncodedUri(invoice)}/void`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.

+ #

Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customer_sessions(customer_sessions_body payload, map headers = {}) returns Customer_session|error { - string resourcePath = string `/customer_sessions`; - http:Request request = new; - map requestBodyEncoding = {"components": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/authorizations(map headers = {}, *GetIssuingAuthorizationsQueries queries) returns IssuingAuthorizationList|error { + string resourcePath = string `/issuing/authorizations`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a new customer object.

+ #

Retrieves an Issuing Authorization object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers(customers_body payload, map headers = {}) returns Customer|error { - string resourcePath = string `/customers`; - http:Request request = new; - map requestBodyEncoding = {"address": {style: DEEPOBJECT, explode: true}, "cash_balance": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "tax": {style: DEEPOBJECT, explode: true}, "tax_id_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/authorizations/[string authorization](map headers = {}, *GetIssuingAuthorizationsAuthorizationQueries queries) returns IssuingAuthorization|error { + string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer’s active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer’s current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior.

- # - #

This request accepts mostly the same arguments as the customer creation call.

+ #

Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer](customers_customer_body payload, map headers = {}) returns Customer|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}`; + # + return - Successful response + resource isolated function post issuing/authorizations/[string authorization](AuthorizationsauthorizationBody payload, map headers = {}) returns IssuingAuthorization|error { + string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}`; http:Request request = new; - map requestBodyEncoding = {"address": {style: DEEPOBJECT, explode: true}, "bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cash_balance": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "tax": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates an immutable transaction that updates the customer’s credit balance.

+ #

[Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the real-time authorization flow. + # This method is deprecated. Instead, respond directly to the webhook request to approve an authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/balance_transactions(customer_balance_transactions_body payload, map headers = {}) returns Customer_balance_transaction|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions`; + # + return - Successful response + # + # # Deprecated + @deprecated + resource isolated function post issuing/authorizations/[string authorization]/approve(AuthorizationApproveBody payload, map headers = {}) returns IssuingAuthorization|error { + string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}/approve`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Most credit balance transaction fields are immutable, but you may update its description and metadata.

+ #

[Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the real time authorization flow. + # This method is deprecated. Instead, respond directly to the webhook request to decline an authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/balance_transactions/[string 'transaction](balance_transactions_transaction_body payload, map headers = {}) returns Customer_balance_transaction|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/balance_transactions/${getEncodedUri('transaction)}`; + # + return - Successful response + # + # # Deprecated + @deprecated + resource isolated function post issuing/authorizations/[string authorization]/decline(AuthorizationDeclineBody payload, map headers = {}) returns IssuingAuthorization|error { + string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}/decline`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

When you create a new credit card, you must specify a customer or recipient on which to create it.

- # - #

If the card’s owner has no default card, then the new card will become the default. - # However, if the owner already has a default, then it will not change. - # To change the default, you should update the customer to have a new default_source.

+ #

Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/bank_accounts(customer_bank_accounts_body payload, map headers = {}) returns Payment_source|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts`; - http:Request request = new; - map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/cardholders(map headers = {}, *GetIssuingCardholdersQueries queries) returns IssuingCardholderList|error { + string resourcePath = string `/issuing/cardholders`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Update a specified source for a given customer.

+ #

Creates a new Issuing Cardholder object that can be issued cards.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/bank_accounts/[string id](bank_accounts_id_body_1 payload, map headers = {}) returns inline_response_200_1|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function post issuing/cardholders(IssuingCardholdersBody payload, map headers = {}) returns IssuingCardholder|error { + string resourcePath = string `/issuing/cardholders`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"billing": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Verify a specified bank account for a given customer.

+ #

Retrieves an Issuing Cardholder object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/bank_accounts/[string id]/verify(id_verify_body payload, map headers = {}) returns Bank_account|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/bank_accounts/${getEncodedUri(id)}/verify`; - http:Request request = new; - map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/cardholders/[string cardholder](map headers = {}, *GetIssuingCardholdersCardholderQueries queries) returns IssuingCardholder|error { + string resourcePath = string `/issuing/cardholders/${getEncodedUri(cardholder)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

When you create a new credit card, you must specify a customer or recipient on which to create it.

- # - #

If the card’s owner has no default card, then the new card will become the default. - # However, if the owner already has a default, then it will not change. - # To change the default, you should update the customer to have a new default_source.

+ #

Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/cards(customer_cards_body payload, map headers = {}) returns Payment_source|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cards`; + # + return - Successful response + resource isolated function post issuing/cardholders/[string cardholder](CardholderscardholderBody payload, map headers = {}) returns IssuingCardholder|error { + string resourcePath = string `/issuing/cardholders/${getEncodedUri(cardholder)}`; http:Request request = new; - map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"billing": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Update a specified source for a given customer.

+ #

Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/cards/[string id](cards_id_body payload, map headers = {}) returns inline_response_200_1|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cards/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/cards(map headers = {}, *GetIssuingCardsQueries queries) returns IssuingCardList|error { + string resourcePath = string `/issuing/cards`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Changes the settings on a customer’s cash balance.

+ #

Creates an Issuing Card object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/cash_balance(customer_cash_balance_body payload, map headers = {}) returns Cash_balance|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/cash_balance`; + # + return - Successful response + resource isolated function post issuing/cards(IssuingCardsBody payload, map headers = {}) returns IssuingCard|error { + string resourcePath = string `/issuing/cards`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "settings": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "pin": {style: DEEPOBJECT, explode: true}, "second_line": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new - # funding instructions will be created. If funding instructions have already been created for a given customer, the same - # funding instructions will be retrieved. In other words, we will return the same funding instructions each time.

+ #

Retrieves an Issuing Card object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/funding_instructions(customer_funding_instructions_body payload, map headers = {}) returns Funding_instructions|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/funding_instructions`; - http:Request request = new; - map requestBodyEncoding = {"bank_transfer": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/cards/[string card](map headers = {}, *GetIssuingCardsCardQueries queries) returns IssuingCard|error { + string resourcePath = string `/issuing/cards/${getEncodedUri(card)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

When you create a new credit card, you must specify a customer or recipient on which to create it.

- # - #

If the card’s owner has no default card, then the new card will become the default. - # However, if the owner already has a default, then it will not change. - # To change the default, you should update the customer to have a new default_source.

+ #

Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/sources(customer_sources_body payload, map headers = {}) returns Payment_source|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/sources`; + # + return - Successful response + resource isolated function post issuing/cards/[string card](CardscardBody payload, map headers = {}) returns IssuingCard|error { + string resourcePath = string `/issuing/cards/${getEncodedUri(card)}`; http:Request request = new; - map requestBodyEncoding = {"bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "pin": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Update a specified source for a given customer.

+ #

Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/sources/[string id](sources_id_body payload, map headers = {}) returns inline_response_200_1|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/disputes(map headers = {}, *GetIssuingDisputesQueries queries) returns IssuingDisputeList|error { + string resourcePath = string `/issuing/disputes`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Verify a specified bank account for a given customer.

+ #

Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to Dispute reasons and evidence for more details about evidence requirements.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/sources/[string id]/verify(id_verify_body_1 payload, map headers = {}) returns Bank_account|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/sources/${getEncodedUri(id)}/verify`; + # + return - Successful response + resource isolated function post issuing/disputes(IssuingDisputesBody payload, map headers = {}) returns IssuingDispute|error { + string resourcePath = string `/issuing/disputes`; http:Request request = new; - map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "treasury": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a new subscription on an existing customer.

+ #

Retrieves an Issuing Dispute object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/subscriptions(customer_subscriptions_body payload, map headers = {}) returns Subscription|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions`; + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/disputes/[string dispute](map headers = {}, *GetIssuingDisputesDisputeQueries queries) returns IssuingDispute|error { + string resourcePath = string `/issuing/disputes/${getEncodedUri(dispute)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post issuing/disputes/[string dispute](DisputesdisputeBody1 payload, map headers = {}) returns IssuingDispute|error { + string resourcePath = string `/issuing/disputes/${getEncodedUri(dispute)}`; http:Request request = new; - map requestBodyEncoding = {"add_invoice_items": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "billing_thresholds": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "pending_invoice_item_interval": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}, "trial_end": {style: DEEPOBJECT, explode: true}, "trial_settings": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the upcoming invoice endpoint.

+ #

Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute’s reason are present. For more details, see Dispute reasons and evidence.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/subscriptions/[string subscription_exposed_id](subscriptions_subscription_exposed_id_body payload, map headers = {}) returns Subscription|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/subscriptions/${getEncodedUri(subscription_exposed_id)}`; + # + return - Successful response + resource isolated function post issuing/disputes/[string dispute]/submit(DisputeSubmitBody payload, map headers = {}) returns IssuingDispute|error { + string resourcePath = string `/issuing/disputes/${getEncodedUri(dispute)}/submit`; http:Request request = new; - map requestBodyEncoding = {"add_invoice_items": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "billing_thresholds": {style: DEEPOBJECT, explode: true}, "cancel_at": {style: DEEPOBJECT, explode: true}, "cancellation_details": {style: DEEPOBJECT, explode: true}, "default_source": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "pause_collection": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "pending_invoice_item_interval": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}, "trial_end": {style: DEEPOBJECT, explode: true}, "trial_settings": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a new tax_id object for a customer.

+ #

Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post customers/[string customer]/tax_ids(customer_tax_ids_body payload, map headers = {}) returns Tax_id|error { - string resourcePath = string `/customers/${getEncodedUri(customer)}/tax_ids`; + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/personalization_designs(map headers = {}, *GetIssuingPersonalizationDesignsQueries queries) returns IssuingPersonalizationDesignList|error { + string resourcePath = string `/issuing/personalization_designs`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "lookup_keys": {style: DEEPOBJECT, explode: true}, "preferences": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Creates a personalization design object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post issuing/personalization_designs(IssuingPersonalizationDesignsBody payload, map headers = {}) returns IssuingPersonalizationDesign|error { + string resourcePath = string `/issuing/personalization_designs`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"carrier_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferences": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

When you get a dispute, contacting your customer is always the best first step. If that doesn’t work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your dashboard, but if you prefer, you can use the API to submit evidence programmatically.

- # - #

Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our guide to dispute types.

+ #

Retrieves a personalization design object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post disputes/[string dispute](disputes_dispute_body payload, map headers = {}) returns Dispute|error { - string resourcePath = string `/disputes/${getEncodedUri(dispute)}`; + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/personalization_designs/[string personalizationDesign](map headers = {}, *GetIssuingPersonalizationDesignsPersonalizationDesignQueries queries) returns IssuingPersonalizationDesign|error { + string resourcePath = string `/issuing/personalization_designs/${getEncodedUri(personalizationDesign)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Updates a card personalization object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post issuing/personalization_designs/[string personalizationDesign](PersonalizationDesignspersonalizationDesignBody payload, map headers = {}) returns IssuingPersonalizationDesign|error { + string resourcePath = string `/issuing/personalization_designs/${getEncodedUri(personalizationDesign)}`; http:Request request = new; - map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"card_logo": {style: DEEPOBJECT, explode: true}, "carrier_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "lookup_key": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "name": {style: DEEPOBJECT, explode: true}, "preferences": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost.

- # - #

The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible.

+ #

Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/physical_bundles(map headers = {}, *GetIssuingPhysicalBundlesQueries queries) returns IssuingPhysicalBundleList|error { + string resourcePath = string `/issuing/physical_bundles`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves a physical bundle object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/physical_bundles/[string physicalBundle](map headers = {}, *GetIssuingPhysicalBundlesPhysicalBundleQueries queries) returns IssuingPhysicalBundle|error { + string resourcePath = string `/issuing/physical_bundles/${getEncodedUri(physicalBundle)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves an Issuing Settlement object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/settlements/[string settlement](map headers = {}, *GetIssuingSettlementsSettlementQueries queries) returns IssuingSettlement|error { + string resourcePath = string `/issuing/settlements/${getEncodedUri(settlement)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Updates the specified Issuing Settlement object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post disputes/[string dispute]/close(dispute_close_body_1 payload, map headers = {}) returns Dispute|error { - string resourcePath = string `/disputes/${getEncodedUri(dispute)}/close`; + # + return - Successful response + resource isolated function post issuing/settlements/[string settlement](SettlementssettlementBody payload, map headers = {}) returns IssuingSettlement|error { + string resourcePath = string `/issuing/settlements/${getEncodedUri(settlement)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a feature

+ #

Lists all Issuing Token objects for a given card.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post entitlements/features(entitlements_features_body payload, map headers = {}) returns Entitlements\.feature|error { - string resourcePath = string `/entitlements/features`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/tokens(map headers = {}, *GetIssuingTokensQueries queries) returns IssuingNetworkTokenList|error { + string resourcePath = string `/issuing/tokens`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Update a feature’s metadata or permanently deactivate it.

+ #

Retrieves an Issuing Token object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post entitlements/features/[string id](features_id_body payload, map headers = {}) returns Entitlements\.feature|error { - string resourcePath = string `/entitlements/features/${getEncodedUri(id)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/tokens/[string token](map headers = {}, *GetIssuingTokensTokenQueries queries) returns IssuingToken|error { + string resourcePath = string `/issuing/tokens/${getEncodedUri(token)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a short-lived API key for a given resource.

+ #

Attempts to update the specified Issuing Token object to the status specified.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post ephemeral_keys(ephemeral_keys_body payload, map headers = {}) returns Ephemeral_key|error { - string resourcePath = string `/ephemeral_keys`; + # + return - Successful response + resource isolated function post issuing/tokens/[string token](TokenstokenBody payload, map headers = {}) returns IssuingToken|error { + string resourcePath = string `/issuing/tokens/${getEncodedUri(token)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a new file link object.

+ #

Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post file_links(file_links_body payload, map headers = {}) returns File_link|error { - string resourcePath = string `/file_links`; + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/transactions(map headers = {}, *GetIssuingTransactionsQueries queries) returns IssuingTransactionList|error { + string resourcePath = string `/issuing/transactions`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves an Issuing Transaction object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get issuing/transactions/[string 'transaction](map headers = {}, *GetIssuingTransactionsTransactionQueries queries) returns IssuingTransaction|error { + string resourcePath = string `/issuing/transactions/${getEncodedUri('transaction)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post issuing/transactions/[string 'transaction](TransactionstransactionBody payload, map headers = {}) returns IssuingTransaction|error { + string resourcePath = string `/issuing/transactions/${getEncodedUri('transaction)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates an existing file link object. Expired links can no longer be updated.

+ #

To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post file_links/[string link](file_links_link_body payload, map headers = {}) returns File_link|error { - string resourcePath = string `/file_links/${getEncodedUri(link)}`; + # + return - Successful response + resource isolated function post link_account_sessions(LinkAccountSessionsBody payload, map headers = {}) returns FinancialConnectionsSession|error { + string resourcePath = string `/link_account_sessions`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "expires_at": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "filters": {style: DEEPOBJECT, explode: true}, "permissions": {style: DEEPOBJECT, explode: true}, "prefetch": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file.

- # - #

All of Stripe’s officially supported Client libraries support sending multipart/form-data.

+ #

Retrieves the details of a Financial Connections Session

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post files(files_body payload, map headers = {}) returns File|error { - string resourcePath = string `/files`; - http:Request request = new; - map encodingMap = {"expand": {}, "file_link_data": {}}; - mime:Entity[] bodyParts = check createBodyParts(payload, encodingMap); - request.setBodyParts(bodyParts); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get link_account_sessions/[string session](map headers = {}, *GetLinkAccountSessionsSessionQueries queries) returns FinancialConnectionsSession|error { + string resourcePath = string `/link_account_sessions/${getEncodedUri(session)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).

+ #

Returns a list of Financial Connections Account objects.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post financial_connections/accounts/[string account]/disconnect(account_disconnect_body payload, map headers = {}) returns Financial_connections\.account|error { - string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/disconnect`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get linked_accounts(map headers = {}, *GetLinkedAccountsQueries queries) returns BankConnectionsResourceLinkedAccountList|error { + string resourcePath = string `/linked_accounts`; + map queryParamEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Refreshes the data associated with a Financial Connections Account.

+ #

Retrieves the details of an Financial Connections Account.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post financial_connections/accounts/[string account]/refresh(account_refresh_body payload, map headers = {}) returns Financial_connections\.account|error { - string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/refresh`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get linked_accounts/[string account](map headers = {}, *GetLinkedAccountsAccountQueries queries) returns FinancialConnectionsAccount|error { + string resourcePath = string `/linked_accounts/${getEncodedUri(account)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Subscribes to periodic refreshes of data associated with a Financial Connections Account.

+ #

Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post financial_connections/accounts/[string account]/subscribe(account_subscribe_body payload, map headers = {}) returns Financial_connections\.account|error { - string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/subscribe`; + # + return - Successful response + resource isolated function post linked_accounts/[string account]/disconnect(AccountDisconnectBody1 payload, map headers = {}) returns FinancialConnectionsAccount|error { + string resourcePath = string `/linked_accounts/${getEncodedUri(account)}/disconnect`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Unsubscribes from periodic refreshes of data associated with a Financial Connections Account.

+ #

Lists all owners for a given Account

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post financial_connections/accounts/[string account]/unsubscribe(account_unsubscribe_body payload, map headers = {}) returns Financial_connections\.account|error { - string resourcePath = string `/financial_connections/accounts/${getEncodedUri(account)}/unsubscribe`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get linked_accounts/[string account]/owners(map headers = {}, *GetLinkedAccountsAccountOwnersQueries queries) returns BankConnectionsResourceOwnerList|error { + string resourcePath = string `/linked_accounts/${getEncodedUri(account)}/owners`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.

+ #

Refreshes the data associated with a Financial Connections Account.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post financial_connections/sessions(financial_connections_sessions_body payload, map headers = {}) returns Financial_connections\.session|error { - string resourcePath = string `/financial_connections/sessions`; + # + return - Successful response + resource isolated function post linked_accounts/[string account]/refresh(AccountRefreshBody1 payload, map headers = {}) returns FinancialConnectionsAccount|error { + string resourcePath = string `/linked_accounts/${getEncodedUri(account)}/refresh`; http:Request request = new; - map requestBodyEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "filters": {style: DEEPOBJECT, explode: true}, "permissions": {style: DEEPOBJECT, explode: true}, "prefetch": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a ForwardingRequest object.

+ #

Retrieves a Mandate object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post forwarding/requests(forwarding_requests_body payload, map headers = {}) returns Forwarding\.request|error { - string resourcePath = string `/forwarding/requests`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "replacements": {style: DEEPOBJECT, explode: true}, "request": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get mandates/[string mandate](map headers = {}, *GetMandatesMandateQueries queries) returns Mandate|error { + string resourcePath = string `/mandates/${getEncodedUri(mandate)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a VerificationSession object.

- # - #

After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session’s url.

- # - #

If your API key is in test mode, verification checks won’t actually process, though everything else will occur as if in live mode.

- # - #

Related guide: Verify your users’ identity documents

+ #

Returns a list of PaymentIntents.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post identity/verification_sessions(identity_verification_sessions_body payload, map headers = {}) returns Identity\.verification_session|error { - string resourcePath = string `/identity/verification_sessions`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "options": {style: DEEPOBJECT, explode: true}, "provided_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_intents(map headers = {}, *GetPaymentIntentsQueries queries) returns PaymentFlowsPaymentIntentList|error { + string resourcePath = string `/payment_intents`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates a VerificationSession object.

+ #

Creates a PaymentIntent object.

# - #

When the session status is requires_input, you can use this method to update the - # verification check and options.

+ #

After the PaymentIntent is created, attach a payment method and confirm + # to continue the payment. Learn more about the available payment flows + # with the Payment Intents API.

+ # + #

When you use confirm=true during creation, it’s equivalent to creating + # and confirming the PaymentIntent in the same call. You can use any parameters + # available in the confirm API when you supply + # confirm=true.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post identity/verification_sessions/[string session](verification_sessions_session_body payload, map headers = {}) returns Identity\.verification_session|error { - string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}`; + # + return - Successful response + resource isolated function post payment_intents(PaymentIntentsBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "options": {style: DEEPOBJECT, explode: true}, "provided_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"automatic_payment_methods": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "mandate_data": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "off_session": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

A VerificationSession object can be canceled when it is in requires_input status.

- # - #

Once canceled, future submission attempts are disabled. This cannot be undone. Learn more.

+ #

Search for PaymentIntents you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post identity/verification_sessions/[string session]/cancel(session_cancel_body payload, map headers = {}) returns Identity\.verification_session|error { - string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}/cancel`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_intents/search(map headers = {}, *GetPaymentIntentsSearchQueries queries) returns SearchResult3|error { + string resourcePath = string `/payment_intents/search`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Redact a VerificationSession to remove all collected information from Stripe. This will redact - # the VerificationSession and all objects related to it, including VerificationReports, Events, - # request logs, etc.

- # - #

A VerificationSession object can be redacted when it is in requires_input or verified - # status. Redacting a VerificationSession in requires_action - # state will automatically cancel it.

- # - #

The redaction process may take up to four days. When the redaction process is in progress, the - # VerificationSession’s redaction.status field will be set to processing; when the process is - # finished, it will change to redacted and an identity.verification_session.redacted event - # will be emitted.

+ #

Retrieves the details of a PaymentIntent that has previously been created.

# - #

Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the - # fields that contain personal data will be replaced by the string [redacted] or a similar - # placeholder. The metadata field will also be erased. Redacted objects cannot be updated or - # used for any purpose.

+ #

You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string.

# - #

Learn more.

+ #

If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the payment intent object reference for more details.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post identity/verification_sessions/[string session]/redact(session_redact_body payload, map headers = {}) returns Identity\.verification_session|error { - string resourcePath = string `/identity/verification_sessions/${getEncodedUri(session)}/redact`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_intents/[string intent](map headers = {}, *GetPaymentIntentsIntentQueries queries) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.

+ #

Updates properties on a PaymentIntent object without confirming.

+ # + #

Depending on which properties you update, you might need to confirm the + # PaymentIntent again. For example, updating the payment_method + # always requires you to confirm the PaymentIntent again. If you prefer to + # update and confirm at the same time, we recommend updating properties through + # the confirm API instead.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoiceitems(invoiceitems_body payload, map headers = {}) returns Invoiceitem|error { - string resourcePath = string `/invoiceitems`; + # + return - Successful response + resource isolated function post payment_intents/[string intent](PaymentIntentsintentBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}`; http:Request request = new; - map requestBodyEncoding = {"discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "period": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_code": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"application_fee_amount": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "receipt_email": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it’s attached to is closed.

+ #

Manually reconcile the remaining amount for a customer_balance PaymentIntent.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoiceitems/[string invoiceitem](invoiceitems_invoiceitem_body payload, map headers = {}) returns Invoiceitem|error { - string resourcePath = string `/invoiceitems/${getEncodedUri(invoiceitem)}`; + # + return - Successful response + resource isolated function post payment_intents/[string intent]/apply_customer_balance(IntentApplyCustomerBalanceBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/apply_customer_balance`; http:Request request = new; - map requestBodyEncoding = {"discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "period": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_code": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you finalize the invoice, which allows you to pay or send the invoice to your customers.

+ #

You can cancel a PaymentIntent object when it’s in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, in rare cases, processing.

+ # + #

After it’s canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded.

+ # + #

You can’t cancel the PaymentIntent for a Checkout Session. Expire the Checkout Session instead.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices(invoices_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices`; + # + return - Successful response + resource isolated function post payment_intents/[string intent]/cancel(IntentCancelBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/cancel`; http:Request request = new; - map requestBodyEncoding = {"account_tax_ids": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "from_invoice": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "rendering": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}, "shipping_details": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Draft invoices are fully editable. Once an invoice is finalized, - # monetary values, as well as collection_method, become uneditable.

+ #

Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture.

# - #

If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on, - # sending reminders for, or automatically reconciling invoices, pass - # auto_advance=false.

+ #

Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation.

+ # + #

Learn more about separate authorization and capture.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice](invoices_invoice_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}`; + # + return - Successful response + resource isolated function post payment_intents/[string intent]/capture(IntentCaptureBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/capture`; http:Request request = new; - map requestBodyEncoding = {"account_tax_ids": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "default_source": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "effective_at": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "number": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "rendering": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}, "shipping_details": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.

+ #

Confirm that your customer intends to pay with current or provided + # payment method. Upon confirmation, the PaymentIntent will attempt to initiate + # a payment. + # If the selected payment method requires additional authentication steps, the + # PaymentIntent will transition to the requires_action status and + # suggest additional actions via next_action. If payment fails, + # the PaymentIntent transitions to the requires_payment_method status or the + # canceled status if the confirmation limit is reached. If + # payment succeeds, the PaymentIntent will transition to the succeeded + # status (or requires_capture, if capture_method is set to manual). + # If the confirmation_method is automatic, payment may be attempted + # using our client SDKs + # and the PaymentIntent’s client_secret. + # After next_actions are handled by the client, no additional + # confirmation is required to complete the payment. + # If the confirmation_method is manual, all payment attempts must be + # initiated using a secret key. + # If any actions are required for the payment, the PaymentIntent will + # return to the requires_confirmation state + # after those actions are completed. Your server needs to then + # explicitly re-confirm the PaymentIntent to initiate the next payment + # attempt.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/add_lines(invoice_add_lines_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/add_lines`; + # + return - Successful response + resource isolated function post payment_intents/[string intent]/confirm(IntentConfirmBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/confirm`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "invoice_metadata": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate_data": {style: DEEPOBJECT, explode: true}, "off_session": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "receipt_email": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you’d like to finalize a draft invoice manually, you can do so using this method.

+ #

Perform an incremental authorization on an eligible + # PaymentIntent. To be eligible, the + # PaymentIntent’s status must be requires_capture and + # incremental_authorization_supported + # must be true.

+ # + #

Incremental authorizations attempt to increase the authorized amount on + # your customer’s card to the new, higher amount provided. Similar to the + # initial authorization, incremental authorizations can be declined. A + # single PaymentIntent can call this endpoint multiple times to further + # increase the authorized amount.

+ # + #

If the incremental authorization succeeds, the PaymentIntent object + # returns with the updated + # amount. + # If the incremental authorization fails, a + # card_declined error returns, and no other + # fields on the PaymentIntent or Charge update. The PaymentIntent + # object remains capturable for the previously authorized amount.

+ # + #

Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. + # After it’s captured, a PaymentIntent can no longer be incremented.

+ # + #

Learn more about incremental authorizations.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/finalize(invoice_finalize_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/finalize`; + # + return - Successful response + resource isolated function post payment_intents/[string intent]/increment_authorization(IntentIncrementAuthorizationBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/increment_authorization`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates an invoice’s line item. Some fields, such as tax_amounts, only live on the invoice line item, - # so they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice - # item and the invoice line item, so updates on this endpoint will propagate to the invoice item as well. - # Updating an invoice’s line item is only possible before the invoice is finalized.

+ #

Verifies microdeposits on a PaymentIntent object.

# - # + invoice - Invoice ID of line item - # + line_item_id - Invoice line item ID # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/lines/[string line_item_id](lines_line_item_id_body payload, map headers = {}) returns Line_item|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/lines/${getEncodedUri(line_item_id)}`; + # + return - Successful response + resource isolated function post payment_intents/[string intent]/verify_microdeposits(IntentVerifyMicrodepositsBody payload, map headers = {}) returns PaymentIntent|error { + string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/verify_microdeposits`; http:Request request = new; - map requestBodyEncoding = {"discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "period": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_amounts": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes.

+ #

Returns a list of your payment links.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/mark_uncollectible(invoice_mark_uncollectible_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/mark_uncollectible`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_links(map headers = {}, *GetPaymentLinksQueries queries) returns PaymentLinksResourcePaymentLinkList|error { + string resourcePath = string `/payment_links`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your subscriptions settings. However, if you’d like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so.

+ #

Creates a payment link.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/pay(invoice_pay_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/pay`; + # + return - Successful response + resource isolated function post payment_links(PaymentLinksBody payload, map headers = {}) returns PaymentLink|error { + string resourcePath = string `/payment_links`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"after_completion": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "consent_collection": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "custom_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_creation": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_intent_data": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "phone_number_collection": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}, "shipping_address_collection": {style: DEEPOBJECT, explode: true}, "shipping_options": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "tax_id_collection": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.

+ #

Retrieve a payment link.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/remove_lines(invoice_remove_lines_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/remove_lines`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "invoice_metadata": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_links/[string paymentLink](map headers = {}, *GetPaymentLinksPaymentLinkQueries queries) returns PaymentLink|error { + string resourcePath = string `/payment_links/${getEncodedUri(paymentLink)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Stripe will automatically send invoices to customers according to your subscriptions settings. However, if you’d like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email.

- # - #

Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event.

+ #

Updates a payment link.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/send(invoice_send_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/send`; + # + return - Successful response + resource isolated function post payment_links/[string paymentLink](PaymentLinkspaymentLinkBody payload, map headers = {}) returns PaymentLink|error { + string resourcePath = string `/payment_links/${getEncodedUri(paymentLink)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"after_completion": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "custom_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "inactive_message": {style: DEEPOBJECT, explode: true}, "invoice_creation": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_intent_data": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}, "shipping_address_collection": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "tax_id_collection": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.

+ #

When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/update_lines(invoice_update_lines_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/update_lines`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "invoice_metadata": {style: DEEPOBJECT, explode: true}, "lines": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_links/[string paymentLink]/line_items(map headers = {}, *GetPaymentLinksPaymentLinkLineItemsQueries queries) returns PaymentLinksResourceListLineItems|error { + string resourcePath = string `/payment_links/${getEncodedUri(paymentLink)}/line_items`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to deletion, however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.

- # - #

Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you’re doing business in. You might need to issue another invoice or credit note instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.

+ #

List payment method configurations

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/[string invoice]/void(invoice_void_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/${getEncodedUri(invoice)}/void`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_method_configurations(map headers = {}, *GetPaymentMethodConfigurationsQueries queries) returns PaymentMethodConfigResourcePaymentMethodConfigurationsList|error { + string resourcePath = string `/payment_method_configurations`; + map queryParamEncoding = {"application": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.

- # - #

Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.

- # - #

You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.

- # - #

Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. Learn more

+ #

Creates a payment method configuration

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post invoices/create_preview(invoices_create_preview_body payload, map headers = {}) returns Invoice|error { - string resourcePath = string `/invoices/create_preview`; + # + return - Successful response + resource isolated function post payment_method_configurations(PaymentMethodConfigurationsBody payload, map headers = {}) returns PaymentMethodConfiguration|error { + string resourcePath = string `/payment_method_configurations`; http:Request request = new; - map requestBodyEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "customer_details": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_items": {style: DEEPOBJECT, explode: true}, "issuer": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "schedule_details": {style: DEEPOBJECT, explode: true}, "subscription_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"acss_debit": {style: DEEPOBJECT, explode: true}, "affirm": {style: DEEPOBJECT, explode: true}, "afterpay_clearpay": {style: DEEPOBJECT, explode: true}, "alipay": {style: DEEPOBJECT, explode: true}, "amazon_pay": {style: DEEPOBJECT, explode: true}, "apple_pay": {style: DEEPOBJECT, explode: true}, "apple_pay_later": {style: DEEPOBJECT, explode: true}, "au_becs_debit": {style: DEEPOBJECT, explode: true}, "bacs_debit": {style: DEEPOBJECT, explode: true}, "bancontact": {style: DEEPOBJECT, explode: true}, "blik": {style: DEEPOBJECT, explode: true}, "boleto": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cartes_bancaires": {style: DEEPOBJECT, explode: true}, "cashapp": {style: DEEPOBJECT, explode: true}, "customer_balance": {style: DEEPOBJECT, explode: true}, "eps": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fpx": {style: DEEPOBJECT, explode: true}, "giropay": {style: DEEPOBJECT, explode: true}, "google_pay": {style: DEEPOBJECT, explode: true}, "grabpay": {style: DEEPOBJECT, explode: true}, "ideal": {style: DEEPOBJECT, explode: true}, "jcb": {style: DEEPOBJECT, explode: true}, "klarna": {style: DEEPOBJECT, explode: true}, "konbini": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "mobilepay": {style: DEEPOBJECT, explode: true}, "multibanco": {style: DEEPOBJECT, explode: true}, "oxxo": {style: DEEPOBJECT, explode: true}, "p24": {style: DEEPOBJECT, explode: true}, "paynow": {style: DEEPOBJECT, explode: true}, "paypal": {style: DEEPOBJECT, explode: true}, "promptpay": {style: DEEPOBJECT, explode: true}, "revolut_pay": {style: DEEPOBJECT, explode: true}, "sepa_debit": {style: DEEPOBJECT, explode: true}, "sofort": {style: DEEPOBJECT, explode: true}, "swish": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}, "wechat_pay": {style: DEEPOBJECT, explode: true}, "zip": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

Retrieve payment method configuration

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/authorizations/[string authorization](authorizations_authorization_body payload, map headers = {}) returns Issuing\.authorization|error { - string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_method_configurations/[string configuration](map headers = {}, *GetPaymentMethodConfigurationsConfigurationQueries queries) returns PaymentMethodConfiguration|error { + string resourcePath = string `/payment_method_configurations/${getEncodedUri(configuration)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

[Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the real-time authorization flow. - # This method is deprecated. Instead, respond directly to the webhook request to approve an authorization.

+ #

Update payment method configuration

# # + headers - Headers to be sent with the request - # + return - Successful response. - # - # # Deprecated - @deprecated - resource isolated function post issuing/authorizations/[string authorization]/approve(authorization_approve_body payload, map headers = {}) returns Issuing\.authorization|error { - string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}/approve`; + # + return - Successful response + resource isolated function post payment_method_configurations/[string configuration](PaymentMethodConfigurationsconfigurationBody payload, map headers = {}) returns PaymentMethodConfiguration|error { + string resourcePath = string `/payment_method_configurations/${getEncodedUri(configuration)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"acss_debit": {style: DEEPOBJECT, explode: true}, "affirm": {style: DEEPOBJECT, explode: true}, "afterpay_clearpay": {style: DEEPOBJECT, explode: true}, "alipay": {style: DEEPOBJECT, explode: true}, "amazon_pay": {style: DEEPOBJECT, explode: true}, "apple_pay": {style: DEEPOBJECT, explode: true}, "apple_pay_later": {style: DEEPOBJECT, explode: true}, "au_becs_debit": {style: DEEPOBJECT, explode: true}, "bacs_debit": {style: DEEPOBJECT, explode: true}, "bancontact": {style: DEEPOBJECT, explode: true}, "blik": {style: DEEPOBJECT, explode: true}, "boleto": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cartes_bancaires": {style: DEEPOBJECT, explode: true}, "cashapp": {style: DEEPOBJECT, explode: true}, "customer_balance": {style: DEEPOBJECT, explode: true}, "eps": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fpx": {style: DEEPOBJECT, explode: true}, "giropay": {style: DEEPOBJECT, explode: true}, "google_pay": {style: DEEPOBJECT, explode: true}, "grabpay": {style: DEEPOBJECT, explode: true}, "ideal": {style: DEEPOBJECT, explode: true}, "jcb": {style: DEEPOBJECT, explode: true}, "klarna": {style: DEEPOBJECT, explode: true}, "konbini": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "mobilepay": {style: DEEPOBJECT, explode: true}, "multibanco": {style: DEEPOBJECT, explode: true}, "oxxo": {style: DEEPOBJECT, explode: true}, "p24": {style: DEEPOBJECT, explode: true}, "paynow": {style: DEEPOBJECT, explode: true}, "paypal": {style: DEEPOBJECT, explode: true}, "promptpay": {style: DEEPOBJECT, explode: true}, "revolut_pay": {style: DEEPOBJECT, explode: true}, "sepa_debit": {style: DEEPOBJECT, explode: true}, "sofort": {style: DEEPOBJECT, explode: true}, "swish": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}, "wechat_pay": {style: DEEPOBJECT, explode: true}, "zip": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

[Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the real time authorization flow. - # This method is deprecated. Instead, respond directly to the webhook request to decline an authorization.

+ #

Lists the details of existing payment method domains.

# # + headers - Headers to be sent with the request - # + return - Successful response. - # - # # Deprecated - @deprecated - resource isolated function post issuing/authorizations/[string authorization]/decline(authorization_decline_body payload, map headers = {}) returns Issuing\.authorization|error { - string resourcePath = string `/issuing/authorizations/${getEncodedUri(authorization)}/decline`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_method_domains(map headers = {}, *GetPaymentMethodDomainsQueries queries) returns PaymentMethodDomainResourcePaymentMethodDomainList|error { + string resourcePath = string `/payment_method_domains`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a new Issuing Cardholder object that can be issued cards.

+ #

Creates a payment method domain.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/cardholders(issuing_cardholders_body payload, map headers = {}) returns Issuing\.cardholder|error { - string resourcePath = string `/issuing/cardholders`; + # + return - Successful response + resource isolated function post payment_method_domains(PaymentMethodDomainsBody payload, map headers = {}) returns PaymentMethodDomain|error { + string resourcePath = string `/payment_method_domains`; http:Request request = new; - map requestBodyEncoding = {"billing": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

Retrieves the details of an existing payment method domain.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/cardholders/[string cardholder](cardholders_cardholder_body payload, map headers = {}) returns Issuing\.cardholder|error { - string resourcePath = string `/issuing/cardholders/${getEncodedUri(cardholder)}`; - http:Request request = new; - map requestBodyEncoding = {"billing": {style: DEEPOBJECT, explode: true}, "company": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "individual": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferred_locales": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_method_domains/[string paymentMethodDomain](map headers = {}, *GetPaymentMethodDomainsPaymentMethodDomainQueries queries) returns PaymentMethodDomain|error { + string resourcePath = string `/payment_method_domains/${getEncodedUri(paymentMethodDomain)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates an Issuing Card object.

+ #

Updates an existing payment method domain.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/cards(issuing_cards_body payload, map headers = {}) returns Issuing\.card|error { - string resourcePath = string `/issuing/cards`; + # + return - Successful response + resource isolated function post payment_method_domains/[string paymentMethodDomain](PaymentMethodDomainspaymentMethodDomainBody payload, map headers = {}) returns PaymentMethodDomain|error { + string resourcePath = string `/payment_method_domains/${getEncodedUri(paymentMethodDomain)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "pin": {style: DEEPOBJECT, explode: true}, "second_line": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

Some payment methods such as Apple Pay require additional steps to verify a domain. If the requirements weren’t satisfied when the domain was created, the payment method will be inactive on the domain. + # The payment method doesn’t appear in Elements for this domain until it is active.

+ # + #

To activate a payment method on an existing payment method domain, complete the required validation steps specific to the payment method, and then validate the payment method domain with this endpoint.

+ # + #

Related guides: Payment method domains.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/cards/[string card](cards_card_body payload, map headers = {}) returns Issuing\.card|error { - string resourcePath = string `/issuing/cards/${getEncodedUri(card)}`; + # + return - Successful response + resource isolated function post payment_method_domains/[string paymentMethodDomain]/validate(PaymentMethodDomainValidateBody payload, map headers = {}) returns PaymentMethodDomain|error { + string resourcePath = string `/payment_method_domains/${getEncodedUri(paymentMethodDomain)}/validate`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "pin": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "spending_controls": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to Dispute reasons and evidence for more details about evidence requirements.

+ #

Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the List a Customer’s PaymentMethods API instead.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/disputes(issuing_disputes_body payload, map headers = {}) returns Issuing\.dispute|error { - string resourcePath = string `/issuing/disputes`; - http:Request request = new; - map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "treasury": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_methods(map headers = {}, *GetPaymentMethodsQueries queries) returns PaymentFlowsPaymentMethodList|error { + string resourcePath = string `/payment_methods`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string.

+ #

Creates a PaymentMethod object. Read the Stripe.js reference to learn how to create PaymentMethods via Stripe.js.

+ # + #

Instead of creating a PaymentMethod directly, we recommend using the PaymentIntents API to accept a payment immediately or the SetupIntent API to collect payment method details ahead of a future payment.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/disputes/[string dispute](disputes_dispute_body_1 payload, map headers = {}) returns Issuing\.dispute|error { - string resourcePath = string `/issuing/disputes/${getEncodedUri(dispute)}`; + # + return - Successful response + resource isolated function post payment_methods(PaymentMethodsBody payload, map headers = {}) returns PaymentMethod|error { + string resourcePath = string `/payment_methods`; http:Request request = new; - map requestBodyEncoding = {"evidence": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"acss_debit": {style: DEEPOBJECT, explode: true}, "affirm": {style: DEEPOBJECT, explode: true}, "afterpay_clearpay": {style: DEEPOBJECT, explode: true}, "alipay": {style: DEEPOBJECT, explode: true}, "amazon_pay": {style: DEEPOBJECT, explode: true}, "au_becs_debit": {style: DEEPOBJECT, explode: true}, "bacs_debit": {style: DEEPOBJECT, explode: true}, "bancontact": {style: DEEPOBJECT, explode: true}, "billing_details": {style: DEEPOBJECT, explode: true}, "blik": {style: DEEPOBJECT, explode: true}, "boleto": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cashapp": {style: DEEPOBJECT, explode: true}, "customer_balance": {style: DEEPOBJECT, explode: true}, "eps": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fpx": {style: DEEPOBJECT, explode: true}, "giropay": {style: DEEPOBJECT, explode: true}, "grabpay": {style: DEEPOBJECT, explode: true}, "ideal": {style: DEEPOBJECT, explode: true}, "interac_present": {style: DEEPOBJECT, explode: true}, "klarna": {style: DEEPOBJECT, explode: true}, "konbini": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "mobilepay": {style: DEEPOBJECT, explode: true}, "multibanco": {style: DEEPOBJECT, explode: true}, "oxxo": {style: DEEPOBJECT, explode: true}, "p24": {style: DEEPOBJECT, explode: true}, "paynow": {style: DEEPOBJECT, explode: true}, "paypal": {style: DEEPOBJECT, explode: true}, "pix": {style: DEEPOBJECT, explode: true}, "promptpay": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "revolut_pay": {style: DEEPOBJECT, explode: true}, "sepa_debit": {style: DEEPOBJECT, explode: true}, "sofort": {style: DEEPOBJECT, explode: true}, "swish": {style: DEEPOBJECT, explode: true}, "twint": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}, "wechat_pay": {style: DEEPOBJECT, explode: true}, "zip": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute’s reason are present. For more details, see Dispute reasons and evidence.

+ #

Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use Retrieve a Customer’s PaymentMethods

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/disputes/[string dispute]/submit(dispute_submit_body payload, map headers = {}) returns Issuing\.dispute|error { - string resourcePath = string `/issuing/disputes/${getEncodedUri(dispute)}/submit`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payment_methods/[string paymentMethod](map headers = {}, *GetPaymentMethodsPaymentMethodQueries queries) returns PaymentMethod|error { + string resourcePath = string `/payment_methods/${getEncodedUri(paymentMethod)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a personalization design object.

+ #

Updates a PaymentMethod object. A PaymentMethod must be attached a customer to be updated.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/personalization_designs(issuing_personalization_designs_body payload, map headers = {}) returns Issuing\.personalization_design|error { - string resourcePath = string `/issuing/personalization_designs`; + # + return - Successful response + resource isolated function post payment_methods/[string paymentMethod](PaymentMethodspaymentMethodBody payload, map headers = {}) returns PaymentMethod|error { + string resourcePath = string `/payment_methods/${getEncodedUri(paymentMethod)}`; http:Request request = new; - map requestBodyEncoding = {"carrier_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "preferences": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"billing_details": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates a card personalization object.

+ #

Attaches a PaymentMethod object to a Customer.

+ # + #

To attach a new PaymentMethod to a customer for future payments, we recommend you use a SetupIntent + # or a PaymentIntent with setup_future_usage. + # These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach + # endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for + # future use, which makes later declines and payment friction more likely. + # See Optimizing cards for future payments for more information about setting up + # future payments.

+ # + #

To use this PaymentMethod as the default for invoice or subscription payments, + # set invoice_settings.default_payment_method, + # on the Customer to the PaymentMethod’s ID.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/personalization_designs/[string personalization_design](personalization_designs_personalization_design_body payload, map headers = {}) returns Issuing\.personalization_design|error { - string resourcePath = string `/issuing/personalization_designs/${getEncodedUri(personalization_design)}`; + # + return - Successful response + resource isolated function post payment_methods/[string paymentMethod]/attach(PaymentMethodAttachBody payload, map headers = {}) returns PaymentMethod|error { + string resourcePath = string `/payment_methods/${getEncodedUri(paymentMethod)}/attach`; http:Request request = new; - map requestBodyEncoding = {"card_logo": {style: DEEPOBJECT, explode: true}, "carrier_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "lookup_key": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "name": {style: DEEPOBJECT, explode: true}, "preferences": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified Issuing Settlement object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/settlements/[string settlement](settlements_settlement_body payload, map headers = {}) returns Issuing\.settlement|error { - string resourcePath = string `/issuing/settlements/${getEncodedUri(settlement)}`; + # + return - Successful response + resource isolated function post payment_methods/[string paymentMethod]/detach(PaymentMethodDetachBody payload, map headers = {}) returns PaymentMethod|error { + string resourcePath = string `/payment_methods/${getEncodedUri(paymentMethod)}/detach`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Attempts to update the specified Issuing Token object to the status specified.

+ #

Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/tokens/[string token](tokens_token_body payload, map headers = {}) returns Issuing\.token|error { - string resourcePath = string `/issuing/tokens/${getEncodedUri(token)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payouts(map headers = {}, *GetPayoutsQueries queries) returns PayoutList|error { + string resourcePath = string `/payouts`; + map queryParamEncoding = {"arrival_date": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

+ # + #

If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

+ # + #

If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post issuing/transactions/[string 'transaction](transactions_transaction_body payload, map headers = {}) returns Issuing\.transaction|error { - string resourcePath = string `/issuing/transactions/${getEncodedUri('transaction)}`; + # + return - Successful response + resource isolated function post payouts(PayoutsBody payload, map headers = {}) returns Payout|error { + string resourcePath = string `/payouts`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.

+ #

Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post link_account_sessions(link_account_sessions_body payload, map headers = {}) returns Financial_connections\.session|error { - string resourcePath = string `/link_account_sessions`; - http:Request request = new; - map requestBodyEncoding = {"account_holder": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "filters": {style: DEEPOBJECT, explode: true}, "permissions": {style: DEEPOBJECT, explode: true}, "prefetch": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get payouts/[string payout](map headers = {}, *GetPayoutsPayoutQueries queries) returns Payout|error { + string resourcePath = string `/payouts/${getEncodedUri(payout)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).

+ #

Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post linked_accounts/[string account]/disconnect(account_disconnect_body_1 payload, map headers = {}) returns Financial_connections\.account|error { - string resourcePath = string `/linked_accounts/${getEncodedUri(account)}/disconnect`; + # + return - Successful response + resource isolated function post payouts/[string payout](PayoutspayoutBody payload, map headers = {}) returns Payout|error { + string resourcePath = string `/payouts/${getEncodedUri(payout)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Refreshes the data associated with a Financial Connections Account.

+ #

You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post linked_accounts/[string account]/refresh(account_refresh_body_1 payload, map headers = {}) returns Financial_connections\.account|error { - string resourcePath = string `/linked_accounts/${getEncodedUri(account)}/refresh`; + # + return - Successful response + resource isolated function post payouts/[string payout]/cancel(PayoutCancelBody payload, map headers = {}) returns Payout|error { + string resourcePath = string `/payouts/${getEncodedUri(payout)}/cancel`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a PaymentIntent object.

- # - #

After the PaymentIntent is created, attach a payment method and confirm - # to continue the payment. Learn more about the available payment flows - # with the Payment Intents API.

+ #

Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

# - #

When you use confirm=true during creation, it’s equivalent to creating - # and confirming the PaymentIntent in the same call. You can use any parameters - # available in the confirm API when you supply - # confirm=true.

+ #

By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents(payment_intents_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents`; + # + return - Successful response + resource isolated function post payouts/[string payout]/reverse(PayoutReverseBody payload, map headers = {}) returns Payout|error { + string resourcePath = string `/payouts/${getEncodedUri(payout)}/reverse`; http:Request request = new; - map requestBodyEncoding = {"automatic_payment_methods": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "mandate_data": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "off_session": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates properties on a PaymentIntent object without confirming.

- # - #

Depending on which properties you update, you might need to confirm the - # PaymentIntent again. For example, updating the payment_method - # always requires you to confirm the PaymentIntent again. If you prefer to - # update and confirm at the same time, we recommend updating properties through - # the confirm API instead.

+ #

Returns a list of your plans.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent](payment_intents_intent_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}`; - http:Request request = new; - map requestBodyEncoding = {"application_fee_amount": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "receipt_email": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get plans(map headers = {}, *GetPlansQueries queries) returns PlanList|error { + string resourcePath = string `/plans`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Manually reconcile the remaining amount for a customer_balance PaymentIntent.

+ #

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent]/apply_customer_balance(intent_apply_customer_balance_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/apply_customer_balance`; + # + return - Successful response + resource isolated function post plans(PlansBody payload, map headers = {}) returns Plan|error { + string resourcePath = string `/plans`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "product": {style: DEEPOBJECT, explode: true}, "tiers": {style: DEEPOBJECT, explode: true}, "transform_usage": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

You can cancel a PaymentIntent object when it’s in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, in rare cases, processing.

- # - #

After it’s canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded.

- # - #

You can’t cancel the PaymentIntent for a Checkout Session. Expire the Checkout Session instead.

+ #

Retrieves the plan with the given ID.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent]/cancel(intent_cancel_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/cancel`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get plans/[string plan](map headers = {}, *GetPlansPlanQueries queries) returns Plan|error { + string resourcePath = string `/plans/${getEncodedUri(plan)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture.

- # - #

Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation.

- # - #

Learn more about separate authorization and capture.

+ #

Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan’s ID, amount, currency, or billing cycle.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent]/capture(intent_capture_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/capture`; + # + return - Successful response + resource isolated function post plans/[string plan](PlansplanBody payload, map headers = {}) returns Plan|error { + string resourcePath = string `/plans/${getEncodedUri(plan)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Confirm that your customer intends to pay with current or provided - # payment method. Upon confirmation, the PaymentIntent will attempt to initiate - # a payment. - # If the selected payment method requires additional authentication steps, the - # PaymentIntent will transition to the requires_action status and - # suggest additional actions via next_action. If payment fails, - # the PaymentIntent transitions to the requires_payment_method status or the - # canceled status if the confirmation limit is reached. If - # payment succeeds, the PaymentIntent will transition to the succeeded - # status (or requires_capture, if capture_method is set to manual). - # If the confirmation_method is automatic, payment may be attempted - # using our client SDKs - # and the PaymentIntent’s client_secret. - # After next_actions are handled by the client, no additional - # confirmation is required to complete the payment. - # If the confirmation_method is manual, all payment attempts must be - # initiated using a secret key. - # If any actions are required for the payment, the PaymentIntent will - # return to the requires_confirmation state - # after those actions are completed. Your server needs to then - # explicitly re-confirm the PaymentIntent to initiate the next payment - # attempt.

+ #

Deleting plans means new subscribers can’t be added. Existing subscribers aren’t affected.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent]/confirm(intent_confirm_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/confirm`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate_data": {style: DEEPOBJECT, explode: true}, "off_session": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "receipt_email": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete plans/[string plan](map headers = {}) returns DeletedPlan|error { + string resourcePath = string `/plans/${getEncodedUri(plan)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Perform an incremental authorization on an eligible - # PaymentIntent. To be eligible, the - # PaymentIntent’s status must be requires_capture and - # incremental_authorization_supported - # must be true.

- # - #

Incremental authorizations attempt to increase the authorized amount on - # your customer’s card to the new, higher amount provided. Similar to the - # initial authorization, incremental authorizations can be declined. A - # single PaymentIntent can call this endpoint multiple times to further - # increase the authorized amount.

- # - #

If the incremental authorization succeeds, the PaymentIntent object - # returns with the updated - # amount. - # If the incremental authorization fails, a - # card_declined error returns, and no other - # fields on the PaymentIntent or Charge update. The PaymentIntent - # object remains capturable for the previously authorized amount.

- # - #

Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines. - # After it’s captured, a PaymentIntent can no longer be incremented.

- # - #

Learn more about incremental authorizations.

+ #

Returns a list of your active prices, excluding inline prices. For the list of inactive prices, set active to false.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent]/increment_authorization(intent_increment_authorization_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/increment_authorization`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get prices(map headers = {}, *GetPricesQueries queries) returns PriceList|error { + string resourcePath = string `/prices`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "lookup_keys": {style: DEEPOBJECT, explode: true}, "recurring": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Verifies microdeposits on a PaymentIntent object.

+ #

Creates a new price for an existing product. The price can be recurring or one-time.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_intents/[string intent]/verify_microdeposits(intent_verify_microdeposits_body payload, map headers = {}) returns Payment_intent|error { - string resourcePath = string `/payment_intents/${getEncodedUri(intent)}/verify_microdeposits`; + # + return - Successful response + resource isolated function post prices(PricesBody payload, map headers = {}) returns Price|error { + string resourcePath = string `/prices`; http:Request request = new; - map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"currency_options": {style: DEEPOBJECT, explode: true}, "custom_unit_amount": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "product_data": {style: DEEPOBJECT, explode: true}, "recurring": {style: DEEPOBJECT, explode: true}, "tiers": {style: DEEPOBJECT, explode: true}, "transform_quantity": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a payment link.

+ #

Search for prices you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_links(payment_links_body payload, map headers = {}) returns Payment_link|error { - string resourcePath = string `/payment_links`; - http:Request request = new; - map requestBodyEncoding = {"after_completion": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "consent_collection": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "custom_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_creation": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_intent_data": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "phone_number_collection": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}, "shipping_address_collection": {style: DEEPOBJECT, explode: true}, "shipping_options": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "tax_id_collection": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get prices/search(map headers = {}, *GetPricesSearchQueries queries) returns SearchResult4|error { + string resourcePath = string `/prices/search`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates a payment link.

+ #

Retrieves the price with the given ID.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_links/[string payment_link](payment_links_payment_link_body payload, map headers = {}) returns Payment_link|error { - string resourcePath = string `/payment_links/${getEncodedUri(payment_link)}`; - http:Request request = new; - map requestBodyEncoding = {"after_completion": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "custom_fields": {style: DEEPOBJECT, explode: true}, "custom_text": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "inactive_message": {style: DEEPOBJECT, explode: true}, "invoice_creation": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_intent_data": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}, "shipping_address_collection": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "tax_id_collection": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get prices/[string price](map headers = {}, *GetPricesPriceQueries queries) returns Price|error { + string resourcePath = string `/prices/${getEncodedUri(price)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a payment method configuration

+ #

Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_method_configurations(payment_method_configurations_body payload, map headers = {}) returns Payment_method_configuration|error { - string resourcePath = string `/payment_method_configurations`; + # + return - Successful response + resource isolated function post prices/[string price](PricespriceBody payload, map headers = {}) returns Price|error { + string resourcePath = string `/prices/${getEncodedUri(price)}`; http:Request request = new; - map requestBodyEncoding = {"acss_debit": {style: DEEPOBJECT, explode: true}, "affirm": {style: DEEPOBJECT, explode: true}, "afterpay_clearpay": {style: DEEPOBJECT, explode: true}, "alipay": {style: DEEPOBJECT, explode: true}, "amazon_pay": {style: DEEPOBJECT, explode: true}, "apple_pay": {style: DEEPOBJECT, explode: true}, "apple_pay_later": {style: DEEPOBJECT, explode: true}, "au_becs_debit": {style: DEEPOBJECT, explode: true}, "bacs_debit": {style: DEEPOBJECT, explode: true}, "bancontact": {style: DEEPOBJECT, explode: true}, "blik": {style: DEEPOBJECT, explode: true}, "boleto": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cartes_bancaires": {style: DEEPOBJECT, explode: true}, "cashapp": {style: DEEPOBJECT, explode: true}, "customer_balance": {style: DEEPOBJECT, explode: true}, "eps": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fpx": {style: DEEPOBJECT, explode: true}, "giropay": {style: DEEPOBJECT, explode: true}, "google_pay": {style: DEEPOBJECT, explode: true}, "grabpay": {style: DEEPOBJECT, explode: true}, "ideal": {style: DEEPOBJECT, explode: true}, "jcb": {style: DEEPOBJECT, explode: true}, "klarna": {style: DEEPOBJECT, explode: true}, "konbini": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "mobilepay": {style: DEEPOBJECT, explode: true}, "multibanco": {style: DEEPOBJECT, explode: true}, "oxxo": {style: DEEPOBJECT, explode: true}, "p24": {style: DEEPOBJECT, explode: true}, "paynow": {style: DEEPOBJECT, explode: true}, "paypal": {style: DEEPOBJECT, explode: true}, "promptpay": {style: DEEPOBJECT, explode: true}, "revolut_pay": {style: DEEPOBJECT, explode: true}, "sepa_debit": {style: DEEPOBJECT, explode: true}, "sofort": {style: DEEPOBJECT, explode: true}, "swish": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}, "wechat_pay": {style: DEEPOBJECT, explode: true}, "zip": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"currency_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Update payment method configuration

+ #

Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get products(map headers = {}, *GetProductsQueries queries) returns ProductList|error { + string resourcePath = string `/products`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "ids": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Creates a new product object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_method_configurations/[string configuration](payment_method_configurations_configuration_body payload, map headers = {}) returns Payment_method_configuration|error { - string resourcePath = string `/payment_method_configurations/${getEncodedUri(configuration)}`; + # + return - Successful response + resource isolated function post products(ProductsBody payload, map headers = {}) returns Product|error { + string resourcePath = string `/products`; http:Request request = new; - map requestBodyEncoding = {"acss_debit": {style: DEEPOBJECT, explode: true}, "affirm": {style: DEEPOBJECT, explode: true}, "afterpay_clearpay": {style: DEEPOBJECT, explode: true}, "alipay": {style: DEEPOBJECT, explode: true}, "amazon_pay": {style: DEEPOBJECT, explode: true}, "apple_pay": {style: DEEPOBJECT, explode: true}, "apple_pay_later": {style: DEEPOBJECT, explode: true}, "au_becs_debit": {style: DEEPOBJECT, explode: true}, "bacs_debit": {style: DEEPOBJECT, explode: true}, "bancontact": {style: DEEPOBJECT, explode: true}, "blik": {style: DEEPOBJECT, explode: true}, "boleto": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cartes_bancaires": {style: DEEPOBJECT, explode: true}, "cashapp": {style: DEEPOBJECT, explode: true}, "customer_balance": {style: DEEPOBJECT, explode: true}, "eps": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fpx": {style: DEEPOBJECT, explode: true}, "giropay": {style: DEEPOBJECT, explode: true}, "google_pay": {style: DEEPOBJECT, explode: true}, "grabpay": {style: DEEPOBJECT, explode: true}, "ideal": {style: DEEPOBJECT, explode: true}, "jcb": {style: DEEPOBJECT, explode: true}, "klarna": {style: DEEPOBJECT, explode: true}, "konbini": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "mobilepay": {style: DEEPOBJECT, explode: true}, "multibanco": {style: DEEPOBJECT, explode: true}, "oxxo": {style: DEEPOBJECT, explode: true}, "p24": {style: DEEPOBJECT, explode: true}, "paynow": {style: DEEPOBJECT, explode: true}, "paypal": {style: DEEPOBJECT, explode: true}, "promptpay": {style: DEEPOBJECT, explode: true}, "revolut_pay": {style: DEEPOBJECT, explode: true}, "sepa_debit": {style: DEEPOBJECT, explode: true}, "sofort": {style: DEEPOBJECT, explode: true}, "swish": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}, "wechat_pay": {style: DEEPOBJECT, explode: true}, "zip": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"default_price_data": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "images": {style: DEEPOBJECT, explode: true}, "marketing_features": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "package_dimensions": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a payment method domain.

+ #

Search for products you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_method_domains(payment_method_domains_body payload, map headers = {}) returns Payment_method_domain|error { - string resourcePath = string `/payment_method_domains`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get products/search(map headers = {}, *GetProductsSearchQueries queries) returns SearchResult5|error { + string resourcePath = string `/products/search`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates an existing payment method domain.

+ #

Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_method_domains/[string payment_method_domain](payment_method_domains_payment_method_domain_body payload, map headers = {}) returns Payment_method_domain|error { - string resourcePath = string `/payment_method_domains/${getEncodedUri(payment_method_domain)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get products/[string id](map headers = {}, *GetProductsIdQueries queries) returns Product|error { + string resourcePath = string `/products/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Some payment methods such as Apple Pay require additional steps to verify a domain. If the requirements weren’t satisfied when the domain was created, the payment method will be inactive on the domain. - # The payment method doesn’t appear in Elements for this domain until it is active.

- # - #

To activate a payment method on an existing payment method domain, complete the required validation steps specific to the payment method, and then validate the payment method domain with this endpoint.

- # - #

Related guides: Payment method domains.

+ #

Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_method_domains/[string payment_method_domain]/validate(payment_method_domain_validate_body payload, map headers = {}) returns Payment_method_domain|error { - string resourcePath = string `/payment_method_domains/${getEncodedUri(payment_method_domain)}/validate`; + # + return - Successful response + resource isolated function post products/[string id](ProductsidBody payload, map headers = {}) returns Product|error { + string resourcePath = string `/products/${getEncodedUri(id)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"description": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "images": {style: DEEPOBJECT, explode: true}, "marketing_features": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "package_dimensions": {style: DEEPOBJECT, explode: true}, "tax_code": {style: DEEPOBJECT, explode: true}, "unit_label": {style: DEEPOBJECT, explode: true}, "url": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a PaymentMethod object. Read the Stripe.js reference to learn how to create PaymentMethods via Stripe.js.

- # - #

Instead of creating a PaymentMethod directly, we recommend using the PaymentIntents API to accept a payment immediately or the SetupIntent API to collect payment method details ahead of a future payment.

+ #

Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_methods(payment_methods_body payload, map headers = {}) returns Payment_method|error { - string resourcePath = string `/payment_methods`; - http:Request request = new; - map requestBodyEncoding = {"acss_debit": {style: DEEPOBJECT, explode: true}, "affirm": {style: DEEPOBJECT, explode: true}, "afterpay_clearpay": {style: DEEPOBJECT, explode: true}, "alipay": {style: DEEPOBJECT, explode: true}, "amazon_pay": {style: DEEPOBJECT, explode: true}, "au_becs_debit": {style: DEEPOBJECT, explode: true}, "bacs_debit": {style: DEEPOBJECT, explode: true}, "bancontact": {style: DEEPOBJECT, explode: true}, "billing_details": {style: DEEPOBJECT, explode: true}, "blik": {style: DEEPOBJECT, explode: true}, "boleto": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cashapp": {style: DEEPOBJECT, explode: true}, "customer_balance": {style: DEEPOBJECT, explode: true}, "eps": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fpx": {style: DEEPOBJECT, explode: true}, "giropay": {style: DEEPOBJECT, explode: true}, "grabpay": {style: DEEPOBJECT, explode: true}, "ideal": {style: DEEPOBJECT, explode: true}, "interac_present": {style: DEEPOBJECT, explode: true}, "klarna": {style: DEEPOBJECT, explode: true}, "konbini": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "mobilepay": {style: DEEPOBJECT, explode: true}, "multibanco": {style: DEEPOBJECT, explode: true}, "oxxo": {style: DEEPOBJECT, explode: true}, "p24": {style: DEEPOBJECT, explode: true}, "paynow": {style: DEEPOBJECT, explode: true}, "paypal": {style: DEEPOBJECT, explode: true}, "pix": {style: DEEPOBJECT, explode: true}, "promptpay": {style: DEEPOBJECT, explode: true}, "radar_options": {style: DEEPOBJECT, explode: true}, "revolut_pay": {style: DEEPOBJECT, explode: true}, "sepa_debit": {style: DEEPOBJECT, explode: true}, "sofort": {style: DEEPOBJECT, explode: true}, "swish": {style: DEEPOBJECT, explode: true}, "twint": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}, "wechat_pay": {style: DEEPOBJECT, explode: true}, "zip": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete products/[string id](map headers = {}) returns DeletedProduct|error { + string resourcePath = string `/products/${getEncodedUri(id)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Updates a PaymentMethod object. A PaymentMethod must be attached a customer to be updated.

+ #

Retrieve a list of features for a product

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_methods/[string payment_method](payment_methods_payment_method_body payload, map headers = {}) returns Payment_method|error { - string resourcePath = string `/payment_methods/${getEncodedUri(payment_method)}`; - http:Request request = new; - map requestBodyEncoding = {"billing_details": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "link": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "us_bank_account": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get products/[string product]/features(map headers = {}, *GetProductsProductFeaturesQueries queries) returns EntitlementsResourceProductFeatureList|error { + string resourcePath = string `/products/${getEncodedUri(product)}/features`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Attaches a PaymentMethod object to a Customer.

- # - #

To attach a new PaymentMethod to a customer for future payments, we recommend you use a SetupIntent - # or a PaymentIntent with setup_future_usage. - # These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach - # endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for - # future use, which makes later declines and payment friction more likely. - # See Optimizing cards for future payments for more information about setting up - # future payments.

- # - #

To use this PaymentMethod as the default for invoice or subscription payments, - # set invoice_settings.default_payment_method, - # on the Customer to the PaymentMethod’s ID.

+ #

Creates a product_feature, which represents a feature attachment to a product

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_methods/[string payment_method]/attach(payment_method_attach_body payload, map headers = {}) returns Payment_method|error { - string resourcePath = string `/payment_methods/${getEncodedUri(payment_method)}/attach`; + # + return - Successful response + resource isolated function post products/[string product]/features(ProductFeaturesBody payload, map headers = {}) returns ProductFeature|error { + string resourcePath = string `/products/${getEncodedUri(product)}/features`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer.

+ #

Retrieves a product_feature, which represents a feature attachment to a product

# + # + id - The ID of the product_feature + # + product - The ID of the product # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payment_methods/[string payment_method]/detach(payment_method_detach_body payload, map headers = {}) returns Payment_method|error { - string resourcePath = string `/payment_methods/${getEncodedUri(payment_method)}/detach`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get products/[string product]/features/[string id](map headers = {}, *GetProductsProductFeaturesIdQueries queries) returns ProductFeature|error { + string resourcePath = string `/products/${getEncodedUri(product)}/features/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

- # - #

If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

- # - #

If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

+ #

Deletes the feature attachment to a product

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payouts(payouts_body payload, map headers = {}) returns Payout|error { - string resourcePath = string `/payouts`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete products/[string product]/features/[string id](map headers = {}) returns DeletedProductFeature|error { + string resourcePath = string `/products/${getEncodedUri(product)}/features/${getEncodedUri(id)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.

+ #

Returns a list of your promotion codes.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payouts/[string payout](payouts_payout_body payload, map headers = {}) returns Payout|error { - string resourcePath = string `/payouts/${getEncodedUri(payout)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get promotion_codes(map headers = {}, *GetPromotionCodesQueries queries) returns PromotionCodesResourcePromotionCodeList|error { + string resourcePath = string `/promotion_codes`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.

+ #

A promotion code points to a coupon. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payouts/[string payout]/cancel(payout_cancel_body payload, map headers = {}) returns Payout|error { - string resourcePath = string `/payouts/${getEncodedUri(payout)}/cancel`; + # + return - Successful response + resource isolated function post promotion_codes(PromotionCodesBody payload, map headers = {}) returns PromotionCode|error { + string resourcePath = string `/promotion_codes`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

- # - #

By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

+ #

Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use list with the desired code.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post payouts/[string payout]/reverse(payout_reverse_body payload, map headers = {}) returns Payout|error { - string resourcePath = string `/payouts/${getEncodedUri(payout)}/reverse`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get promotion_codes/[string promotionCode](map headers = {}, *GetPromotionCodesPromotionCodeQueries queries) returns PromotionCode|error { + string resourcePath = string `/promotion_codes/${getEncodedUri(promotionCode)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

+ #

Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post plans(plans_body payload, map headers = {}) returns Plan|error { - string resourcePath = string `/plans`; + # + return - Successful response + resource isolated function post promotion_codes/[string promotionCode](PromotionCodespromotionCodeBody payload, map headers = {}) returns PromotionCode|error { + string resourcePath = string `/promotion_codes/${getEncodedUri(promotionCode)}`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "product": {style: DEEPOBJECT, explode: true}, "tiers": {style: DEEPOBJECT, explode: true}, "transform_usage": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan’s ID, amount, currency, or billing cycle.

+ #

Returns a list of your quotes.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post plans/[string plan](plans_plan_body payload, map headers = {}) returns Plan|error { - string resourcePath = string `/plans/${getEncodedUri(plan)}`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get quotes(map headers = {}, *GetQuotesQueries queries) returns QuotesResourceQuoteList|error { + string resourcePath = string `/quotes`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a new price for an existing product. The price can be recurring or one-time.

+ #

A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the quote template.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post prices(prices_body payload, map headers = {}) returns Price|error { - string resourcePath = string `/prices`; + # + return - Successful response + resource isolated function post quotes(QuotesBody payload, map headers = {}) returns Quote|error { + string resourcePath = string `/quotes`; http:Request request = new; - map requestBodyEncoding = {"currency_options": {style: DEEPOBJECT, explode: true}, "custom_unit_amount": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "product_data": {style: DEEPOBJECT, explode: true}, "recurring": {style: DEEPOBJECT, explode: true}, "tiers": {style: DEEPOBJECT, explode: true}, "transform_quantity": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"application_fee_amount": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "description": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "footer": {style: DEEPOBJECT, explode: true}, "from_quote": {style: DEEPOBJECT, explode: true}, "header": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged.

+ #

Retrieves the quote with the given ID.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post prices/[string price](prices_price_body payload, map headers = {}) returns Price|error { - string resourcePath = string `/prices/${getEncodedUri(price)}`; - http:Request request = new; - map requestBodyEncoding = {"currency_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get quotes/[string quote](map headers = {}, *GetQuotesQuoteQueries queries) returns Quote|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Creates a new product object.

+ #

A quote models prices and services for a customer.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post products(products_body payload, map headers = {}) returns Product|error { - string resourcePath = string `/products`; + # + return - Successful response + resource isolated function post quotes/[string quote](QuotesquoteBody payload, map headers = {}) returns Quote|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}`; http:Request request = new; - map requestBodyEncoding = {"default_price_data": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "images": {style: DEEPOBJECT, explode: true}, "marketing_features": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "package_dimensions": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"application_fee_amount": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "description": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "footer": {style: DEEPOBJECT, explode: true}, "header": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

+ #

Accepts the specified quote.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post products/[string id](products_id_body payload, map headers = {}) returns Product|error { - string resourcePath = string `/products/${getEncodedUri(id)}`; + # + return - Successful response + resource isolated function post quotes/[string quote]/accept(QuoteAcceptBody payload, map headers = {}) returns Quote|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}/accept`; http:Request request = new; - map requestBodyEncoding = {"description": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "images": {style: DEEPOBJECT, explode: true}, "marketing_features": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "package_dimensions": {style: DEEPOBJECT, explode: true}, "tax_code": {style: DEEPOBJECT, explode: true}, "unit_label": {style: DEEPOBJECT, explode: true}, "url": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Creates a product_feature, which represents a feature attachment to a product

+ #

Cancels the quote.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post products/[string product]/features(product_features_body payload, map headers = {}) returns Product_feature|error { - string resourcePath = string `/products/${getEncodedUri(product)}/features`; + # + return - Successful response + resource isolated function post quotes/[string quote]/cancel(QuoteCancelBody payload, map headers = {}) returns Quote|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

A promotion code points to a coupon. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.

+ #

When retrieving a quote, there is an includable computed.upfront.line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post promotion_codes(promotion_codes_body payload, map headers = {}) returns Promotion_code|error { - string resourcePath = string `/promotion_codes`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get quotes/[string quote]/computed_upfront_line_items(map headers = {}, *GetQuotesQuoteComputedUpfrontLineItemsQueries queries) returns QuotesResourceListLineItems|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}/computed_upfront_line_items`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.

+ #

Finalizes the quote.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post promotion_codes/[string promotion_code](promotion_codes_promotion_code_body payload, map headers = {}) returns Promotion_code|error { - string resourcePath = string `/promotion_codes/${getEncodedUri(promotion_code)}`; + # + return - Successful response + resource isolated function post quotes/[string quote]/finalize(QuoteFinalizeBody payload, map headers = {}) returns Quote|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}/finalize`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "restrictions": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the quote template.

+ #

When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post quotes(quotes_body payload, map headers = {}) returns Quote|error { - string resourcePath = string `/quotes`; - http:Request request = new; - map requestBodyEncoding = {"application_fee_amount": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "description": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "footer": {style: DEEPOBJECT, explode: true}, "from_quote": {style: DEEPOBJECT, explode: true}, "header": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get quotes/[string quote]/line_items(map headers = {}, *GetQuotesQuoteLineItemsQueries queries) returns QuotesResourceListLineItems|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}/line_items`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

A quote models prices and services for a customer.

+ #

Download the PDF for a finalized quote. Explanation for special handling can be found here

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post quotes/[string quote](quotes_quote_body payload, map headers = {}) returns Quote|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}`; - http:Request request = new; - map requestBodyEncoding = {"application_fee_amount": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "description": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "footer": {style: DEEPOBJECT, explode: true}, "header": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "subscription_data": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get quotes/[string quote]/pdf(map headers = {}, *GetQuotesQuotePdfQueries queries) returns http:Response|error { + string resourcePath = string `/quotes/${getEncodedUri(quote)}/pdf`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of early fraud warnings.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get radar/early_fraud_warnings(map headers = {}, *GetRadarEarlyFraudWarningsQueries queries) returns RadarEarlyFraudWarningList|error { + string resourcePath = string `/radar/early_fraud_warnings`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an early fraud warning that has previously been created.

+ # + #

Please refer to the early fraud warning object reference for more details.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get radar/early_fraud_warnings/[string earlyFraudWarning](map headers = {}, *GetRadarEarlyFraudWarningsEarlyFraudWarningQueries queries) returns RadarEarlyFraudWarning|error { + string resourcePath = string `/radar/early_fraud_warnings/${getEncodedUri(earlyFraudWarning)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get radar/value_list_items(map headers = {}, *GetRadarValueListItemsQueries queries) returns RadarListListItemList|error { + string resourcePath = string `/radar/value_list_items`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Accepts the specified quote.

+ #

Creates a new ValueListItem object, which is added to the specified parent value list.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post quotes/[string quote]/accept(quote_accept_body payload, map headers = {}) returns Quote|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}/accept`; + # + return - Successful response + resource isolated function post radar/value_list_items(RadarValueListItemsBody payload, map headers = {}) returns RadarValueListItem|error { + string resourcePath = string `/radar/value_list_items`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Cancels the quote.

+ #

Retrieves a ValueListItem object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post quotes/[string quote]/cancel(quote_cancel_body payload, map headers = {}) returns Quote|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}/cancel`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get radar/value_list_items/[string item](map headers = {}, *GetRadarValueListItemsItemQueries queries) returns RadarValueListItem|error { + string resourcePath = string `/radar/value_list_items/${getEncodedUri(item)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } - #

Finalizes the quote.

+ #

Deletes a ValueListItem object, removing it from its parent value list.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post quotes/[string quote]/finalize(quote_finalize_body payload, map headers = {}) returns Quote|error { - string resourcePath = string `/quotes/${getEncodedUri(quote)}/finalize`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete radar/value_list_items/[string item](map headers = {}) returns DeletedRadarValueListItem|error { + string resourcePath = string `/radar/value_list_items/${getEncodedUri(item)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Creates a new ValueListItem object, which is added to the specified parent value list.

+ #

Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post radar/value_list_items(radar_value_list_items_body payload, map headers = {}) returns Radar\.value_list_item|error { - string resourcePath = string `/radar/value_list_items`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get radar/value_lists(map headers = {}, *GetRadarValueListsQueries queries) returns RadarListListList|error { + string resourcePath = string `/radar/value_lists`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } #

Creates a new ValueList object, which can then be referenced in rules.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post radar/value_lists(radar_value_lists_body payload, map headers = {}) returns Radar\.value_list|error { + # + return - Successful response + resource isolated function post radar/value_lists(RadarValueListsBody payload, map headers = {}) returns RadarValueList|error { string resourcePath = string `/radar/value_lists`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a ValueList object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get radar/value_lists/[string valueList](map headers = {}, *GetRadarValueListsValueListQueries queries) returns RadarValueList|error { + string resourcePath = string `/radar/value_lists/${getEncodedUri(valueList)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post radar/value_lists/[string value_list](value_lists_value_list_body payload, map headers = {}) returns Radar\.value_list|error { - string resourcePath = string `/radar/value_lists/${getEncodedUri(value_list)}`; + # + return - Successful response + resource isolated function post radar/value_lists/[string valueList](ValueListsvalueListBody payload, map headers = {}) returns RadarValueList|error { + string resourcePath = string `/radar/value_lists/${getEncodedUri(valueList)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete radar/value_lists/[string valueList](map headers = {}) returns DeletedRadarValueList|error { + string resourcePath = string `/radar/value_lists/${getEncodedUri(valueList)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } + + #

Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first The 10 most recent refunds are always available by default on the Charge object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get refunds(map headers = {}, *GetRefundsQueries queries) returns APIMethodRefundList|error { + string resourcePath = string `/refunds`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.

# #

Creating a new refund will refund a charge that has previously been created but not yet refunded. @@ -5733,27 +4698,39 @@ public isolated client class Client { # or when trying to refund more money than is left on a charge.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post refunds(refunds_body payload, map headers = {}) returns Refund|error { + # + return - Successful response + resource isolated function post refunds(RefundsBody payload, map headers = {}) returns Refund|error { string resourcePath = string `/refunds`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing refund.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get refunds/[string refund](map headers = {}, *GetRefundsRefundQueries queries) returns Refund|error { + string resourcePath = string `/refunds/${getEncodedUri(refund)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don’t provide remain unchanged.

# #

This request only accepts metadata as an argument.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post refunds/[string refund](refunds_refund_body_1 payload, map headers = {}) returns Refund|error { + # + return - Successful response + resource isolated function post refunds/[string refund](RefundsrefundBody1 payload, map headers = {}) returns Refund|error { string resourcePath = string `/refunds/${getEncodedUri(refund)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -5763,67 +4740,179 @@ public isolated client class Client { #

You can’t cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post refunds/[string refund]/cancel(refund_cancel_body payload, map headers = {}) returns Refund|error { + # + return - Successful response + resource isolated function post refunds/[string refund]/cancel(RefundCancelBody payload, map headers = {}) returns Refund|error { string resourcePath = string `/refunds/${getEncodedUri(refund)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of Report Runs, with the most recent appearing first.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get reporting/report_runs(map headers = {}, *GetReportingReportRunsQueries queries) returns FinancialReportingFinanceReportRunList|error { + string resourcePath = string `/reporting/report_runs`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new object and begin running the report. (Certain report types require a live-mode API key.)

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post reporting/report_runs(reporting_report_runs_body payload, map headers = {}) returns Reporting\.report_run|error { + # + return - Successful response + resource isolated function post reporting/report_runs(ReportingReportRunsBody payload, map headers = {}) returns ReportingReportRun|error { string resourcePath = string `/reporting/report_runs`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "parameters": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing Report Run.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get reporting/report_runs/[string reportRun](map headers = {}, *GetReportingReportRunsReportRunQueries queries) returns ReportingReportRun|error { + string resourcePath = string `/reporting/report_runs/${getEncodedUri(reportRun)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a full list of Report Types.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get reporting/report_types(map headers = {}, *GetReportingReportTypesQueries queries) returns FinancialReportingFinanceReportTypeList|error { + string resourcePath = string `/reporting/report_types`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of a Report Type. (Certain report types require a live-mode API key.)

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get reporting/report_types/[string reportType](map headers = {}, *GetReportingReportTypesReportTypeQueries queries) returns ReportingReportType|error { + string resourcePath = string `/reporting/report_types/${getEncodedUri(reportType)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get reviews(map headers = {}, *GetReviewsQueries queries) returns RadarReviewList|error { + string resourcePath = string `/reviews`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves a Review object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get reviews/[string review](map headers = {}, *GetReviewsReviewQueries queries) returns Review|error { + string resourcePath = string `/reviews/${getEncodedUri(review)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Approves a Review object, closing it and removing it from the list of reviews.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post reviews/[string review]/approve(review_approve_body payload, map headers = {}) returns Review|error { + # + return - Successful response + resource isolated function post reviews/[string review]/approve(ReviewApproveBody payload, map headers = {}) returns Review|error { string resourcePath = string `/reviews/${getEncodedUri(review)}/approve`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of SetupAttempts that associate with a provided SetupIntent.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get setup_attempts(map headers = {}, *GetSetupAttemptsQueries queries) returns PaymentFlowsSetupIntentSetupAttemptList|error { + string resourcePath = string `/setup_attempts`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of SetupIntents.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get setup_intents(map headers = {}, *GetSetupIntentsQueries queries) returns PaymentFlowsSetupIntentList|error { + string resourcePath = string `/setup_intents`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a SetupIntent object.

# #

After you create the SetupIntent, attach a payment method and confirm # it to collect any required permissions to charge the payment method later.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post setup_intents(setup_intents_body payload, map headers = {}) returns Setup_intent|error { + # + return - Successful response + resource isolated function post setup_intents(SetupIntentsBody payload, map headers = {}) returns SetupIntent|error { string resourcePath = string `/setup_intents`; http:Request request = new; map requestBodyEncoding = {"automatic_payment_methods": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "flow_directions": {style: DEEPOBJECT, explode: true}, "mandate_data": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}, "single_use": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of a SetupIntent that has previously been created.

+ # + #

Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string.

+ # + #

When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the SetupIntent object reference for more details.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get setup_intents/[string intent](map headers = {}, *GetSetupIntentsIntentQueries queries) returns SetupIntent|error { + string resourcePath = string `/setup_intents/${getEncodedUri(intent)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates a SetupIntent object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post setup_intents/[string intent](setup_intents_intent_body payload, map headers = {}) returns Setup_intent|error { + # + return - Successful response + resource isolated function post setup_intents/[string intent](SetupIntentsintentBody payload, map headers = {}) returns SetupIntent|error { string resourcePath = string `/setup_intents/${getEncodedUri(intent)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "flow_directions": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}, "payment_method_types": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -5833,12 +4922,12 @@ public isolated client class Client { #

After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can’t cancel the SetupIntent for a Checkout Session. Expire the Checkout Session instead.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post setup_intents/[string intent]/cancel(intent_cancel_body_1 payload, map headers = {}) returns Setup_intent|error { + # + return - Successful response + resource isolated function post setup_intents/[string intent]/cancel(IntentCancelBody1 payload, map headers = {}) returns SetupIntent|error { string resourcePath = string `/setup_intents/${getEncodedUri(intent)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -5859,12 +4948,12 @@ public isolated client class Client { # confirmation limit is reached.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post setup_intents/[string intent]/confirm(intent_confirm_body_1 payload, map headers = {}) returns Setup_intent|error { + # + return - Successful response + resource isolated function post setup_intents/[string intent]/confirm(IntentConfirmBody1 payload, map headers = {}) returns SetupIntent|error { string resourcePath = string `/setup_intents/${getEncodedUri(intent)}/confirm`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate_data": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "payment_method_options": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -5872,109 +4961,255 @@ public isolated client class Client { #

Verifies microdeposits on a SetupIntent object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post setup_intents/[string intent]/verify_microdeposits(intent_verify_microdeposits_body_1 payload, map headers = {}) returns Setup_intent|error { + # + return - Successful response + resource isolated function post setup_intents/[string intent]/verify_microdeposits(IntentVerifyMicrodepositsBody1 payload, map headers = {}) returns SetupIntent|error { string resourcePath = string `/setup_intents/${getEncodedUri(intent)}/verify_microdeposits`; http:Request request = new; map requestBodyEncoding = {"amounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of your shipping rates.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get shipping_rates(map headers = {}, *GetShippingRatesQueries queries) returns ShippingResourcesShippingRateList|error { + string resourcePath = string `/shipping_rates`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new shipping rate object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post shipping_rates(shipping_rates_body payload, map headers = {}) returns Shipping_rate|error { + # + return - Successful response + resource isolated function post shipping_rates(ShippingRatesBody payload, map headers = {}) returns ShippingRate|error { string resourcePath = string `/shipping_rates`; http:Request request = new; map requestBodyEncoding = {"delivery_estimate": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fixed_amount": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns the shipping rate object with the given ID.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get shipping_rates/[string shippingRateToken](map headers = {}, *GetShippingRatesShippingRateTokenQueries queries) returns ShippingRate|error { + string resourcePath = string `/shipping_rates/${getEncodedUri(shippingRateToken)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates an existing shipping rate object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post shipping_rates/[string shipping_rate_token](shipping_rates_shipping_rate_token_body payload, map headers = {}) returns Shipping_rate|error { - string resourcePath = string `/shipping_rates/${getEncodedUri(shipping_rate_token)}`; + # + return - Successful response + resource isolated function post shipping_rates/[string shippingRateToken](ShippingRatesshippingRateTokenBody payload, map headers = {}) returns ShippingRate|error { + string resourcePath = string `/shipping_rates/${getEncodedUri(shippingRateToken)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "fixed_amount": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of scheduled query runs.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get sigma/scheduled_query_runs(map headers = {}, *GetSigmaScheduledQueryRunsQueries queries) returns SigmaScheduledQueryRunList|error { + string resourcePath = string `/sigma/scheduled_query_runs`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an scheduled query run.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get sigma/scheduled_query_runs/[string scheduledQueryRun](map headers = {}, *GetSigmaScheduledQueryRunsScheduledQueryRunQueries queries) returns ScheduledQueryRun|error { + string resourcePath = string `/sigma/scheduled_query_runs/${getEncodedUri(scheduledQueryRun)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new source object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post sources(sources_body payload, map headers = {}) returns Source|error { + # + return - Successful response + resource isolated function post sources(SourcesBody payload, map headers = {}) returns Source|error { string resourcePath = string `/sources`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}, "receiver": {style: DEEPOBJECT, explode: true}, "redirect": {style: DEEPOBJECT, explode: true}, "source_order": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get sources/[string 'source](map headers = {}, *GetSourcesSourceQueries queries) returns Source|error { + string resourcePath = string `/sources/${getEncodedUri('source)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# #

This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our payment method guides for more detail.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post sources/[string 'source](sources_source_body payload, map headers = {}) returns Source|error { + # + return - Successful response + resource isolated function post sources/[string 'source](SourcessourceBody payload, map headers = {}) returns Source|error { string resourcePath = string `/sources/${getEncodedUri('source)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "mandate": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}, "source_order": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a new Source MandateNotification.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get sources/[string 'source]/mandate_notifications/[string mandateNotification](map headers = {}, *GetSourcesSourceMandateNotificationsMandateNotificationQueries queries) returns SourceMandateNotification|error { + string resourcePath = string `/sources/${getEncodedUri('source)}/mandate_notifications/${getEncodedUri(mandateNotification)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

List source transactions for a given source.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get sources/[string 'source]/source_transactions(map headers = {}, *GetSourcesSourceSourceTransactionsQueries queries) returns ApmsSourcesSourceTransactionList|error { + string resourcePath = string `/sources/${getEncodedUri('source)}/source_transactions`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieve an existing source transaction object. Supply the unique source ID from a source creation request and the source transaction ID and Stripe will return the corresponding up-to-date source object information.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get sources/[string 'source]/source_transactions/[string sourceTransaction](map headers = {}, *GetSourcesSourceSourceTransactionsSourceTransactionQueries queries) returns SourceTransaction|error { + string resourcePath = string `/sources/${getEncodedUri('source)}/source_transactions/${getEncodedUri(sourceTransaction)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Verify a given source.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post sources/[string 'source]/verify(source_verify_body payload, map headers = {}) returns Source|error { + # + return - Successful response + resource isolated function post sources/[string 'source]/verify(SourceVerifyBody payload, map headers = {}) returns Source|error { string resourcePath = string `/sources/${getEncodedUri('source)}/verify`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "values": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of your subscription items for a given subscription.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscription_items(map headers = {}, *GetSubscriptionItemsQueries queries) returns SubscriptionsItemsSubscriptionItemList|error { + string resourcePath = string `/subscription_items`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Adds a new item to an existing subscription. No existing items will be changed or replaced.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_items(subscription_items_body payload, map headers = {}) returns Subscription_item|error { + # + return - Successful response + resource isolated function post subscription_items(SubscriptionItemsBody payload, map headers = {}) returns SubscriptionItem|error { string resourcePath = string `/subscription_items`; http:Request request = new; map requestBodyEncoding = {"billing_thresholds": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the subscription item with the given ID.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscription_items/[string item](map headers = {}, *GetSubscriptionItemsItemQueries queries) returns SubscriptionItem|error { + string resourcePath = string `/subscription_items/${getEncodedUri(item)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the plan or quantity of an item on a current subscription.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_items/[string item](subscription_items_item_body payload, map headers = {}) returns Subscription_item|error { + # + return - Successful response + resource isolated function post subscription_items/[string item](SubscriptionItemsitemBody payload, map headers = {}) returns SubscriptionItem|error { string resourcePath = string `/subscription_items/${getEncodedUri(item)}`; http:Request request = new; map requestBodyEncoding = {"billing_thresholds": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "price_data": {style: DEEPOBJECT, explode: true}, "tax_rates": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete subscription_items/[string item](SubscriptionItemsitemBody1 payload, map headers = {}) returns DeletedSubscriptionItem|error { + string resourcePath = string `/subscription_items/${getEncodedUri(item)}`; + http:Request request = new; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType()); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); + } + + #

For the specified subscription item, returns a list of summary objects. Each object in the list provides usage information that’s been summarized from multiple usage records and over a subscription billing period (e.g., 15 usage records in the month of September).

+ # + #

The list is sorted in reverse-chronological order (newest first). The first list item represents the most current usage period that hasn’t ended yet. Since new usage records can still be added, the returned summary information for the subscription item’s ID should be seen as unstable until the subscription billing period ends.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscription_items/[string subscriptionItem]/usage_record_summaries(map headers = {}, *GetSubscriptionItemsSubscriptionItemUsageRecordSummariesQueries queries) returns UsageEventsResourceUsageRecordSummaryList|error { + string resourcePath = string `/subscription_items/${getEncodedUri(subscriptionItem)}/usage_record_summaries`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a usage record for a specified subscription item and date, and fills it with a quantity.

# #

Usage records provide quantity information that Stripe uses to track how much a customer is using your service. With usage information and the pricing model set up by the metered billing plan, Stripe helps you send accurate invoices to your customers.

@@ -5984,38 +5219,62 @@ public isolated client class Client { #

The default pricing model for metered billing is per-unit pricing. For finer granularity, you can configure metered billing to have a tiered pricing model.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_items/[string subscription_item]/usage_records(subscription_item_usage_records_body payload, map headers = {}) returns Usage_record|error { - string resourcePath = string `/subscription_items/${getEncodedUri(subscription_item)}/usage_records`; + # + return - Successful response + resource isolated function post subscription_items/[string subscriptionItem]/usage_records(SubscriptionItemUsageRecordsBody payload, map headers = {}) returns UsageRecord|error { + string resourcePath = string `/subscription_items/${getEncodedUri(subscriptionItem)}/usage_records`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "timestamp": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the list of your subscription schedules.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscription_schedules(map headers = {}, *GetSubscriptionSchedulesQueries queries) returns SubscriptionSchedulesResourceScheduleList|error { + string resourcePath = string `/subscription_schedules`; + map queryParamEncoding = {"canceled_at": {style: DEEPOBJECT, explode: true}, "completed_at": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "released_at": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_schedules(subscription_schedules_body payload, map headers = {}) returns Subscription_schedule|error { + # + return - Successful response + resource isolated function post subscription_schedules(SubscriptionSchedulesBody payload, map headers = {}) returns SubscriptionSchedule|error { string resourcePath = string `/subscription_schedules`; http:Request request = new; map requestBodyEncoding = {"default_settings": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "phases": {style: DEEPOBJECT, explode: true}, "start_date": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscription_schedules/[string schedule](map headers = {}, *GetSubscriptionSchedulesScheduleQueries queries) returns SubscriptionSchedule|error { + string resourcePath = string `/subscription_schedules/${getEncodedUri(schedule)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates an existing subscription schedule.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_schedules/[string schedule](subscription_schedules_schedule_body payload, map headers = {}) returns Subscription_schedule|error { + # + return - Successful response + resource isolated function post subscription_schedules/[string schedule](SubscriptionSchedulesscheduleBody payload, map headers = {}) returns SubscriptionSchedule|error { string resourcePath = string `/subscription_schedules/${getEncodedUri(schedule)}`; http:Request request = new; map requestBodyEncoding = {"default_settings": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "phases": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6023,12 +5282,12 @@ public isolated client class Client { #

Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_schedules/[string schedule]/cancel(schedule_cancel_body payload, map headers = {}) returns Subscription_schedule|error { + # + return - Successful response + resource isolated function post subscription_schedules/[string schedule]/cancel(ScheduleCancelBody payload, map headers = {}) returns SubscriptionSchedule|error { string resourcePath = string `/subscription_schedules/${getEncodedUri(schedule)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6036,16 +5295,28 @@ public isolated client class Client { #

Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription’s ID to the released_subscription property.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscription_schedules/[string schedule]/release(schedule_release_body payload, map headers = {}) returns Subscription_schedule|error { + # + return - Successful response + resource isolated function post subscription_schedules/[string schedule]/release(ScheduleReleaseBody payload, map headers = {}) returns SubscriptionSchedule|error { string resourcePath = string `/subscription_schedules/${getEncodedUri(schedule)}/release`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscriptions(map headers = {}, *GetSubscriptionsQueries queries) returns SubscriptionsSubscriptionList|error { + string resourcePath = string `/subscriptions`; + map queryParamEncoding = {"automatic_tax": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "current_period_end": {style: DEEPOBJECT, explode: true}, "current_period_start": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.

# #

When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request. @@ -6055,27 +5326,41 @@ public isolated client class Client { # Schedules provide the flexibility to model more complex billing configurations that change over time.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscriptions(subscriptions_body payload, map headers = {}) returns Subscription|error { + # + return - Successful response + resource isolated function post subscriptions(SubscriptionsBody payload, map headers = {}) returns Subscription|error { string resourcePath = string `/subscriptions`; http:Request request = new; map requestBodyEncoding = {"add_invoice_items": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "billing_cycle_anchor_config": {style: DEEPOBJECT, explode: true}, "billing_thresholds": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "pending_invoice_item_interval": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}, "trial_end": {style: DEEPOBJECT, explode: true}, "trial_settings": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date.

+ #

Search for subscriptions you’ve previously created using Stripe’s Search Query Language. + # Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating + # conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up + # to an hour behind during outages. Search functionality is not available to merchants in India.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscriptions/[string subscription]/resume(subscription_resume_body payload, map headers = {}) returns Subscription|error { - string resourcePath = string `/subscriptions/${getEncodedUri(subscription)}/resume`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscriptions/search(map headers = {}, *GetSubscriptionsSearchQueries queries) returns SearchResult6|error { + string resourcePath = string `/subscriptions/search`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the subscription with the given ID.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get subscriptions/[string subscriptionExposedId](map headers = {}, *GetSubscriptionsSubscriptionExposedIdQueries queries) returns Subscription|error { + string resourcePath = string `/subscriptions/${getEncodedUri(subscriptionExposedId)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } #

Updates an existing subscription to match the specified parameters. @@ -6101,12 +5386,51 @@ public isolated client class Client { #

Updating the quantity on a subscription many times in an hour may result in rate limiting. If you need to bill for a frequently changing quantity, consider integrating usage-based billing instead.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post subscriptions/[string subscription_exposed_id](subscriptions_subscription_exposed_id_body_2 payload, map headers = {}) returns Subscription|error { - string resourcePath = string `/subscriptions/${getEncodedUri(subscription_exposed_id)}`; + # + return - Successful response + resource isolated function post subscriptions/[string subscriptionExposedId](SubscriptionssubscriptionExposedIdBody2 payload, map headers = {}) returns Subscription|error { + string resourcePath = string `/subscriptions/${getEncodedUri(subscriptionExposedId)}`; http:Request request = new; map requestBodyEncoding = {"add_invoice_items": {style: DEEPOBJECT, explode: true}, "application_fee_percent": {style: DEEPOBJECT, explode: true}, "automatic_tax": {style: DEEPOBJECT, explode: true}, "billing_thresholds": {style: DEEPOBJECT, explode: true}, "cancel_at": {style: DEEPOBJECT, explode: true}, "cancellation_details": {style: DEEPOBJECT, explode: true}, "default_source": {style: DEEPOBJECT, explode: true}, "default_tax_rates": {style: DEEPOBJECT, explode: true}, "description": {style: DEEPOBJECT, explode: true}, "discounts": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "invoice_settings": {style: DEEPOBJECT, explode: true}, "items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "on_behalf_of": {style: DEEPOBJECT, explode: true}, "pause_collection": {style: DEEPOBJECT, explode: true}, "payment_settings": {style: DEEPOBJECT, explode: true}, "pending_invoice_item_interval": {style: DEEPOBJECT, explode: true}, "transfer_data": {style: DEEPOBJECT, explode: true}, "trial_end": {style: DEEPOBJECT, explode: true}, "trial_settings": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

+ # + #

Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

+ # + #

By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete subscriptions/[string subscriptionExposedId](SubscriptionssubscriptionExposedIdBody3 payload, map headers = {}) returns Subscription|error { + string resourcePath = string `/subscriptions/${getEncodedUri(subscriptionExposedId)}`; + http:Request request = new; + map requestBodyEncoding = {"cancellation_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->delete(resourcePath, request, headers); + } + + #

Removes the currently applied discount on a subscription.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete subscriptions/[string subscriptionExposedId]/discount(map headers = {}) returns DeletedDiscount|error { + string resourcePath = string `/subscriptions/${getEncodedUri(subscriptionExposedId)}/discount`; + return self.clientEp->delete(resourcePath, headers = headers); + } + + #

Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post subscriptions/[string subscription]/resume(SubscriptionResumeBody payload, map headers = {}) returns Subscription|error { + string resourcePath = string `/subscriptions/${getEncodedUri(subscription)}/resume`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6114,53 +5438,101 @@ public isolated client class Client { #

Calculates tax based on the input and returns a Tax Calculation object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax/calculations(tax_calculations_body payload, map headers = {}) returns Tax\.calculation|error { + # + return - Successful response + resource isolated function post tax/calculations(TaxCalculationsBody payload, map headers = {}) returns TaxCalculation|error { string resourcePath = string `/tax/calculations`; http:Request request = new; map requestBodyEncoding = {"customer_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "ship_from_details": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the line items of a tax calculation as a collection, if the calculation hasn’t expired.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax/calculations/[string calculation]/line_items(map headers = {}, *GetTaxCalculationsCalculationLineItemsQueries queries) returns TaxProductResourceTaxCalculationLineItemList|error { + string resourcePath = string `/tax/calculations/${getEncodedUri(calculation)}/line_items`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of Tax Registration objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax/registrations(map headers = {}, *GetTaxRegistrationsQueries queries) returns TaxProductRegistrationsResourceTaxRegistrationList|error { + string resourcePath = string `/tax/registrations`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new Tax Registration object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax/registrations(tax_registrations_body payload, map headers = {}) returns Tax\.registration|error { + # + return - Successful response + resource isolated function post tax/registrations(TaxRegistrationsBody payload, map headers = {}) returns TaxRegistration|error { string resourcePath = string `/tax/registrations`; http:Request request = new; map requestBodyEncoding = {"active_from": {style: DEEPOBJECT, explode: true}, "country_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a Tax Registration object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax/registrations/[string id](map headers = {}, *GetTaxRegistrationsIdQueries queries) returns TaxRegistration|error { + string resourcePath = string `/tax/registrations/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates an existing Tax Registration object.

# #

A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax/registrations/[string id](registrations_id_body payload, map headers = {}) returns Tax\.registration|error { + # + return - Successful response + resource isolated function post tax/registrations/[string id](RegistrationsidBody payload, map headers = {}) returns TaxRegistration|error { string resourcePath = string `/tax/registrations/${getEncodedUri(id)}`; http:Request request = new; map requestBodyEncoding = {"active_from": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "expires_at": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves Tax Settings for a merchant.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax/settings(map headers = {}, *GetTaxSettingsQueries queries) returns TaxSettings|error { + string resourcePath = string `/tax/settings`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax/settings(tax_settings_body payload, map headers = {}) returns Tax\.settings|error { + # + return - Successful response + resource isolated function post tax/settings(TaxSettingsBody payload, map headers = {}) returns TaxSettings|error { string resourcePath = string `/tax/settings`; http:Request request = new; map requestBodyEncoding = {"defaults": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "head_office": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6168,169 +5540,373 @@ public isolated client class Client { #

Creates a Tax Transaction from a calculation, if that calculation hasn’t expired. Calculations expire after 90 days.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax/transactions/create_from_calculation(transactions_create_from_calculation_body payload, map headers = {}) returns Tax\.transaction|error { + # + return - Successful response + resource isolated function post tax/transactions/create_from_calculation(TransactionsCreateFromCalculationBody payload, map headers = {}) returns TaxTransaction|error { string resourcePath = string `/tax/transactions/create_from_calculation`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Partially or fully reverses a previously created Transaction.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post tax/transactions/create_reversal(TransactionsCreateReversalBody payload, map headers = {}) returns TaxTransaction|error { + string resourcePath = string `/tax/transactions/create_reversal`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + #

Retrieves a Tax Transaction object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax/transactions/[string 'transaction](map headers = {}, *GetTaxTransactionsTransactionQueries queries) returns TaxTransaction|error { + string resourcePath = string `/tax/transactions/${getEncodedUri('transaction)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the line items of a committed standalone transaction as a collection.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax/transactions/[string 'transaction]/line_items(map headers = {}, *GetTaxTransactionsTransactionLineItemsQueries queries) returns TaxProductResourceTaxTransactionLineItemList|error { + string resourcePath = string `/tax/transactions/${getEncodedUri('transaction)}/line_items`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

A list of all tax codes available to add to Products in order to allow specific tax calculations.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax_codes(map headers = {}, *GetTaxCodesQueries queries) returns TaxProductResourceTaxCodeList|error { + string resourcePath = string `/tax_codes`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax_codes/[string id](map headers = {}, *GetTaxCodesIdQueries queries) returns TaxCode|error { + string resourcePath = string `/tax_codes/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of tax IDs.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax_ids(map headers = {}, *GetTaxIdsQueries queries) returns TaxIDsList|error { + string resourcePath = string `/tax_ids`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Creates a new account or customer tax_id object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post tax_ids(TaxIdsBody payload, map headers = {}) returns TaxId|error { + string resourcePath = string `/tax_ids`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Partially or fully reverses a previously created Transaction.

+ #

Retrieves an account or customer tax_id object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax_ids/[string id](map headers = {}, *GetTaxIdsIdQueries queries) returns TaxId|error { + string resourcePath = string `/tax_ids/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Deletes an existing account or customer tax_id object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax/transactions/create_reversal(transactions_create_reversal_body payload, map headers = {}) returns Tax\.transaction|error { - string resourcePath = string `/tax/transactions/create_reversal`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "line_items": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "shipping_cost": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + return - Successful response + resource isolated function delete tax_ids/[string id](map headers = {}) returns DeletedTaxId|error { + string resourcePath = string `/tax_ids/${getEncodedUri(id)}`; + return self.clientEp->delete(resourcePath, headers = headers); } - #

Creates a new account or customer tax_id object.

+ #

Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax_ids(tax_ids_body payload, map headers = {}) returns Tax_id|error { - string resourcePath = string `/tax_ids`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "owner": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax_rates(map headers = {}, *GetTaxRatesQueries queries) returns TaxRatesList|error { + string resourcePath = string `/tax_rates`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); } #

Creates a new tax rate.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax_rates(tax_rates_body payload, map headers = {}) returns Tax_rate|error { + # + return - Successful response + resource isolated function post tax_rates(TaxRatesBody payload, map headers = {}) returns TaxRate|error { string resourcePath = string `/tax_rates`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a tax rate with the given ID

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tax_rates/[string taxRate](map headers = {}, *GetTaxRatesTaxRateQueries queries) returns TaxRate|error { + string resourcePath = string `/tax_rates/${getEncodedUri(taxRate)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates an existing tax rate.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tax_rates/[string tax_rate](tax_rates_tax_rate_body payload, map headers = {}) returns Tax_rate|error { - string resourcePath = string `/tax_rates/${getEncodedUri(tax_rate)}`; + # + return - Successful response + resource isolated function post tax_rates/[string taxRate](TaxRatestaxRateBody payload, map headers = {}) returns TaxRate|error { + string resourcePath = string `/tax_rates/${getEncodedUri(taxRate)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of Configuration objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get terminal/configurations(map headers = {}, *GetTerminalConfigurationsQueries queries) returns TerminalConfigurationConfigurationList|error { + string resourcePath = string `/terminal/configurations`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new Configuration object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/configurations(terminal_configurations_body payload, map headers = {}) returns Terminal\.configuration|error { + # + return - Successful response + resource isolated function post terminal/configurations(TerminalConfigurationsBody payload, map headers = {}) returns TerminalConfiguration|error { string resourcePath = string `/terminal/configurations`; http:Request request = new; map requestBodyEncoding = {"bbpos_wisepos_e": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "offline": {style: DEEPOBJECT, explode: true}, "reboot_window": {style: DEEPOBJECT, explode: true}, "stripe_s700": {style: DEEPOBJECT, explode: true}, "tipping": {style: DEEPOBJECT, explode: true}, "verifone_p400": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a Configuration object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get terminal/configurations/[string configuration](map headers = {}, *GetTerminalConfigurationsConfigurationQueries queries) returns InlineResponse2003|error { + string resourcePath = string `/terminal/configurations/${getEncodedUri(configuration)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates a new Configuration object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/configurations/[string configuration](configurations_configuration_body_1 payload, map headers = {}) returns inline_response_200_3|error { + # + return - Successful response + resource isolated function post terminal/configurations/[string configuration](ConfigurationsconfigurationBody1 payload, map headers = {}) returns InlineResponse2003|error { string resourcePath = string `/terminal/configurations/${getEncodedUri(configuration)}`; http:Request request = new; map requestBodyEncoding = {"bbpos_wisepos_e": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "offline": {style: DEEPOBJECT, explode: true}, "reboot_window": {style: DEEPOBJECT, explode: true}, "stripe_s700": {style: DEEPOBJECT, explode: true}, "tipping": {style: DEEPOBJECT, explode: true}, "verifone_p400": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Deletes a Configuration object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete terminal/configurations/[string configuration](map headers = {}) returns DeletedTerminalConfiguration|error { + string resourcePath = string `/terminal/configurations/${getEncodedUri(configuration)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } + #

To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/connection_tokens(terminal_connection_tokens_body payload, map headers = {}) returns Terminal\.connection_token|error { + # + return - Successful response + resource isolated function post terminal/connection_tokens(TerminalConnectionTokensBody payload, map headers = {}) returns TerminalConnectionToken|error { string resourcePath = string `/terminal/connection_tokens`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of Location objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get terminal/locations(map headers = {}, *GetTerminalLocationsQueries queries) returns TerminalLocationLocationList|error { + string resourcePath = string `/terminal/locations`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new Location object. # For further details, including which address fields are required in each country, see the Manage locations guide.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/locations(terminal_locations_body payload, map headers = {}) returns Terminal\.location|error { + # + return - Successful response + resource isolated function post terminal/locations(TerminalLocationsBody payload, map headers = {}) returns TerminalLocation|error { string resourcePath = string `/terminal/locations`; http:Request request = new; map requestBodyEncoding = {"address": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a Location object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get terminal/locations/[string location](map headers = {}, *GetTerminalLocationsLocationQueries queries) returns InlineResponse2004|error { + string resourcePath = string `/terminal/locations/${getEncodedUri(location)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/locations/[string location](locations_location_body payload, map headers = {}) returns inline_response_200_4|error { + # + return - Successful response + resource isolated function post terminal/locations/[string location](LocationslocationBody payload, map headers = {}) returns InlineResponse2004|error { string resourcePath = string `/terminal/locations/${getEncodedUri(location)}`; http:Request request = new; map requestBodyEncoding = {"address": {style: DEEPOBJECT, explode: true}, "configuration_overrides": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Deletes a Location object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete terminal/locations/[string location](map headers = {}) returns DeletedTerminalLocation|error { + string resourcePath = string `/terminal/locations/${getEncodedUri(location)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } + + #

Returns a list of Reader objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get terminal/readers(map headers = {}, *GetTerminalReadersQueries queries) returns TerminalReaderRetrieveReader|error { + string resourcePath = string `/terminal/readers`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new Reader object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers(terminal_readers_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post terminal/readers(TerminalReadersBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/terminal/readers`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a Reader object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get terminal/readers/[string reader](map headers = {}, *GetTerminalReadersReaderQueries queries) returns InlineResponse2005|error { + string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers/[string reader](readers_reader_body payload, map headers = {}) returns inline_response_200_5|error { + # + return - Successful response + resource isolated function post terminal/readers/[string reader](ReadersreaderBody payload, map headers = {}) returns InlineResponse2005|error { string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "label": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Deletes a Reader object.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete terminal/readers/[string reader](map headers = {}) returns DeletedTerminalReader|error { + string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } + #

Cancels the current reader action.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers/[string reader]/cancel_action(reader_cancel_action_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post terminal/readers/[string reader]/cancel_action(ReaderCancelActionBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}/cancel_action`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6338,12 +5914,12 @@ public isolated client class Client { #

Initiates a payment flow on a Reader.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers/[string reader]/process_payment_intent(reader_process_payment_intent_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post terminal/readers/[string reader]/process_payment_intent(ReaderProcessPaymentIntentBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}/process_payment_intent`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "process_config": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6351,12 +5927,12 @@ public isolated client class Client { #

Initiates a setup intent flow on a Reader.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers/[string reader]/process_setup_intent(reader_process_setup_intent_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post terminal/readers/[string reader]/process_setup_intent(ReaderProcessSetupIntentBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}/process_setup_intent`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "process_config": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6364,12 +5940,12 @@ public isolated client class Client { #

Initiates a refund on a Reader

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers/[string reader]/refund_payment(reader_refund_payment_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post terminal/readers/[string reader]/refund_payment(ReaderRefundPaymentBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}/refund_payment`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "refund_payment_config": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6377,12 +5953,12 @@ public isolated client class Client { #

Sets reader display to show cart details.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post terminal/readers/[string reader]/set_reader_display(reader_set_reader_display_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post terminal/readers/[string reader]/set_reader_display(ReaderSetReaderDisplayBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/terminal/readers/${getEncodedUri(reader)}/set_reader_display`; http:Request request = new; map requestBodyEncoding = {"cart": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6390,12 +5966,12 @@ public isolated client class Client { #

Creates a test mode Confirmation Token server side for your integration tests.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/confirmation_tokens(test_helpers_confirmation_tokens_body payload, map headers = {}) returns Confirmation_token|error { + # + return - Successful response + resource isolated function post test_helpers/confirmation_tokens(TestHelpersConfirmationTokensBody payload, map headers = {}) returns ConfirmationToken|error { string resourcePath = string `/test_helpers/confirmation_tokens`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "payment_method_data": {style: DEEPOBJECT, explode: true}, "shipping": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6403,12 +5979,12 @@ public isolated client class Client { #

Create an incoming testmode bank transfer

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/customers/[string customer]/fund_cash_balance(customer_fund_cash_balance_body payload, map headers = {}) returns Customer_cash_balance_transaction|error { + # + return - Successful response + resource isolated function post test_helpers/customers/[string customer]/fund_cash_balance(CustomerFundCashBalanceBody payload, map headers = {}) returns CustomerCashBalanceTransaction|error { string resourcePath = string `/test_helpers/customers/${getEncodedUri(customer)}/fund_cash_balance`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6416,12 +5992,12 @@ public isolated client class Client { #

Create a test-mode authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/authorizations(issuing_authorizations_body payload, map headers = {}) returns Issuing\.authorization|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/authorizations(IssuingAuthorizationsBody payload, map headers = {}) returns IssuingAuthorization|error { string resourcePath = string `/test_helpers/issuing/authorizations`; http:Request request = new; map requestBodyEncoding = {"amount_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "fleet": {style: DEEPOBJECT, explode: true}, "fuel": {style: DEEPOBJECT, explode: true}, "merchant_data": {style: DEEPOBJECT, explode: true}, "network_data": {style: DEEPOBJECT, explode: true}, "verification_data": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6429,12 +6005,12 @@ public isolated client class Client { #

Capture a test-mode authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/authorizations/[string authorization]/capture(authorization_capture_body payload, map headers = {}) returns Issuing\.authorization|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/authorizations/[string authorization]/capture(AuthorizationCaptureBody payload, map headers = {}) returns IssuingAuthorization|error { string resourcePath = string `/test_helpers/issuing/authorizations/${getEncodedUri(authorization)}/capture`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "purchase_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6442,12 +6018,12 @@ public isolated client class Client { #

Expire a test-mode Authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/authorizations/[string authorization]/expire(authorization_expire_body payload, map headers = {}) returns Issuing\.authorization|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/authorizations/[string authorization]/expire(AuthorizationExpireBody payload, map headers = {}) returns IssuingAuthorization|error { string resourcePath = string `/test_helpers/issuing/authorizations/${getEncodedUri(authorization)}/expire`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6455,12 +6031,12 @@ public isolated client class Client { #

Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/authorizations/[string authorization]/finalize_amount(authorization_finalize_amount_body payload, map headers = {}) returns Issuing\.authorization|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/authorizations/[string authorization]/finalize_amount(AuthorizationFinalizeAmountBody payload, map headers = {}) returns IssuingAuthorization|error { string resourcePath = string `/test_helpers/issuing/authorizations/${getEncodedUri(authorization)}/finalize_amount`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "fleet": {style: DEEPOBJECT, explode: true}, "fuel": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6468,12 +6044,12 @@ public isolated client class Client { #

Increment a test-mode Authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/authorizations/[string authorization]/increment(authorization_increment_body payload, map headers = {}) returns Issuing\.authorization|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/authorizations/[string authorization]/increment(AuthorizationIncrementBody payload, map headers = {}) returns IssuingAuthorization|error { string resourcePath = string `/test_helpers/issuing/authorizations/${getEncodedUri(authorization)}/increment`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6481,43 +6057,43 @@ public isolated client class Client { #

Reverse a test-mode Authorization.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/authorizations/[string authorization]/reverse(authorization_reverse_body payload, map headers = {}) returns Issuing\.authorization|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/authorizations/[string authorization]/reverse(AuthorizationReverseBody payload, map headers = {}) returns IssuingAuthorization|error { string resourcePath = string `/test_helpers/issuing/authorizations/${getEncodedUri(authorization)}/reverse`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/issuing/cards/[string card]/shipping/'fail(shipping_fail_body payload, map headers = {}) returns Issuing\.card|error { - string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/fail`; + #

Updates the shipping status of the specified Issuing Card object to delivered.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post test_helpers/issuing/cards/[string card]/shipping/deliver(ShippingDeliverBody payload, map headers = {}) returns IssuingCard|error { + string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/deliver`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/issuing/cards/[string card]/shipping/'return(shipping_return_body payload, map headers = {}) returns Issuing\.card|error { - string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/return`; + resource isolated function post test_helpers/issuing/cards/[string card]/shipping/'fail(ShippingFailBody payload, map headers = {}) returns IssuingCard|error { + string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/fail`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Updates the shipping status of the specified Issuing Card object to delivered.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/cards/[string card]/shipping/deliver(shipping_deliver_body payload, map headers = {}) returns Issuing\.card|error { - string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/deliver`; + resource isolated function post test_helpers/issuing/cards/[string card]/shipping/'return(ShippingReturnBody payload, map headers = {}) returns IssuingCard|error { + string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/return`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6525,12 +6101,12 @@ public isolated client class Client { #

Updates the shipping status of the specified Issuing Card object to shipped.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/cards/[string card]/shipping/ship(shipping_ship_body payload, map headers = {}) returns Issuing\.card|error { + # + return - Successful response + resource isolated function post test_helpers/issuing/cards/[string card]/shipping/ship(ShippingShipBody payload, map headers = {}) returns IssuingCard|error { string resourcePath = string `/test_helpers/issuing/cards/${getEncodedUri(card)}/shipping/ship`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6538,12 +6114,12 @@ public isolated client class Client { #

Updates the status of the specified testmode personalization design object to active.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/personalization_designs/[string personalization_design]/activate(personalization_design_activate_body payload, map headers = {}) returns Issuing\.personalization_design|error { - string resourcePath = string `/test_helpers/issuing/personalization_designs/${getEncodedUri(personalization_design)}/activate`; + # + return - Successful response + resource isolated function post test_helpers/issuing/personalization_designs/[string personalizationDesign]/activate(PersonalizationDesignActivateBody payload, map headers = {}) returns IssuingPersonalizationDesign|error { + string resourcePath = string `/test_helpers/issuing/personalization_designs/${getEncodedUri(personalizationDesign)}/activate`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6551,12 +6127,12 @@ public isolated client class Client { #

Updates the status of the specified testmode personalization design object to inactive.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/personalization_designs/[string personalization_design]/deactivate(personalization_design_deactivate_body payload, map headers = {}) returns Issuing\.personalization_design|error { - string resourcePath = string `/test_helpers/issuing/personalization_designs/${getEncodedUri(personalization_design)}/deactivate`; + # + return - Successful response + resource isolated function post test_helpers/issuing/personalization_designs/[string personalizationDesign]/deactivate(PersonalizationDesignDeactivateBody payload, map headers = {}) returns IssuingPersonalizationDesign|error { + string resourcePath = string `/test_helpers/issuing/personalization_designs/${getEncodedUri(personalizationDesign)}/deactivate`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6564,51 +6140,51 @@ public isolated client class Client { #

Updates the status of the specified testmode personalization design object to rejected.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/personalization_designs/[string personalization_design]/reject(personalization_design_reject_body payload, map headers = {}) returns Issuing\.personalization_design|error { - string resourcePath = string `/test_helpers/issuing/personalization_designs/${getEncodedUri(personalization_design)}/reject`; + # + return - Successful response + resource isolated function post test_helpers/issuing/personalization_designs/[string personalizationDesign]/reject(PersonalizationDesignRejectBody payload, map headers = {}) returns IssuingPersonalizationDesign|error { + string resourcePath = string `/test_helpers/issuing/personalization_designs/${getEncodedUri(personalizationDesign)}/reject`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "rejection_reasons": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Refund a test-mode Transaction.

+ #

Allows the user to capture an arbitrary amount, also known as a forced capture.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/transactions/[string 'transaction]/refund(transaction_refund_body payload, map headers = {}) returns Issuing\.transaction|error { - string resourcePath = string `/test_helpers/issuing/transactions/${getEncodedUri('transaction)}/refund`; + # + return - Successful response + resource isolated function post test_helpers/issuing/transactions/create_force_capture(TransactionsCreateForceCaptureBody payload, map headers = {}) returns IssuingTransaction|error { + string resourcePath = string `/test_helpers/issuing/transactions/create_force_capture`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "merchant_data": {style: DEEPOBJECT, explode: true}, "purchase_details": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Allows the user to capture an arbitrary amount, also known as a forced capture.

+ #

Allows the user to refund an arbitrary amount, also known as a unlinked refund.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/transactions/create_force_capture(transactions_create_force_capture_body payload, map headers = {}) returns Issuing\.transaction|error { - string resourcePath = string `/test_helpers/issuing/transactions/create_force_capture`; + # + return - Successful response + resource isolated function post test_helpers/issuing/transactions/create_unlinked_refund(TransactionsCreateUnlinkedRefundBody payload, map headers = {}) returns IssuingTransaction|error { + string resourcePath = string `/test_helpers/issuing/transactions/create_unlinked_refund`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "merchant_data": {style: DEEPOBJECT, explode: true}, "purchase_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Allows the user to refund an arbitrary amount, also known as a unlinked refund.

+ #

Refund a test-mode Transaction.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/issuing/transactions/create_unlinked_refund(transactions_create_unlinked_refund_body payload, map headers = {}) returns Issuing\.transaction|error { - string resourcePath = string `/test_helpers/issuing/transactions/create_unlinked_refund`; + # + return - Successful response + resource isolated function post test_helpers/issuing/transactions/[string 'transaction]/refund(TransactionRefundBody payload, map headers = {}) returns IssuingTransaction|error { + string resourcePath = string `/test_helpers/issuing/transactions/${getEncodedUri('transaction)}/refund`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "merchant_data": {style: DEEPOBJECT, explode: true}, "purchase_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6616,12 +6192,12 @@ public isolated client class Client { #

Expire a refund with a status of requires_action.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/refunds/[string refund]/expire(refund_expire_body payload, map headers = {}) returns Refund|error { + # + return - Successful response + resource isolated function post test_helpers/refunds/[string refund]/expire(RefundExpireBody payload, map headers = {}) returns Refund|error { string resourcePath = string `/test_helpers/refunds/${getEncodedUri(refund)}/expire`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6629,56 +6205,89 @@ public isolated client class Client { #

Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/terminal/readers/[string reader]/present_payment_method(reader_present_payment_method_body payload, map headers = {}) returns Terminal\.reader|error { + # + return - Successful response + resource isolated function post test_helpers/terminal/readers/[string reader]/present_payment_method(ReaderPresentPaymentMethodBody payload, map headers = {}) returns TerminalReader|error { string resourcePath = string `/test_helpers/terminal/readers/${getEncodedUri(reader)}/present_payment_method`; http:Request request = new; map requestBodyEncoding = {"card_present": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "interac_present": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of your test clocks.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get test_helpers/test_clocks(map headers = {}, *GetTestHelpersTestClocksQueries queries) returns BillingClocksResourceBillingClockList|error { + string resourcePath = string `/test_helpers/test_clocks`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new test clock that can be attached to new customers and quotes.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/test_clocks(test_helpers_test_clocks_body payload, map headers = {}) returns Test_helpers\.test_clock|error { + # + return - Successful response + resource isolated function post test_helpers/test_clocks(TestHelpersTestClocksBody payload, map headers = {}) returns TestHelpersTestClock|error { string resourcePath = string `/test_helpers/test_clocks`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a test clock.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get test_helpers/test_clocks/[string testClock](map headers = {}, *GetTestHelpersTestClocksTestClockQueries queries) returns TestHelpersTestClock|error { + string resourcePath = string `/test_helpers/test_clocks/${getEncodedUri(testClock)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Deletes a test clock.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete test_helpers/test_clocks/[string testClock](map headers = {}) returns DeletedTestHelpersTestClock|error { + string resourcePath = string `/test_helpers/test_clocks/${getEncodedUri(testClock)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } + #

Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/test_clocks/[string test_clock]/advance(test_clock_advance_body payload, map headers = {}) returns Test_helpers\.test_clock|error { - string resourcePath = string `/test_helpers/test_clocks/${getEncodedUri(test_clock)}/advance`; + # + return - Successful response + resource isolated function post test_helpers/test_clocks/[string testClock]/advance(TestClockAdvanceBody payload, map headers = {}) returns TestHelpersTestClock|error { + string resourcePath = string `/test_helpers/test_clocks/${getEncodedUri(testClock)}/advance`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/treasury/inbound_transfers/[string id]/'fail(id_fail_body payload, map headers = {}) returns Treasury\.inbound_transfer|error { + resource isolated function post test_helpers/treasury/inbound_transfers/[string id]/'fail(IdFailBody payload, map headers = {}) returns TreasuryInboundTransfer|error { string resourcePath = string `/test_helpers/treasury/inbound_transfers/${getEncodedUri(id)}/fail`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "failure_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/treasury/inbound_transfers/[string id]/'return(id_return_body payload, map headers = {}) returns Treasury\.inbound_transfer|error { + resource isolated function post test_helpers/treasury/inbound_transfers/[string id]/'return(IdReturnBody payload, map headers = {}) returns TreasuryInboundTransfer|error { string resourcePath = string `/test_helpers/treasury/inbound_transfers/${getEncodedUri(id)}/return`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6686,12 +6295,12 @@ public isolated client class Client { #

Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/inbound_transfers/[string id]/succeed(id_succeed_body payload, map headers = {}) returns Treasury\.inbound_transfer|error { + # + return - Successful response + resource isolated function post test_helpers/treasury/inbound_transfers/[string id]/succeed(IdSucceedBody payload, map headers = {}) returns TreasuryInboundTransfer|error { string resourcePath = string `/test_helpers/treasury/inbound_transfers/${getEncodedUri(id)}/succeed`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6699,30 +6308,21 @@ public isolated client class Client { #

Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/outbound_payments/[string id](outbound_payments_id_body payload, map headers = {}) returns Treasury\.outbound_payment|error { + # + return - Successful response + resource isolated function post test_helpers/treasury/outbound_payments/[string id](OutboundPaymentsidBody payload, map headers = {}) returns TreasuryOutboundPayment|error { string resourcePath = string `/test_helpers/treasury/outbound_payments/${getEncodedUri(id)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "tracking_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/treasury/outbound_payments/[string id]/'fail(id_fail_body_1 payload, map headers = {}) returns Treasury\.outbound_payment|error { + resource isolated function post test_helpers/treasury/outbound_payments/[string id]/'fail(IdFailBody1 payload, map headers = {}) returns TreasuryOutboundPayment|error { string resourcePath = string `/test_helpers/treasury/outbound_payments/${getEncodedUri(id)}/fail`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); - request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); - return self.clientEp->post(resourcePath, request, headers); - } - - resource isolated function post test_helpers/treasury/outbound_payments/[string id]/'return(id_return_body_1 payload, map headers = {}) returns Treasury\.outbound_payment|error { - string resourcePath = string `/test_helpers/treasury/outbound_payments/${getEncodedUri(id)}/return`; - http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "returned_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6730,12 +6330,21 @@ public isolated client class Client { #

Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/outbound_payments/[string id]/post(id_post_body payload, map headers = {}) returns Treasury\.outbound_payment|error { + # + return - Successful response + resource isolated function post test_helpers/treasury/outbound_payments/[string id]/post(IdPostBody payload, map headers = {}) returns TreasuryOutboundPayment|error { string resourcePath = string `/test_helpers/treasury/outbound_payments/${getEncodedUri(id)}/post`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); + request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); + return self.clientEp->post(resourcePath, request, headers); + } + + resource isolated function post test_helpers/treasury/outbound_payments/[string id]/'return(IdReturnBody1 payload, map headers = {}) returns TreasuryOutboundPayment|error { + string resourcePath = string `/test_helpers/treasury/outbound_payments/${getEncodedUri(id)}/return`; + http:Request request = new; + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "returned_details": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6743,43 +6352,43 @@ public isolated client class Client { #

Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/outbound_transfers/[string outbound_transfer](outbound_transfers_outbound_transfer_body payload, map headers = {}) returns Treasury\.outbound_transfer|error { - string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outbound_transfer)}`; + # + return - Successful response + resource isolated function post test_helpers/treasury/outbound_transfers/[string outboundTransfer](OutboundTransfersoutboundTransferBody payload, map headers = {}) returns TreasuryOutboundTransfer|error { + string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outboundTransfer)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "tracking_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/treasury/outbound_transfers/[string outbound_transfer]/'fail(outbound_transfer_fail_body payload, map headers = {}) returns Treasury\.outbound_transfer|error { - string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outbound_transfer)}/fail`; + resource isolated function post test_helpers/treasury/outbound_transfers/[string outboundTransfer]/'fail(OutboundTransferFailBody payload, map headers = {}) returns TreasuryOutboundTransfer|error { + string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outboundTransfer)}/fail`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - resource isolated function post test_helpers/treasury/outbound_transfers/[string outbound_transfer]/'return(outbound_transfer_return_body payload, map headers = {}) returns Treasury\.outbound_transfer|error { - string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outbound_transfer)}/return`; + #

Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function post test_helpers/treasury/outbound_transfers/[string outboundTransfer]/post(OutboundTransferPostBody payload, map headers = {}) returns TreasuryOutboundTransfer|error { + string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outboundTransfer)}/post`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "returned_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } - #

Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state.

- # - # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/outbound_transfers/[string outbound_transfer]/post(outbound_transfer_post_body payload, map headers = {}) returns Treasury\.outbound_transfer|error { - string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outbound_transfer)}/post`; + resource isolated function post test_helpers/treasury/outbound_transfers/[string outboundTransfer]/'return(OutboundTransferReturnBody payload, map headers = {}) returns TreasuryOutboundTransfer|error { + string resourcePath = string `/test_helpers/treasury/outbound_transfers/${getEncodedUri(outboundTransfer)}/return`; http:Request request = new; - map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "returned_details": {style: DEEPOBJECT, explode: true}}; + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6787,12 +6396,12 @@ public isolated client class Client { #

Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can’t directly create ReceivedCredits initiated by third parties.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/received_credits(treasury_received_credits_body payload, map headers = {}) returns Treasury\.received_credit|error { + # + return - Successful response + resource isolated function post test_helpers/treasury/received_credits(TreasuryReceivedCreditsBody payload, map headers = {}) returns TreasuryReceivedCredit|error { string resourcePath = string `/test_helpers/treasury/received_credits`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "initiating_payment_method_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6800,12 +6409,12 @@ public isolated client class Client { #

Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can’t directly create ReceivedDebits initiated by third parties.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post test_helpers/treasury/received_debits(treasury_received_debits_body payload, map headers = {}) returns Treasury\.received_debit|error { + # + return - Successful response + resource isolated function post test_helpers/treasury/received_debits(TreasuryReceivedDebitsBody payload, map headers = {}) returns TreasuryReceivedDebit|error { string resourcePath = string `/test_helpers/treasury/received_debits`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "initiating_payment_method_details": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6814,38 +6423,74 @@ public isolated client class Client { # You can use this token with any API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a connected account where controller.requirement_collection is application, which includes Custom accounts.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post tokens(tokens_body payload, map headers = {}) returns Token|error { + # + return - Successful response + resource isolated function post tokens(TokensBody payload, map headers = {}) returns Token|error { string resourcePath = string `/tokens`; http:Request request = new; map requestBodyEncoding = {"account": {style: DEEPOBJECT, explode: true}, "bank_account": {style: DEEPOBJECT, explode: true}, "card": {style: DEEPOBJECT, explode: true}, "cvc_update": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "person": {style: DEEPOBJECT, explode: true}, "pii": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the token with the given ID.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get tokens/[string token](map headers = {}, *GetTokensTokenQueries queries) returns Token|error { + string resourcePath = string `/tokens/${getEncodedUri(token)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of top-ups.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get topups(map headers = {}, *GetTopupsQueries queries) returns TopupList|error { + string resourcePath = string `/topups`; + map queryParamEncoding = {"amount": {style: DEEPOBJECT, explode: true}, "created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Top up the balance of an account

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post topups(topups_body payload, map headers = {}) returns Topup|error { + # + return - Successful response + resource isolated function post topups(TopupsBody payload, map headers = {}) returns Topup|error { string resourcePath = string `/topups`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get topups/[string topup](map headers = {}, *GetTopupsTopupQueries queries) returns Topup|error { + string resourcePath = string `/topups/${getEncodedUri(topup)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the metadata of a top-up. Other top-up details are not editable by design.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post topups/[string topup](topups_topup_body payload, map headers = {}) returns Topup|error { + # + return - Successful response + resource isolated function post topups/[string topup](TopupstopupBody payload, map headers = {}) returns Topup|error { string resourcePath = string `/topups/${getEncodedUri(topup)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } @@ -6853,29 +6498,53 @@ public isolated client class Client { #

Cancels a top-up. Only pending top-ups can be canceled.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post topups/[string topup]/cancel(topup_cancel_body payload, map headers = {}) returns Topup|error { + # + return - Successful response + resource isolated function post topups/[string topup]/cancel(TopupCancelBody payload, map headers = {}) returns Topup|error { string resourcePath = string `/topups/${getEncodedUri(topup)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get transfers(map headers = {}, *GetTransfersQueries queries) returns TransferList|error { + string resourcePath = string `/transfers`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

To send funds from your Stripe account to a connected account, you create a new transfer object. Your Stripe balance must be able to cover the transfer amount, or you’ll receive an “Insufficient Funds” error.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post transfers(transfers_body payload, map headers = {}) returns Transfer|error { + # + return - Successful response + resource isolated function post transfers(TransfersBody payload, map headers = {}) returns Transfer|error { string resourcePath = string `/transfers`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get transfers/[string id]/reversals(map headers = {}, *GetTransfersIdReversalsQueries queries) returns TransferReversalList|error { + string resourcePath = string `/transfers/${getEncodedUri(id)}/reversals`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

When you create a new reversal, you must specify a transfer to create it on.

# #

When reversing transfers, you can optionally reverse part of the transfer. You can do so as many times as you wish until the entire transfer has been reversed.

@@ -6883,212 +6552,521 @@ public isolated client class Client { #

Once entirely reversed, a transfer can’t be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post transfers/[string id]/reversals(id_reversals_body payload, map headers = {}) returns Transfer_reversal|error { + # + return - Successful response + resource isolated function post transfers/[string id]/reversals(IdReversalsBody payload, map headers = {}) returns TransferReversal|error { string resourcePath = string `/transfers/${getEncodedUri(id)}/reversals`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get transfers/[string transfer](map headers = {}, *GetTransfersTransferQueries queries) returns Transfer|error { + string resourcePath = string `/transfers/${getEncodedUri(transfer)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# #

This request accepts only metadata as an argument.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post transfers/[string transfer](transfers_transfer_body payload, map headers = {}) returns Transfer|error { + # + return - Successful response + resource isolated function post transfers/[string transfer](TransferstransferBody payload, map headers = {}) returns Transfer|error { string resourcePath = string `/transfers/${getEncodedUri(transfer)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get transfers/[string transfer]/reversals/[string id](map headers = {}, *GetTransfersTransferReversalsIdQueries queries) returns TransferReversal|error { + string resourcePath = string `/transfers/${getEncodedUri(transfer)}/reversals/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the specified reversal by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

# #

This request only accepts metadata and description as arguments.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post transfers/[string transfer]/reversals/[string id](reversals_id_body payload, map headers = {}) returns Transfer_reversal|error { + # + return - Successful response + resource isolated function post transfers/[string transfer]/reversals/[string id](ReversalsidBody payload, map headers = {}) returns TransferReversal|error { string resourcePath = string `/transfers/${getEncodedUri(transfer)}/reversals/${getEncodedUri(id)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of CreditReversals.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/credit_reversals(map headers = {}, *GetTreasuryCreditReversalsQueries queries) returns TreasuryReceivedCreditsResourceCreditReversalList|error { + string resourcePath = string `/treasury/credit_reversals`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Reverses a ReceivedCredit and creates a CreditReversal object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/credit_reversals(treasury_credit_reversals_body payload, map headers = {}) returns Treasury\.credit_reversal|error { + # + return - Successful response + resource isolated function post treasury/credit_reversals(TreasuryCreditReversalsBody payload, map headers = {}) returns TreasuryCreditReversal|error { string resourcePath = string `/treasury/credit_reversals`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/credit_reversals/[string creditReversal](map headers = {}, *GetTreasuryCreditReversalsCreditReversalQueries queries) returns TreasuryCreditReversal|error { + string resourcePath = string `/treasury/credit_reversals/${getEncodedUri(creditReversal)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of DebitReversals.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/debit_reversals(map headers = {}, *GetTreasuryDebitReversalsQueries queries) returns TreasuryReceivedDebitsResourceDebitReversalList|error { + string resourcePath = string `/treasury/debit_reversals`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Reverses a ReceivedDebit and creates a DebitReversal object.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/debit_reversals(treasury_debit_reversals_body payload, map headers = {}) returns Treasury\.debit_reversal|error { + # + return - Successful response + resource isolated function post treasury/debit_reversals(TreasuryDebitReversalsBody payload, map headers = {}) returns TreasuryDebitReversal|error { string resourcePath = string `/treasury/debit_reversals`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves a DebitReversal object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/debit_reversals/[string debitReversal](map headers = {}, *GetTreasuryDebitReversalsDebitReversalQueries queries) returns TreasuryDebitReversal|error { + string resourcePath = string `/treasury/debit_reversals/${getEncodedUri(debitReversal)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of FinancialAccounts.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/financial_accounts(map headers = {}, *GetTreasuryFinancialAccountsQueries queries) returns TreasuryFinancialAccountsResourceFinancialAccountList|error { + string resourcePath = string `/treasury/financial_accounts`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates a new FinancialAccount. For now, each connected account can only have one FinancialAccount.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/financial_accounts(treasury_financial_accounts_body payload, map headers = {}) returns Treasury\.financial_account|error { + # + return - Successful response + resource isolated function post treasury/financial_accounts(TreasuryFinancialAccountsBody payload, map headers = {}) returns TreasuryFinancialAccount|error { string resourcePath = string `/treasury/financial_accounts`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "platform_restrictions": {style: DEEPOBJECT, explode: true}, "supported_currencies": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of a FinancialAccount.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/financial_accounts/[string financialAccount](map headers = {}, *GetTreasuryFinancialAccountsFinancialAccountQueries queries) returns TreasuryFinancialAccount|error { + string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financialAccount)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the details of a FinancialAccount.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/financial_accounts/[string financial_account](financial_accounts_financial_account_body payload, map headers = {}) returns Treasury\.financial_account|error { - string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financial_account)}`; + # + return - Successful response + resource isolated function post treasury/financial_accounts/[string financialAccount](FinancialAccountsfinancialAccountBody payload, map headers = {}) returns TreasuryFinancialAccount|error { + string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financialAccount)}`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "features": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}, "platform_restrictions": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves Features information associated with the FinancialAccount.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/financial_accounts/[string financialAccount]/features(map headers = {}, *GetTreasuryFinancialAccountsFinancialAccountFeaturesQueries queries) returns TreasuryFinancialAccountFeatures|error { + string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financialAccount)}/features`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the Features associated with a FinancialAccount.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/financial_accounts/[string financial_account]/features(financial_account_features_body payload, map headers = {}) returns Treasury\.financial_account_features|error { - string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financial_account)}/features`; + # + return - Successful response + resource isolated function post treasury/financial_accounts/[string financialAccount]/features(FinancialAccountFeaturesBody payload, map headers = {}) returns TreasuryFinancialAccountFeatures|error { + string resourcePath = string `/treasury/financial_accounts/${getEncodedUri(financialAccount)}/features`; http:Request request = new; map requestBodyEncoding = {"card_issuing": {style: DEEPOBJECT, explode: true}, "deposit_insurance": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "financial_addresses": {style: DEEPOBJECT, explode: true}, "inbound_transfers": {style: DEEPOBJECT, explode: true}, "intra_stripe_flows": {style: DEEPOBJECT, explode: true}, "outbound_payments": {style: DEEPOBJECT, explode: true}, "outbound_transfers": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of InboundTransfers sent from the specified FinancialAccount.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/inbound_transfers(map headers = {}, *GetTreasuryInboundTransfersQueries queries) returns TreasuryInboundTransfersResourceInboundTransferList|error { + string resourcePath = string `/treasury/inbound_transfers`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates an InboundTransfer.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/inbound_transfers(treasury_inbound_transfers_body payload, map headers = {}) returns Treasury\.inbound_transfer|error { + # + return - Successful response + resource isolated function post treasury/inbound_transfers(TreasuryInboundTransfersBody payload, map headers = {}) returns TreasuryInboundTransfer|error { string resourcePath = string `/treasury/inbound_transfers`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing InboundTransfer.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/inbound_transfers/[string id](map headers = {}, *GetTreasuryInboundTransfersIdQueries queries) returns TreasuryInboundTransfer|error { + string resourcePath = string `/treasury/inbound_transfers/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Cancels an InboundTransfer.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/inbound_transfers/[string inbound_transfer]/cancel(inbound_transfer_cancel_body payload, map headers = {}) returns Treasury\.inbound_transfer|error { - string resourcePath = string `/treasury/inbound_transfers/${getEncodedUri(inbound_transfer)}/cancel`; + # + return - Successful response + resource isolated function post treasury/inbound_transfers/[string inboundTransfer]/cancel(InboundTransferCancelBody payload, map headers = {}) returns TreasuryInboundTransfer|error { + string resourcePath = string `/treasury/inbound_transfers/${getEncodedUri(inboundTransfer)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of OutboundPayments sent from the specified FinancialAccount.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/outbound_payments(map headers = {}, *GetTreasuryOutboundPaymentsQueries queries) returns TreasuryOutboundPaymentsResourceOutboundPaymentList|error { + string resourcePath = string `/treasury/outbound_payments`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates an OutboundPayment.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/outbound_payments(treasury_outbound_payments_body payload, map headers = {}) returns Treasury\.outbound_payment|error { + # + return - Successful response + resource isolated function post treasury/outbound_payments(TreasuryOutboundPaymentsBody payload, map headers = {}) returns TreasuryOutboundPayment|error { string resourcePath = string `/treasury/outbound_payments`; http:Request request = new; map requestBodyEncoding = {"destination_payment_method_data": {style: DEEPOBJECT, explode: true}, "destination_payment_method_options": {style: DEEPOBJECT, explode: true}, "end_user_details": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/outbound_payments/[string id](map headers = {}, *GetTreasuryOutboundPaymentsIdQueries queries) returns TreasuryOutboundPayment|error { + string resourcePath = string `/treasury/outbound_payments/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Cancel an OutboundPayment.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/outbound_payments/[string id]/cancel(id_cancel_body payload, map headers = {}) returns Treasury\.outbound_payment|error { + # + return - Successful response + resource isolated function post treasury/outbound_payments/[string id]/cancel(IdCancelBody payload, map headers = {}) returns TreasuryOutboundPayment|error { string resourcePath = string `/treasury/outbound_payments/${getEncodedUri(id)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of OutboundTransfers sent from the specified FinancialAccount.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/outbound_transfers(map headers = {}, *GetTreasuryOutboundTransfersQueries queries) returns TreasuryOutboundTransfersResourceOutboundTransferList|error { + string resourcePath = string `/treasury/outbound_transfers`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Creates an OutboundTransfer.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/outbound_transfers(treasury_outbound_transfers_body payload, map headers = {}) returns Treasury\.outbound_transfer|error { + # + return - Successful response + resource isolated function post treasury/outbound_transfers(TreasuryOutboundTransfersBody payload, map headers = {}) returns TreasuryOutboundTransfer|error { string resourcePath = string `/treasury/outbound_transfers`; http:Request request = new; map requestBodyEncoding = {"destination_payment_method_options": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/outbound_transfers/[string outboundTransfer](map headers = {}, *GetTreasuryOutboundTransfersOutboundTransferQueries queries) returns TreasuryOutboundTransfer|error { + string resourcePath = string `/treasury/outbound_transfers/${getEncodedUri(outboundTransfer)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

An OutboundTransfer can be canceled if the funds have not yet been paid out.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post treasury/outbound_transfers/[string outbound_transfer]/cancel(outbound_transfer_cancel_body payload, map headers = {}) returns Treasury\.outbound_transfer|error { - string resourcePath = string `/treasury/outbound_transfers/${getEncodedUri(outbound_transfer)}/cancel`; + # + return - Successful response + resource isolated function post treasury/outbound_transfers/[string outboundTransfer]/cancel(OutboundTransferCancelBody payload, map headers = {}) returns TreasuryOutboundTransfer|error { + string resourcePath = string `/treasury/outbound_transfers/${getEncodedUri(outboundTransfer)}/cancel`; http:Request request = new; map requestBodyEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Returns a list of ReceivedCredits.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/received_credits(map headers = {}, *GetTreasuryReceivedCreditsQueries queries) returns TreasuryReceivedCreditsResourceReceivedCreditList|error { + string resourcePath = string `/treasury/received_credits`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}, "linked_flows": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/received_credits/[string id](map headers = {}, *GetTreasuryReceivedCreditsIdQueries queries) returns TreasuryReceivedCredit|error { + string resourcePath = string `/treasury/received_credits/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of ReceivedDebits.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/received_debits(map headers = {}, *GetTreasuryReceivedDebitsQueries queries) returns TreasuryReceivedDebitsResourceReceivedDebitList|error { + string resourcePath = string `/treasury/received_debits`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/received_debits/[string id](map headers = {}, *GetTreasuryReceivedDebitsIdQueries queries) returns TreasuryReceivedDebit|error { + string resourcePath = string `/treasury/received_debits/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves a list of TransactionEntry objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/transaction_entries(map headers = {}, *GetTreasuryTransactionEntriesQueries queries) returns TreasuryTransactionsResourceTransactionEntryList|error { + string resourcePath = string `/treasury/transaction_entries`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "effective_at": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves a TransactionEntry object.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/transaction_entries/[string id](map headers = {}, *GetTreasuryTransactionEntriesIdQueries queries) returns TreasuryTransactionEntry|error { + string resourcePath = string `/treasury/transaction_entries/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves a list of Transaction objects.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/transactions(map headers = {}, *GetTreasuryTransactionsQueries queries) returns TreasuryTransactionsResourceTransactionList|error { + string resourcePath = string `/treasury/transactions`; + map queryParamEncoding = {"created": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "status_transitions": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Retrieves the details of an existing Transaction.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get treasury/transactions/[string id](map headers = {}, *GetTreasuryTransactionsIdQueries queries) returns TreasuryTransaction|error { + string resourcePath = string `/treasury/transactions/${getEncodedUri(id)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + + #

Returns a list of your webhook endpoints.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get webhook_endpoints(map headers = {}, *GetWebhookEndpointsQueries queries) returns NotificationWebhookEndpointList|error { + string resourcePath = string `/webhook_endpoints`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the webhooks settings section of the Dashboard.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post webhook_endpoints(webhook_endpoints_body payload, map headers = {}) returns Webhook_endpoint|error { + # + return - Successful response + resource isolated function post webhook_endpoints(WebhookEndpointsBody payload, map headers = {}) returns WebhookEndpoint|error { string resourcePath = string `/webhook_endpoints`; http:Request request = new; map requestBodyEncoding = {"description": {style: DEEPOBJECT, explode: true}, "enabled_events": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + #

Retrieves the webhook endpoint with the given ID.

+ # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - Successful response + resource isolated function get webhook_endpoints/[string webhookEndpoint](map headers = {}, *GetWebhookEndpointsWebhookEndpointQueries queries) returns WebhookEndpoint|error { + string resourcePath = string `/webhook_endpoints/${getEncodedUri(webhookEndpoint)}`; + map queryParamEncoding = {"expand": {style: DEEPOBJECT, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + return self.clientEp->get(resourcePath, headers); + } + #

Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint.

# # + headers - Headers to be sent with the request - # + return - Successful response. - resource isolated function post webhook_endpoints/[string webhook_endpoint](webhook_endpoints_webhook_endpoint_body payload, map headers = {}) returns Webhook_endpoint|error { - string resourcePath = string `/webhook_endpoints/${getEncodedUri(webhook_endpoint)}`; + # + return - Successful response + resource isolated function post webhook_endpoints/[string webhookEndpoint](WebhookEndpointswebhookEndpointBody payload, map headers = {}) returns WebhookEndpoint|error { + string resourcePath = string `/webhook_endpoints/${getEncodedUri(webhookEndpoint)}`; http:Request request = new; map requestBodyEncoding = {"description": {style: DEEPOBJECT, explode: true}, "enabled_events": {style: DEEPOBJECT, explode: true}, "expand": {style: DEEPOBJECT, explode: true}, "metadata": {style: DEEPOBJECT, explode: true}}; - string encodedRequestBody = createFormURLEncodedRequestBody(payload, requestBodyEncoding); + string encodedRequestBody = createFormURLEncodedRequestBody(check jsondata:toJson(payload).ensureType(), requestBodyEncoding); request.setPayload(encodedRequestBody, "application/x-www-form-urlencoded"); return self.clientEp->post(resourcePath, request, headers); } + + #

You can also delete webhook endpoints via the webhook endpoint management page of the Stripe dashboard.

+ # + # + headers - Headers to be sent with the request + # + return - Successful response + resource isolated function delete webhook_endpoints/[string webhookEndpoint](map headers = {}) returns DeletedWebhookEndpoint|error { + string resourcePath = string `/webhook_endpoints/${getEncodedUri(webhookEndpoint)}`; + return self.clientEp->delete(resourcePath, headers = headers); + } } diff --git a/ballerina/types.bal b/ballerina/types.bal new file mode 100644 index 0000000..b71ff30 --- /dev/null +++ b/ballerina/types.bal @@ -0,0 +1,35323 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/constraint; +import ballerina/data.jsondata; +import ballerina/http; + +# Represents the Queries record for the operation: GetIssuingAuthorizations +public type GetIssuingAuthorizationsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingAuthorizationsQueriesExpandItemsString[] expand?; + # Only return authorizations that were created during the given date interval + Created17 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return authorizations that belong to the given cardholder + @constraint:String {maxLength: 5000} + string cardholder?; + # Only return authorizations that belong to the given card + @constraint:String {maxLength: 5000} + string card?; + # Only return authorizations with the given status. One of `pending`, `closed`, or `reversed` + "closed"|"pending"|"reversed" status?; +}; + +# +public type InvoicePaymentMethodOptionsCustomerBalanceBankTransfer record { + @jsondata:Name {value: "eu_bank_transfer"} + InvoicePaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer euBankTransfer?; + # The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer` + string? 'type?; +}; + +# Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://stripe.com/docs/payments/afterpay-clearpay) for more details like country availability. Afterpay is particularly popular among businesses selling fashion, beauty, and sports products +public type PaymentMethodParam4 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Alipay is a digital wallet in China that has more than a billion active users worldwide. Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app. Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials. Check this [page](https://stripe.com/docs/payments/alipay) for more details +public type PaymentMethodParam5 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Canadian pre-authorized debit payments, check this [page](https://stripe.com/docs/payments/acss-debit) for more details like country availability +public type PaymentMethodParam2 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# A VerificationSession guides you through the process of collecting and verifying the identities +# of your users. It contains details about the type of verification, such as what [verification +# check](/docs/identity/verification-checks) to perform. Only create one VerificationSession for +# each verification in your system. +# +# A VerificationSession transitions through [multiple +# statuses](/docs/identity/how-sessions-work) throughout its lifetime as it progresses through +# the verification flow. The VerificationSession contains the user's verified data after +# verification checks are complete. +# +# Related guide: [The Verification Sessions API](https://stripe.com/docs/identity/verification-sessions) +public type IdentityVerificationSession record { + # Details provided about the user being verified. These details may be shown to the user + @jsondata:Name {value: "provided_details"} + GelatoProvidedDetails? providedDetails?; + # The user’s verified data + @jsondata:Name {value: "verified_outputs"} + GelatoVerifiedOutputs? verifiedOutputs?; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null + VerificationSessionRedaction? redaction?; + # The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed + "document"|"id_number"|"verification_flow" 'type; + # The short-lived URL that you use to redirect a user to Stripe to submit their identity information. This URL expires after 48 hours and can only be used once. Don’t store it, log it, send it in emails or expose it to anyone other than the user. Refer to our docs on [verifying identity documents](https://stripe.com/docs/identity/verify-identity-documents?platform=web&type=redirect) to learn how to redirect users to Stripe + string? url?; + # ID of the most recent VerificationReport. [Learn more about accessing detailed verification results.](https://stripe.com/docs/identity/verification-sessions#results) + @jsondata:Name {value: "last_verification_report"} + string|IdentityVerificationReport? lastVerificationReport?; + # A set of options for the session’s verification checks + GelatoVerificationSessionOptions? options?; + # A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems + @jsondata:Name {value: "client_reference_id"} + string? clientReferenceId?; + # The short-lived client secret used by Stripe.js to [show a verification modal](https://stripe.com/docs/js/identity/modal) inside your app. This client secret expires after 24 hours and can only be used once. Don’t store it, log it, embed it in a URL, or expose it to anyone other than the user. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs on [passing the client secret to the frontend](https://stripe.com/docs/identity/verification-sessions#client-secret) to learn more + @jsondata:Name {value: "client_secret"} + string? clientSecret?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # If present, this property tells you the last error encountered when processing the verification + @jsondata:Name {value: "last_error"} + GelatoSessionLastError? lastError?; + # String representing the object's type. Objects of the same type share the same value + "identity.verification_session" 'object; + # Status of this VerificationSession. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work) + "canceled"|"processing"|"requires_input"|"verified" status; + # The configuration token of a Verification Flow from the dashboard + @jsondata:Name {value: "verification_flow"} + string verificationFlow?; +}; + +# [Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments. Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest. Check this [page](https://stripe.com/docs/payments/affirm) for more details like country availability +public type PaymentMethodParam3 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +public type GetPricesQueriesLookupkeysItemsString string; + +public type DocumentsParam1Files FilesAnyOf1|FilesFilesAnyOf12; + +public type LineItemParamsDynamictaxratesItemsString string; + +public type PaymentMethodParam1 record { + @jsondata:Name {value: "account_number"} + string accountNumber?; + @jsondata:Name {value: "account_type"} + "checking"|"savings" accountType?; + @jsondata:Name {value: "financial_connections_account"} + string financialConnectionsAccount?; + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; + @jsondata:Name {value: "routing_number"} + string routingNumber?; +}; + +# Represents the Queries record for the operation: GetLinkAccountSessionsSession +public type GetLinkAccountSessionsSessionQueries record { + # Specifies which fields in the response should be expanded + GetLinkAccountSessionsSessionQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetLinkedAccountsAccount +public type GetLinkedAccountsAccountQueries record { + # Specifies which fields in the response should be expanded + GetLinkedAccountsAccountQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type PricespriceBodyExpandItemsString string; + +# Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks +public type PaymentMethodParam8 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account. Check this [page](https://stripe.com/docs/payments/au-becs-debit) for more details +public type PaymentMethodParam9 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +@constraint:String {maxLength: 5000} +public type DiscountsAnyOf1 string; + +# The Pause Collection settings determine how we will pause collection for this subscription and for how long the subscription +# should be paused +public type SubscriptionsResourcePauseCollection record { + # The time after which the subscription will resume collecting payments + @jsondata:Name {value: "resumes_at"} + int? resumesAt?; + # The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void` + "keep_as_draft"|"mark_uncollectible"|"void" behavior; +}; + +# Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon +public type PaymentMethodParam6 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Stripe users can accept [Apple Pay](/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and the [pricing](/pricing) is the same as other card transactions. Check this [page](https://stripe.com/docs/apple-pay) for more details +public type PaymentMethodParam7 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Represents the Queries record for the operation: GetPaymentMethodDomains +public type GetPaymentMethodDomainsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # The domain name that this payment method domain object represents + @http:Query {name: "domain_name"} + string domainName?; + # Specifies which fields in the response should be expanded + GetPaymentMethodDomainsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Whether this payment method domain is enabled. If the domain is not enabled, payment methods will not appear in Elements + boolean enabled?; +}; + +# Represents the Queries record for the operation: GetReportingReportRunsReportRun +public type GetReportingReportRunsReportRunQueries record { + # Specifies which fields in the response should be expanded + GetReportingReportRunsReportRunQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetTaxIds +public type GetTaxIdsQueries record { + # The account or customer the tax ID belongs to. Defaults to `owner[type]=self` + OwnerParams owner?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTaxIdsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type GetMandatesMandateQueriesExpandItemsString string; + +public type ConfigurationsconfigurationBody1 record {| + # Configurations for collecting transactions offline + record {boolean enabled;}|"" offline?; + # Specifies which fields in the response should be expanded + ConfigurationsconfigurationBody1ExpandItemsString[] expand?; + # Tipping configurations for readers supporting on-reader tips + record {record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} aud?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} cad?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} chf?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} czk?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} dkk?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} eur?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} gbp?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} hkd?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} myr?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} nok?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} nzd?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} sek?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} sgd?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} usd?;}|"" tipping?; + # An object containing device type specific settings for Verifone P400 readers + @jsondata:Name {value: "verifone_p400"} + record {string|"" splashscreen?;}|"" verifoneP400?; + # An object containing device type specific settings for BBPOS WisePOS E readers + @jsondata:Name {value: "bbpos_wisepos_e"} + record {string|"" splashscreen?;}|"" bbposWiseposE?; + # Name of the configuration + @constraint:String {maxLength: 100} + string name?; + # Reboot time settings for readers that support customized reboot time configuration + @jsondata:Name {value: "reboot_window"} + record {int end_hour; int start_hour;}|"" rebootWindow?; + # An object containing device type specific settings for Stripe S700 readers + @jsondata:Name {value: "stripe_s700"} + record {string|"" splashscreen?;}|"" stripeS700?; +|}; + +# +public type PaymentMethodDetailsCardNetworkToken record { + # Indicates if Stripe used a network token, either user provided or Stripe managed when processing the transaction + boolean used; +}; + +@constraint:String {maxLength: 5000} +public type TerminalReadersBodyExpandItemsString string; + +# A Climate product represents a type of carbon removal unit available for reservation. +# You can retrieve it to see the current price and availability +public type ClimateProduct record { + # The quantity of metric tons available for reservation + @jsondata:Name {value: "metric_tons_available"} + string metricTonsAvailable; + # Current prices for a metric ton of carbon removal in a currency's smallest unit + @jsondata:Name {value: "current_prices_per_metric_ton"} + record {|ClimateRemovalsProductsPrice...;|} currentPricesPerMetricTon; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The carbon removal suppliers that fulfill orders for this Climate product + ClimateSupplier[] suppliers; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The Climate product's name + @constraint:String {maxLength: 5000} + string name; + # Unique identifier for the object. For convenience, Climate product IDs are human-readable strings + # that start with `climsku_`. See [carbon removal inventory](https://stripe.com/docs/climate/orders/carbon-removal-inventory) + # for a list of available carbon removal products + @constraint:String {maxLength: 5000} + string id; + # The year in which the carbon removal is expected to be delivered + @jsondata:Name {value: "delivery_year"} + int? deliveryYear?; + # String representing the object's type. Objects of the same type share the same value + "climate.product" 'object; +}; + +@constraint:String {maxLength: 5000} +public type CardsidBodyExpandItemsString string; + +# +public type TreasuryTransactionsResourceTransactionList record { + # Details about each object + TreasuryTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type InboundTransfers2 record { + @jsondata:Name {value: "billing_details"} + TreasurySharedResourceBillingDetails billingDetails; + @jsondata:Name {value: "us_bank_account"} + InboundTransfersPaymentMethodDetailsUsBankAccount usBankAccount?; + # The type of the payment method used in the InboundTransfer + "us_bank_account" 'type; +}; + +# Contains settings related to adding funds to a FinancialAccount from another Account with the same owner +public type InboundTransfers1 record { + AccessWithAchDetails ach?; +}; + +public type PersonFutureRequirementsPendingverificationItemsString string; + +# +public type IssuingPersonalizationDesignRejectionReasons record { + # The reason(s) the carrier text was rejected + @jsondata:Name {value: "carrier_text"} + ("geographic_location"|"inappropriate"|"network_name"|"non_fiat_currency"|"other"|"other_entity"|"promotional_material")[]? carrierText?; + # The reason(s) the card logo was rejected + @jsondata:Name {value: "card_logo"} + ("geographic_location"|"inappropriate"|"network_name"|"non_binary_image"|"non_fiat_currency"|"other"|"other_entity"|"promotional_material")[]? cardLogo?; +}; + +# +public type AccountTosAcceptance record { + # The Unix timestamp marking when the account representative accepted their service agreement + int? date?; + # The user's service agreement type + @jsondata:Name {value: "service_agreement"} + string serviceAgreement?; + # The IP address from which the account representative accepted their service agreement + string? ip?; + # The user agent of the browser from which the account representative accepted their service agreement + @jsondata:Name {value: "user_agent"} + string? userAgent?; +}; + +# Represents the Queries record for the operation: GetInvoicesSearch +public type GetInvoicesSearchQueries record { + # Specifies which fields in the response should be expanded + GetInvoicesSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for invoices](https://stripe.com/docs/search#query-fields-for-invoices) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +@constraint:String {maxLength: 5000} +public type ConfigurationsconfigurationBodyExpandItemsString string; + +public type TreasuryFinancialAccountsBody record {| + FeatureAccess features?; + # Specifies which fields in the response should be expanded + TreasuryFinancialAccountsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "platform_restrictions"} + PlatformRestrictions platformRestrictions?; + # The currencies the FinancialAccount can hold a balance in + @jsondata:Name {value: "supported_currencies"} + TreasuryFinancialAccountsBodySupportedcurrenciesItemsString[] supportedCurrencies; +|}; + +public type BillingPortalSessionsBody record {| + # Specifies which fields in the response should be expanded + BillingPortalSessionsBodyExpandItemsString[] expand?; + # The ID of an existing [configuration](https://stripe.com/docs/api/customer_portal/configuration) to use for this session, describing its functionality and features. If not specified, the session uses the default configuration + @constraint:String {maxLength: 5000} + string configuration?; + # The `on_behalf_of` account to use for this session. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + # The default URL to redirect customers to when they click on the portal's link to return to your website + @jsondata:Name {value: "return_url"} + string returnUrl?; + @jsondata:Name {value: "flow_data"} + FlowDataParam flowData?; + # The IETF language tag of the locale customer portal is displayed in. If blank or auto, the customer’s `preferred_locales` or browser’s locale is used + "auto"|"bg"|"cs"|"da"|"de"|"el"|"en"|"en-AU"|"en-CA"|"en-GB"|"en-IE"|"en-IN"|"en-NZ"|"en-SG"|"es"|"es-419"|"et"|"fi"|"fil"|"fr"|"fr-CA"|"hr"|"hu"|"id"|"it"|"ja"|"ko"|"lt"|"lv"|"ms"|"mt"|"nb"|"nl"|"pl"|"pt"|"pt-BR"|"ro"|"ru"|"sk"|"sl"|"sv"|"th"|"tr"|"vi"|"zh"|"zh-HK"|"zh-TW" locale?; + # The ID of an existing customer + @constraint:String {maxLength: 5000} + string customer; +|}; + +@constraint:String {maxLength: 5000} +public type GetPaymentMethodDomainsPaymentMethodDomainQueriesExpandItemsString string; + +public type CurrencyOption1 record { + @jsondata:Name {value: "amount_off"} + int amountOff; +}; + +public type IntentConfirmBodyPaymentmethodtypesItemsString string; + +public type CurrencyOption4 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + int amount; +}; + +public type CurrencyOption3 record { + @jsondata:Name {value: "minimum_amount"} + int minimumAmount?; +}; + +public type CurrencyOption2 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + Tier[] tiers?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + @jsondata:Name {value: "custom_unit_amount"} + CustomUnitAmount2 customUnitAmount?; +}; + +public type CustomerSubscriptionsBody record {| + # 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` + record {|string...;|}|"" metadata?; + # Only applies to subscriptions with `collection_method=charge_automatically`. + # + # Use `allow_incomplete` to create Subscriptions with `status=incomplete` if the first invoice can't be paid. Creating Subscriptions with this status allows you to manage scenarios where additional customer actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + # + # Use `default_incomplete` to create Subscriptions with `status=incomplete` when the first invoice requires payment, otherwise start as active. Subscriptions transition to `status=active` when successfully confirming the PaymentIntent on the first invoice. This allows simpler management of scenarios where additional customer actions are needed to pay a subscription’s invoice, such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. If the PaymentIntent is not confirmed within 23 hours Subscriptions transition to `status=incomplete_expired`, which is a terminal state. + # + # Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's first invoice can't be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further customer action is needed, this parameter doesn't create a Subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more. + # + # `pending_if_incomplete` is only used with updates and cannot be passed when creating a Subscription. + # + # Subscriptions with `collection_method=send_invoice` are automatically activated regardless of the first Invoice status + @jsondata:Name {value: "payment_behavior"} + "allow_incomplete"|"default_incomplete"|"error_if_incomplete"|"pending_if_incomplete" paymentBehavior?; + # Boolean indicating whether this subscription should cancel at the end of the current period + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + # Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice` + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + # Integer representing the number of trial period days before the customer is charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_period_days"} + int trialPeriodDays?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions) + @jsondata:Name {value: "application_fee_percent"} + decimal|"" applicationFeePercent?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs3 transferData?; + # The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + # Indicates if a customer is on or off-session while an invoice payment is attempted + @jsondata:Name {value: "off_session"} + boolean offSession?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor`. If no value is passed, the default is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingsParam invoiceSettings?; + @jsondata:Name {value: "payment_settings"} + PaymentSettings paymentSettings?; + # The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_source"} + string defaultSource?; + # The ID of a promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + # ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + # Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval + @jsondata:Name {value: "pending_invoice_item_interval"} + record {"day"|"month"|"week"|"year" interval; int interval_count?;}|"" pendingInvoiceItemInterval?; + @jsondata:Name {value: "trial_settings"} + TrialSettingsConfig1 trialSettings?; + # A future timestamp in UTC format to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). The anchor is the reference point that aligns future billing cycle dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals + @jsondata:Name {value: "billing_cycle_anchor"} + int billingCycleAnchor?; + # Specifies which fields in the response should be expanded + CustomerSubscriptionsBodyExpandItemsString[] expand?; + # Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_from_plan"} + boolean trialFromPlan?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig automaticTax?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # For new subscriptions, a past timestamp to backdate the subscription's start date to. If set, the first invoice will contain a proration for the timespan between the start date and the current time. Can be combined with trials and the billing cycle anchor + @jsondata:Name {value: "backdate_start_date"} + int backdateStartDate?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + # A list of up to 20 subscription items, each with an attached price + SubscriptionItemCreateParams[] items?; + # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period + @jsondata:Name {value: "cancel_at"} + int cancelAt?; +|}; + +# Represents the Queries record for the operation: GetIssuingPhysicalBundlesPhysicalBundle +public type GetIssuingPhysicalBundlesPhysicalBundleQueries record { + # Specifies which fields in the response should be expanded + GetIssuingPhysicalBundlesPhysicalBundleQueriesExpandItemsString[] expand?; +}; + +public type OutboundTransferReturnBody record {| + # Specifies which fields in the response should be expanded + OutboundTransferReturnBodyExpandItemsString[] expand?; + @jsondata:Name {value: "returned_details"} + ReturnedDetailsParams1 returnedDetails?; +|}; + +public type BillingMetersBody record {| + # The time window to pre-aggregate meter events for, if any + @jsondata:Name {value: "event_time_window"} + "day"|"hour" eventTimeWindow?; + # Specifies which fields in the response should be expanded + BillingMetersBodyExpandItemsString[] expand?; + @jsondata:Name {value: "default_aggregation"} + AggregationSettingsParam defaultAggregation; + @jsondata:Name {value: "value_settings"} + MeterValueSettingsParam valueSettings?; + # The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events + @jsondata:Name {value: "event_name"} + string eventName; + @jsondata:Name {value: "customer_mapping"} + CustomerMappingParam customerMapping?; + # The meter's name + @jsondata:Name {value: "display_name"} + string displayName; +|}; + +public type FinancialAddresses record { + AbaAccess aba?; +}; + +# Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows +public type FlowDataParam record { + @jsondata:Name {value: "subscription_cancel"} + FlowDataSubscriptionCancelParam subscriptionCancel?; + @jsondata:Name {value: "after_completion"} + FlowDataAfterCompletionParam afterCompletion?; + "payment_method_update"|"subscription_cancel"|"subscription_update"|"subscription_update_confirm" 'type; + @jsondata:Name {value: "subscription_update"} + FlowDataSubscriptionUpdateParam subscriptionUpdate?; + @jsondata:Name {value: "subscription_update_confirm"} + FlowDataSubscriptionUpdateConfirmParam subscriptionUpdateConfirm?; +}; + +# Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer +public type RecipientShippingWithOptionalFieldsAddress record { + OptionalFieldsAddress address; + string|"" phone?; + @constraint:String {maxLength: 5000} + string name; +}; + +# Information for the account this token represents +public type ConnectJsAccountTokenSpecs record { + @jsondata:Name {value: "tos_shown_and_accepted"} + boolean tosShownAndAccepted?; + IndividualSpecs1 individual?; + @jsondata:Name {value: "business_type"} + "company"|"government_entity"|"individual"|"non_profit" businessType?; + ConnectJsAccountTokenCompanySpecs company?; +}; + +# Documents that may be submitted to satisfy various informational requests +public type PersonDocumentsSpecs1 record { + DocumentsParam5 passport?; + DocumentsParam6 visa?; + @jsondata:Name {value: "company_authorization"} + DocumentsParam4 companyAuthorization?; +}; + +# Documents that may be submitted to satisfy various informational requests +public type PersonDocumentsSpecs2 record { + DocumentsParam8 passport?; + DocumentsParam9 visa?; + @jsondata:Name {value: "company_authorization"} + DocumentsParam7 companyAuthorization?; +}; + +# Documents that may be submitted to satisfy various informational requests +public type PersonDocumentsSpecs3 record { + DocumentsParam11 passport?; + DocumentsParam12 visa?; + @jsondata:Name {value: "company_authorization"} + DocumentsParam10 companyAuthorization?; +}; + +# The Billing customer portal is a Stripe-hosted UI for subscription and +# billing management. +# +# A portal configuration describes the functionality and features that you +# want to provide to your customers through the portal. +# +# A portal session describes the instantiation of the customer portal for +# a particular customer. By visiting the session's URL, the customer +# can manage their subscriptions and billing details. For security reasons, +# sessions are short-lived and will expire if the customer does not visit the URL. +# Create sessions on-demand when customers intend to manage their subscriptions +# and billing details. +# +# Related guide: [Customer management](/customer-management) +public type BillingPortalSession record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The configuration used by this session, describing the features available + string|BillingPortalConfiguration configuration; + # The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays + @jsondata:Name {value: "on_behalf_of"} + string? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The URL to redirect customers to when they click on the portal's link to return to your website + @jsondata:Name {value: "return_url"} + string? returnUrl?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customer’s `preferred_locales` or browser’s locale is used + "auto"|"bg"|"cs"|"da"|"de"|"el"|"en"|"en-AU"|"en-CA"|"en-GB"|"en-IE"|"en-IN"|"en-NZ"|"en-SG"|"es"|"es-419"|"et"|"fi"|"fil"|"fr"|"fr-CA"|"hr"|"hu"|"id"|"it"|"ja"|"ko"|"lt"|"lv"|"ms"|"mt"|"nb"|"nl"|"pl"|"pt"|"pt-BR"|"ro"|"ru"|"sk"|"sl"|"sv"|"th"|"tr"|"vi"|"zh"|"zh-HK"|"zh-TW"? locale?; + # Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows + PortalFlowsFlow? flow?; + # The short-lived URL of the session that gives customers access to the customer portal + @constraint:String {maxLength: 5000} + string url; + # The ID of the customer for this session + @constraint:String {maxLength: 5000} + string customer; + # String representing the object's type. Objects of the same type share the same value + "billing_portal.session" 'object; +}; + +public type PersonDocumentsSpecs4 record { + DocumentsParam14 passport?; + DocumentsParam15 visa?; + @jsondata:Name {value: "company_authorization"} + DocumentsParam13 companyAuthorization?; +}; + +# +public type TreasurySharedResourceInitiatingPaymentMethodDetailsUsBankAccount record { + # The last four digits of the bank account number + string? last4?; + # Bank name + @jsondata:Name {value: "bank_name"} + string? bankName?; + # The routing number for the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; +}; + +# +public type TreasuryOutboundPaymentsResourceOutboundPaymentResourceTrackingDetails record { + TreasuryOutboundPaymentsResourceAchTrackingDetails ach?; + @jsondata:Name {value: "us_domestic_wire"} + TreasuryOutboundPaymentsResourceUsDomesticWireTrackingDetails usDomesticWire?; + # The US bank account network used to send funds + "ach"|"us_domestic_wire" 'type; +}; + +# +public type IssuingAuthorizationPendingRequest record { + # The amount the merchant is requesting to be authorized in the `merchant_currency`. The amount is in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "merchant_amount"} + int merchantAmount; + # The card network's estimate of the likelihood that an authorization is fraudulent. Takes on values between 1 and 99 + @jsondata:Name {value: "network_risk_score"} + int? networkRiskScore?; + # The additional amount Stripe will hold if the authorization is approved, in the card's [currency](https://stripe.com/docs/api#issuing_authorization_object-pending-request-currency) and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_details"} + IssuingAuthorizationAmountDetails? amountDetails?; + # The local currency the merchant is requesting to authorize + @jsondata:Name {value: "merchant_currency"} + string merchantCurrency; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization + @jsondata:Name {value: "is_amount_controllable"} + boolean isAmountControllable; +}; + +# +public type PaymentMethodCardWalletAmexExpressCheckout record { +}; + +# +public type ProductList record { + # Details about each object + Product[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/products`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type RadarListListItemList record { + RadarValueListItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/radar/value_list_items`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SubscriptionTrialEnd1SubscriptionTrialEnd1AnyOf12 int; + +public type PersonAdditionalTosAcceptancesSpecs1 record { + SettingsTermsOfServiceSpecs account?; +}; + +# +public type IssuingTransactionLodgingData record { + # The number of nights stayed at the lodging + int? nights?; + # The time of checking into the lodging + @jsondata:Name {value: "check_in_at"} + int? checkInAt?; +}; + +# ConfirmationTokens help transport client side data collected by Stripe JS over +# to your server for confirming a PaymentIntent or SetupIntent. If the confirmation +# is successful, values present on the ConfirmationToken are written onto the Intent. +# +# To learn more about how to use ConfirmationToken, visit the related guides: +# - [Finalize payments on the server](https://stripe.com/docs/payments/finalize-payments-on-the-server) +# - [Build two-step confirmation](https://stripe.com/docs/payments/build-a-two-step-confirmation) +public type ConfirmationToken record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # ID of the SetupIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used + @jsondata:Name {value: "setup_intent"} + string? setupIntent?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Payment details collected by the Payment Element, used to create a PaymentMethod when a PaymentIntent or SetupIntent is confirmed with this ConfirmationToken + @jsondata:Name {value: "payment_method_preview"} + ConfirmationTokensResourcePaymentMethodPreview? paymentMethodPreview?; + # Indicates that you intend to make future payments with this ConfirmationToken's payment method. + # + # The presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session"? setupFutureUsage?; + # Time at which this ConfirmationToken expires and can no longer be used to confirm a PaymentIntent or SetupIntent + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Shipping information collected on this ConfirmationToken + ConfirmationTokensResourceShipping? shipping?; + # Return URL used to confirm the Intent + @jsondata:Name {value: "return_url"} + string? returnUrl?; + # ID of the PaymentIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used + @jsondata:Name {value: "payment_intent"} + string? paymentIntent?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Payment-method-specific configuration for this ConfirmationToken + @jsondata:Name {value: "payment_method_options"} + ConfirmationTokensResourcePaymentMethodOptions? paymentMethodOptions?; + # Data used for generating a Mandate + @jsondata:Name {value: "mandate_data"} + ConfirmationTokensResourceMandateData? mandateData?; + # Indicates whether the Stripe SDK is used to handle confirmation flow. Defaults to `true` on ConfirmationToken + @jsondata:Name {value: "use_stripe_sdk"} + boolean useStripeSdk; + # String representing the object's type. Objects of the same type share the same value + "confirmation_token" 'object; +}; + +# +public type DeletedSubscriptionItem record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "subscription_item" 'object; +}; + +# Represents the Queries record for the operation: GetConfirmationTokensConfirmationToken +public type GetConfirmationTokensConfirmationTokenQueries record { + # Specifies which fields in the response should be expanded + GetConfirmationTokensConfirmationTokenQueriesExpandItemsString[] expand?; +}; + +# An Issuing `Cardholder` object represents an individual or business entity who is [issued](https://stripe.com/docs/issuing) cards. +# +# Related guide: [How to create a cardholder](https://stripe.com/docs/issuing/cards#create-cardholder) +public type IssuingCardholder record { + # 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 + record {|string...;|} metadata; + IssuingCardholderRequirements requirements; + # Additional information about an `individual` cardholder + IssuingCardholderIndividual? individual?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details + @jsondata:Name {value: "spending_controls"} + IssuingCardholderAuthorizationControls? spendingControls?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # One of `individual` or `company`. See [Choose a cardholder type](https://stripe.com/docs/issuing/other/choose-cardholder) for more details + "company"|"individual" 'type; + IssuingCardholderAddress billing; + # The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + # This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder + @jsondata:Name {value: "preferred_locales"} + ("de"|"en"|"es"|"fr"|"it")[]? preferredLocales?; + # The cardholder's name. This will be printed on cards issued to them + @constraint:String {maxLength: 5000} + string name; + # Additional information about a `company` cardholder + IssuingCardholderCompany? company?; + # The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied) for more details + @jsondata:Name {value: "phone_number"} + string? phoneNumber?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The cardholder's email address + string? email?; + # String representing the object's type. Objects of the same type share the same value + "issuing.cardholder" 'object; + # Specifies whether to permit authorizations on this cardholder's cards + "active"|"blocked"|"inactive" status; +}; + +@constraint:String {maxLength: 5000} +public type ClimateOrdersBodyExpandItemsString string; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceUnappliedFromPaymentTransaction record { + # The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were unapplied from + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent paymentIntent; +}; + +@constraint:String {maxLength: 5000} +public type GetSetupIntentsQueriesExpandItemsString string; + +public type DueDateRangeQuerySpecs182 int; + +# The desired PIN for this card +public type EncryptedPinParam record { + @jsondata:Name {value: "encrypted_number"} + string encryptedNumber?; +}; + +public type AccountRefreshBody1 record {| + # The list of account features that you would like to refresh + ("balance"|"ownership"|"transactions")[] features; + # Specifies which fields in the response should be expanded + AccountRefreshBody1ExpandItemsString[] expand?; +|}; + +# Account Links are the means by which a Connect platform grants a connected account permission to access +# Stripe-hosted applications, such as Connect Onboarding. +# +# Related guide: [Connect Onboarding](https://stripe.com/docs/connect/custom/hosted-onboarding) +public type AccountLink record { + # The timestamp at which this account link will expire + @jsondata:Name {value: "expires_at"} + int expiresAt; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The URL for the account link + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "account_link" 'object; +}; + +# A subset of parameters to be passed to SetupIntent creation for Checkout Sessions in `setup` mode +public type SetupIntentDataParam record { + record {|string...;|} metadata?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @constraint:String {maxLength: 1000} + string description?; +}; + +# A billing meter event summary represents an aggregated view of a customer's billing meter events within a specified timeframe. It indicates how much +# usage was accrued by a customer for that period +public type BillingMeterEventSummary record { + # Start timestamp for this event summary (inclusive). Must be aligned with minute boundaries + @jsondata:Name {value: "start_time"} + int startTime; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The meter associated with this event summary + @constraint:String {maxLength: 5000} + string meter; + # Aggregated value of all the events within `start_time` (inclusive) and `end_time` (inclusive). The aggregation strategy is defined on meter via `default_aggregation` + @jsondata:Name {value: "aggregated_value"} + decimal aggregatedValue; + # End timestamp for this event summary (exclusive). Must be aligned with minute boundaries + @jsondata:Name {value: "end_time"} + int endTime; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "billing.meter_event_summary" 'object; +}; + +# +public type PaymentMethodCardWalletMasterpass record { + # Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? name?; + # Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "billing_address"} + Address? billingAddress?; + # Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "shipping_address"} + Address? shippingAddress?; + # Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? email?; +}; + +# Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set +public type CustomerDetailsParam record { + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string name; string phone?;}|"" shipping?; + @jsondata:Name {value: "tax_ids"} + DataParams[] taxIds?; + @jsondata:Name {value: "tax_exempt"} + ""|"exempt"|"none"|"reverse" taxExempt?; + TaxParam1 tax?; +}; + +public type SubscriptionsResourceSubscriptionInvoiceSettingsAccountTaxIds AccountTaxIdsAnyOf15|TaxId|DeletedTaxId; + +@constraint:String {maxLength: 5000} +public type GetCheckoutSessionsQueriesExpandItemsString string; + +# A test clock enables deterministic control over objects in testmode. With a test clock, you can create +# objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances, +# you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time +public type TestHelpersTestClock record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Time at which all objects belonging to this clock are frozen + @jsondata:Name {value: "frozen_time"} + int frozenTime; + # Time at which this clock is scheduled to auto delete + @jsondata:Name {value: "deletes_after"} + int deletesAfter; + # The custom name supplied at creation + string? name?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "test_helpers.test_clock" 'object; + # The status of the Test Clock + "advancing"|"internal_failure"|"ready" status; +}; + +# +public type CheckoutAmazonPayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +public type SubscriptionDefaultTaxRates1SubscriptionDefaultTaxRates1AnyOf12 ""; + +public type Period2 record { + int 'start; + int end; +}; + +# The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details +public type Period1 record { + int 'start; + int end; +}; + +# Optional parameters for the receiver flow. Can be set only if the source is a receiver (`flow` is `receiver`) +public type ReceiverParams record { + @jsondata:Name {value: "refund_attributes_method"} + "email"|"manual"|"none" refundAttributesMethod?; +}; + +# Represents the Queries record for the operation: GetSigmaScheduledQueryRuns +public type GetSigmaScheduledQueryRunsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSigmaScheduledQueryRunsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Represents the Queries record for the operation: GetTreasuryReceivedDebitsId +public type GetTreasuryReceivedDebitsIdQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryReceivedDebitsIdQueriesExpandItemsString[] expand?; +}; + +public type Created11RangeQuerySpecs112 int; + +public type PersonFutureRequirementsPastdueItemsString string; + +# Represents the Queries record for the operation: GetCheckoutSessionsSession +public type GetCheckoutSessionsSessionQueries record { + # Specifies which fields in the response should be expanded + GetCheckoutSessionsSessionQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetChargesCharge +public type GetChargesChargeQueries record { + # Specifies which fields in the response should be expanded + GetChargesChargeQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodSepaDebit record { + # Branch code of bank associated with the bank account + @jsondata:Name {value: "branch_code"} + string? branchCode?; + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Two-letter ISO code representing the country the bank account is located in + string? country?; + # Last four characters of the IBAN + string? last4?; + # Information about the object that generated this PaymentMethod + @jsondata:Name {value: "generated_from"} + SepaDebitGeneratedFrom? generatedFrom?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; +}; + +# +public type PaymentMethodDetailsGrabpay record { + # Unique transaction id generated by GrabPay + @jsondata:Name {value: "transaction_id"} + string? transactionId?; +}; + +public type AccountFeaturesParam record { + @jsondata:Name {value: "external_account_collection"} + boolean externalAccountCollection?; +}; + +@constraint:String {maxLength: 5000} +public type CustomerSessionsBodyExpandItemsString string; + +# +public type PaymentMethodUsBankAccountStatusDetails record { + PaymentMethodUsBankAccountBlocked blocked?; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesOvercaptureOvercapture record { + # The maximum amount that can be captured + @jsondata:Name {value: "maximum_amount_capturable"} + int maximumAmountCapturable; + # Indicates whether or not the authorized amount can be over-captured + "available"|"unavailable" status; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersQueriesExpandItemsString string; + +# +public type PaymentMethodBancontact record { +}; + +# +public type RefundNextActionDisplayDetails record { + @jsondata:Name {value: "email_sent"} + EmailSent emailSent; + # The expiry timestamp + @jsondata:Name {value: "expires_at"} + int expiresAt; +}; + +public type AccountRequirementsEventuallydueItemsString string; + +# A customer's `Cash balance` represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account +public type CashBalance record { + CustomerBalanceCustomerBalanceSettings settings; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + record {|int...;|}? available?; + # The ID of the customer whose cash balance this object represents + @constraint:String {maxLength: 5000} + string customer; + # String representing the object's type. Objects of the same type share the same value + "cash_balance" 'object; +}; + +# +public type PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode record { + # The URL to the hosted Swish instructions page, which allows customers to view the QR code + @jsondata:Name {value: "hosted_instructions_url"} + string hostedInstructionsUrl; + @jsondata:Name {value: "qr_code"} + PaymentIntentNextActionSwishQrCode qrCode; +}; + +# Represents the Queries record for the operation: GetCheckoutSessions +public type GetCheckoutSessionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Only return the Checkout Sessions for the Customer details specified + @http:Query {name: "customer_details"} + CustomerDetailsParams customerDetails?; + # Specifies which fields in the response should be expanded + GetCheckoutSessionsQueriesExpandItemsString[] expand?; + # Only return Checkout Sessions that were created during the given date interval + Created5 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return the Checkout Session for the PaymentIntent specified + @http:Query {name: "payment_intent"} + string paymentIntent?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return the Checkout Session for the subscription specified + @constraint:String {maxLength: 5000} + string subscription?; + # Only return the Checkout Sessions for the Payment Link specified + @http:Query {name: "payment_link"} + string paymentLink?; + # Only return the Checkout Sessions for the Customer specified + @constraint:String {maxLength: 5000} + string customer?; + # Only return the Checkout Sessions matching the given status + "complete"|"expired"|"open" status?; +}; + +# +public type AccountRequirements record { + # Fields that need to be collected to keep the account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled + @jsondata:Name {value: "currently_due"} + AccountRequirementsCurrentlydueItemsString[]? currentlyDue?; + # Date by which the fields in `currently_due` must be collected to keep the account enabled. These fields may disable the account sooner if the next threshold is reached before they are collected + @jsondata:Name {value: "current_deadline"} + int? currentDeadline?; + # Fields that are due and can be satisfied by providing the corresponding alternative fields instead + AccountRequirementsAlternative[]? alternatives?; + # Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set + @jsondata:Name {value: "eventually_due"} + AccountRequirementsEventuallydueItemsString[]? eventuallyDue?; + # Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the account + @jsondata:Name {value: "past_due"} + AccountRequirementsPastdueItemsString[]? pastDue?; + # If the account is disabled, this string describes why. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification). Can be `action_required.requested_capabilities`, `requirements.past_due`, `requirements.pending_verification`, `listed`, `platform_paused`, `rejected.fraud`, `rejected.incomplete_verification`, `rejected.listed`, `rejected.other`, `rejected.terms_of_service`, `under_review`, or `other` + @jsondata:Name {value: "disabled_reason"} + string? disabledReason?; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[]? errors?; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + AccountRequirementsPendingverificationItemsString[]? pendingVerification?; +}; + +# +public type PortalBusinessProfile record { + # A link to the business’s publicly available privacy policy + @jsondata:Name {value: "privacy_policy_url"} + string? privacyPolicyUrl?; + # The messaging shown to customers in the portal + string? headline?; + # A link to the business’s publicly available terms of service + @jsondata:Name {value: "terms_of_service_url"} + string? termsOfServiceUrl?; +}; + +@constraint:String {maxLength: 5000} +public type TokenstokenBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetPaymentIntentsIntent +public type GetPaymentIntentsIntentQueries record { + # Specifies which fields in the response should be expanded + GetPaymentIntentsIntentQueriesExpandItemsString[] expand?; + # The client secret of the PaymentIntent. We require it if you use a publishable key to retrieve the source + @http:Query {name: "client_secret"} + string clientSecret?; +}; + +# When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note +public type CreditNoteShippingCost record { + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; +}; + +# +public type PaymentMethodPaynow record { +}; + +# Represents the Queries record for the operation: GetCustomersCustomerCashBalanceTransactions +public type GetCustomersCustomerCashBalanceTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerCashBalanceTransactionsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingCardsQueriesExpandItemsString string; + +public type LocalAmusementTax record { + @constraint:String {maxLength: 5000} + string jurisdiction; +}; + +# +public type GelatoReportIdNumberOptions record { +}; + +# OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico. OXXO allows customers to pay bills and online purchases in-store with cash. Check this [page](https://stripe.com/docs/payments/oxxo) for more details +public type PaymentMethodParam30 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed +public type AutomaticTaxConfig record { + Param liability?; + boolean enabled; +}; + +# PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions. Check this [page](https://stripe.com/docs/payments/paynow) for more details +public type PaymentMethodParam32 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# A Financial Connections Session is the secure way to programmatically launch the client-side Stripe.js modal that lets your users link their accounts +public type FinancialConnectionsSession record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The account holder for whom accounts are collected in this session + @jsondata:Name {value: "account_holder"} + BankConnectionsResourceAccountholder? accountHolder?; + # Permissions requested for accounts collected during this session + ("balances"|"ownership"|"payment_method"|"transactions")[] permissions; + # Data features requested to be retrieved upon account creation + ("balances"|"ownership"|"transactions")[]? prefetch?; + # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app + @jsondata:Name {value: "return_url"} + string returnUrl?; + BankConnectionsResourceLinkedAccountList1 accounts; + # A value that will be passed to the client to launch the authentication flow + @jsondata:Name {value: "client_secret"} + string clientSecret; + BankConnectionsResourceLinkAccountSessionFilters filters?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "financial_connections.session" 'object; +}; + +# Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods. Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks. Check this [page](https://stripe.com/docs/payments/p24) for more details +public type PaymentMethodParam31 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks. Check this [page](https://stripe.com/docs/payments/promptpay) for more details +public type PaymentMethodParam34 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account. Check this [page](https://stripe.com/docs/payments/paypal) for more details +public type PaymentMethodParam33 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries. SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://stripe.com/docs/payments/sepa-debit) for more details +public type PaymentMethodParam36 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method. Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase +public type PaymentMethodParam35 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Swish is a [real-time](https://stripe.com/docs/payments/real-time) payment method popular in Sweden. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app. Check this [page](https://stripe.com/docs/payments/swish) for more details +public type PaymentMethodParam38 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers. Check this [page](https://stripe.com/docs/payments/sofort) for more details +public type PaymentMethodParam37 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# +public type TerminalConfigurationConfigurationResourceTipping record { + TerminalConfigurationConfigurationResourceCurrencySpecificConfig chf?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig hkd?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig eur?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig dkk?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig cad?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig myr?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig usd?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig nok?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig aud?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig sgd?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig gbp?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig czk?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig sek?; + TerminalConfigurationConfigurationResourceCurrencySpecificConfig nzd?; +}; + +@constraint:String {maxLength: 5000} +public type OrdersorderBodyExpandItemsString string; + +# Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha. Check this [page](https://stripe.com/docs/payments/ach-debit) for more details +public type PaymentMethodParam39 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# The parameters that you can use to automatically create a Transfer. +# Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) +public type TransferDataCreationParams record { + int amount?; + string destination; +}; + +# Settings related to Financial Addresses features on a Financial Account +public type TreasuryFinancialAccountsResourceFinancialAddressesFeatures record { + TreasuryFinancialAccountsResourceAbaToggleSettings aba?; +}; + +# +public type PaymentMethodDetailsLink record { + # Two-letter ISO code representing the funding source country beneath the Link payment. + # You could use this attribute to get a sense of international fees + string? country?; +}; + +# +public type PaymentMethodDetailsCardWalletAmexExpressCheckout record { +}; + +# Configuration settings for the PaymentIntent that is generated when the invoice is finalized +public type PaymentSettings1 record { + @jsondata:Name {value: "default_mandate"} + string|"" defaultMandate?; + @jsondata:Name {value: "payment_method_types"} + ("ach_credit_transfer"|"ach_debit"|"acss_debit"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"konbini"|"link"|"p24"|"paynow"|"paypal"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"us_bank_account"|"wechat_pay")[]|"" paymentMethodTypes?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptions1 paymentMethodOptions?; +}; + +# +public type InvoicesResourceStatusTransitions record { + # The time that the invoice draft was finalized + @jsondata:Name {value: "finalized_at"} + int? finalizedAt?; + # The time that the invoice was paid + @jsondata:Name {value: "paid_at"} + int? paidAt?; + # The time that the invoice was voided + @jsondata:Name {value: "voided_at"} + int? voidedAt?; + # The time that the invoice was marked uncollectible + @jsondata:Name {value: "marked_uncollectible_at"} + int? markedUncollectibleAt?; +}; + +# +public type TerminalConfigurationConfigurationList record { + TerminalConfiguration[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/terminal/configurations`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type ShippingRatesBody record {| + # Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified` + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + # Specifies which fields in the response should be expanded + ShippingRatesBodyExpandItemsString[] expand?; + @jsondata:Name {value: "fixed_amount"} + FixedAmount1 fixedAmount?; + # 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` + record {|string...;|} metadata?; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001` + @jsondata:Name {value: "tax_code"} + string taxCode?; + # The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions + @jsondata:Name {value: "display_name"} + string displayName; + # The type of calculation to use on the shipping rate + "fixed_amount" 'type?; + @jsondata:Name {value: "delivery_estimate"} + DeliveryEstimate1 deliveryEstimate?; +|}; + +# Represents the Queries record for the operation: GetTreasuryReceivedCreditsId +public type GetTreasuryReceivedCreditsIdQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryReceivedCreditsIdQueriesExpandItemsString[] expand?; +}; + +# Zip gives your customers a way to split purchases over a series of payments. Check this [page](https://stripe.com/docs/payments/zip) for more details like country availability +public type PaymentMethodParam41 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users. Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites. WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition. Check this [page](https://stripe.com/docs/payments/wechat-pay) for more details +public type PaymentMethodParam40 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method +public type PaymentMethodParam43 record { + @jsondata:Name {value: "account_number"} + string accountNumber?; + @jsondata:Name {value: "account_type"} + "checking"|"savings" accountType?; + @jsondata:Name {value: "financial_connections_account"} + string financialConnectionsAccount?; + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; + @jsondata:Name {value: "routing_number"} + string routingNumber?; +}; + +# When you enable this parameter, this PaymentIntent accepts payment methods that you enable in the Dashboard and that are compatible with this PaymentIntent's other parameters +public type AutomaticPaymentMethodsParam record { + @jsondata:Name {value: "allow_redirects"} + "always"|"never" allowRedirects?; + boolean enabled; +}; + +# If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method +public type PaymentMethodParam42 record { + @jsondata:Name {value: "account_number"} + string accountNumber; + @jsondata:Name {value: "institution_number"} + string institutionNumber; + @jsondata:Name {value: "transit_number"} + string transitNumber; +}; + +public type AmountRangeQuerySpecs492 int; + +# Additional details on the FinancialAccount Features information +public type TreasuryFinancialAccountsResourceTogglesSettingStatusDetails record { + # Represents the reason why the status is `pending` or `restricted` + "activating"|"capability_not_requested"|"financial_account_closed"|"rejected_other"|"rejected_unsupported_business"|"requirements_past_due"|"requirements_pending_verification"|"restricted_by_platform"|"restricted_other" code; + # The `platform_restrictions` that are restricting this Feature + "inbound_flows"|"outbound_flows" restriction?; + # Represents what the user should do, if anything, to activate the Feature + "contact_stripe"|"provide_information"|"remove_restriction"? resolution?; +}; + +# +public type LineItemsTaxAmount record { + # Amount of tax applied for this rate + int amount; + # The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported + @jsondata:Name {value: "taxability_reason"} + "customer_exempt"|"not_collecting"|"not_subject_to_tax"|"not_supported"|"portion_product_exempt"|"portion_reduced_rated"|"portion_standard_rated"|"product_exempt"|"product_exempt_holiday"|"proportionally_rated"|"reduced_rated"|"reverse_charge"|"standard_rated"|"taxable_basis_reduced"|"zero_rated"? taxabilityReason?; + TaxRate rate; + # The amount on which tax is calculated, in cents (or local equivalent) + @jsondata:Name {value: "taxable_amount"} + int? taxableAmount?; +}; + +@constraint:String {maxLength: 5000} +public type GetEventsQueriesTypesItemsString string; + +# Represents the Queries record for the operation: GetIssuingAuthorizationsAuthorization +public type GetIssuingAuthorizationsAuthorizationQueries record { + # Specifies which fields in the response should be expanded + GetIssuingAuthorizationsAuthorizationQueriesExpandItemsString[] expand?; +}; + +public type SetupIntentPaymentmethodtypesItemsString string; + +public type WebhookEndpointEnabledeventsItemsString string; + +public type SubscriptionCancellationReasonUpdatingParam record { + ("customer_service"|"low_quality"|"missing_features"|"other"|"switched_service"|"too_complex"|"too_expensive"|"unused")[]|"" options?; + boolean enabled; +}; + +# Represents the Queries record for the operation: GetSubscriptionSchedulesSchedule +public type GetSubscriptionSchedulesScheduleQueries record { + # Specifies which fields in the response should be expanded + GetSubscriptionSchedulesScheduleQueriesExpandItemsString[] expand?; +}; + +# Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://stripe.com/docs/payments/payment-methods/bacs-debit) for more details +public type PaymentMethodParam10 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# BLIK is a [single use](https://stripe.com/docs/payments/payment-methods#usage) payment method that requires customers to authenticate their payments. When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form. Check this [page](https://stripe.com/docs/payments/blik) for more details +public type PaymentMethodParam12 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation. [Customers](https://stripe.com/docs/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately. Check this [page](https://stripe.com/docs/payments/bancontact) for more details +public type PaymentMethodParam11 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Cards are a popular way for consumers and businesses to pay online or in person. Stripe supports global and local card networks +public type PaymentMethodParam14 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# +public type RadarReviewResourceSession record { + # The browser used in this browser session (e.g., `Chrome`) + string? browser?; + # Information about the device used for the browser session (e.g., `Samsung SM-G930T`) + string? device?; + # The version for the browser session (e.g., `61.0.3163.100`) + string? version?; + # The platform for the browser session (e.g., `Macintosh`) + string? platform?; +}; + +# Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil. Check this [page](https://stripe.com/docs/payments/boleto) for more details +public type PaymentMethodParam13 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet. Check this [page](https://stripe.com/docs/payments/cash-app-pay) for more details +public type PaymentMethodParam16 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Cartes Bancaires is France's local card network. More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks. Check this [page](https://stripe.com/docs/payments/cartes-bancaires) for more details +public type PaymentMethodParam15 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials. EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers. Check this [page](https://stripe.com/docs/payments/eps) for more details +public type PaymentMethodParam18 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Uses a customer’s [cash balance](https://stripe.com/docs/payments/customer-balance) for the payment. The cash balance can be funded via a bank transfer. Check this [page](https://stripe.com/docs/payments/bank-transfers) for more details +public type PaymentMethodParam17 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# +public type PaymentLinksResourceCustomFieldsLabel record { + # Custom text for the label, displayed to the customer. Up to 50 characters + string? custom?; + # The type of the label + "custom" 'type; +}; + +# Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM. Check this [page](https://stripe.com/docs/payments/fpx) for more details +public type PaymentMethodParam19 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +@constraint:String {maxLength: 5000} +public type TerminalConfigurationsBodyExpandItemsString string; + +# +public type ConnectEmbeddedAccountFeaturesClaim record { + # Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for custom accounts (or accounts where the platform is compliance owner). Otherwise, bank account collection is determined by compliance requirements + @jsondata:Name {value: "external_account_collection"} + boolean externalAccountCollection; +}; + +public type PhaseConfigurationParams3 record { + @jsondata:Name {value: "end_date"} + int endDate?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettings2 invoiceSettings?; + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + record {|string...;|} metadata?; + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + string|"" description?; + @jsondata:Name {value: "trial_end"} + int trialEnd?; + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start" billingCycleAnchor?; + int iterations?; + boolean trial?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs2 transferData?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig3 automaticTax?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + string currency?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + ConfigurationItemParams[] items; +}; + +public type PhaseConfigurationParams1 record { + @jsondata:Name {value: "end_date"} + int|"now" endDate?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettings1 invoiceSettings?; + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + record {|string...;|} metadata?; + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + string|"" description?; + @jsondata:Name {value: "trial_end"} + int|"now" trialEnd?; + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start" billingCycleAnchor?; + int iterations?; + boolean trial?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs2 transferData?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig2 automaticTax?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + ConfigurationItemParams[] items; + @jsondata:Name {value: "start_date"} + int|"now" startDate?; +}; + +public type PhaseConfigurationParams2 record { + @jsondata:Name {value: "end_date"} + int|"now" endDate?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettings2 invoiceSettings?; + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + record {|string...;|} metadata?; + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + string|"" description?; + @jsondata:Name {value: "trial_end"} + int|"now" trialEnd?; + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start" billingCycleAnchor?; + int iterations?; + boolean trial?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs2 transferData?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig3 automaticTax?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + ConfigurationItemParams[] items; + @jsondata:Name {value: "start_date"} + int|"now" startDate?; +}; + +# +public type SourceCodeVerificationFlow record { + # The number of attempts remaining to authenticate the source object with a verification code + @jsondata:Name {value: "attempts_remaining"} + int attemptsRemaining; + # The status of the code verification, either `pending` (awaiting verification, `attempts_remaining` should be greater than 0), `succeeded` (successful verification) or `failed` (failed verification, cannot be verified anymore as `attempts_remaining` should be 0) + @constraint:String {maxLength: 5000} + string status; +}; + +public type CustomerscustomerBodyPreferredlocalesItemsString string; + +# +public type PaymentIntentNextActionRedirectToUrl record { + # If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion + @jsondata:Name {value: "return_url"} + string? returnUrl?; + # The URL you must redirect your customer to in order to authenticate the payment + string? url?; +}; + +# Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device. Use the Google Pay API to request any credit or debit card stored in your customer's Google account. Check this [page](https://stripe.com/docs/google-pay) for more details +public type PaymentMethodParam21 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +public type DateOfBirthSpecs record { + int month; + int year; + int day; +}; + +# giropay is a German payment method based on online banking, introduced in 2006. It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account. Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN. giropay accounts for 10% of online checkouts in Germany. Check this [page](https://stripe.com/docs/payments/giropay) for more details +public type PaymentMethodParam20 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials. All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%. Check this [page](https://stripe.com/docs/payments/ideal) for more details +public type PaymentMethodParam23 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/). GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with. Check this [page](https://stripe.com/docs/payments/grabpay) for more details +public type PaymentMethodParam22 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Klarna gives customers a range of [payment options](https://stripe.com/docs/payments/klarna#payment-options) during checkout. Available payment options vary depending on the customer's billing address and the transaction amount. These payment options make it convenient for customers to purchase items in all price ranges. Check this [page](https://stripe.com/docs/payments/klarna) for more details +public type PaymentMethodParam25 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# JCB is a credit card company based in Japan. JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland. Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details +public type PaymentMethodParam24 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# +public type PaymentMethodOptionsCardPresent record { + PaymentMethodOptionsCardPresentRouting routing?; + # Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support + @jsondata:Name {value: "request_incremental_authorization_support"} + boolean? requestIncrementalAuthorizationSupport?; + # Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity) + @jsondata:Name {value: "request_extended_authorization"} + boolean? requestExtendedAuthorization?; +}; + +# [Link](https://stripe.com/docs/payments/link) is a payment method network. With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network +public type PaymentMethodParam27 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash. Check this [page](https://stripe.com/docs/payments/konbini) for more details +public type PaymentMethodParam26 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# An object containing device type specific settings for Stripe S700 readers +public type StripeS700 record { + string|"" splashscreen?; +}; + +# Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method +public type PaymentMethodParam29 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +# MobilePay is a [single-use](https://stripe.com/docs/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the MobilePay app. Check this [page](https://stripe.com/docs/payments/mobilepay) for more details +public type PaymentMethodParam28 record { + @jsondata:Name {value: "display_preference"} + DisplayPreferenceParam displayPreference?; +}; + +public type ReaderProcessPaymentIntentBody record {| + # Specifies which fields in the response should be expanded + ReaderProcessPaymentIntentBodyExpandItemsString[] expand?; + @jsondata:Name {value: "process_config"} + ProcessConfig processConfig?; + # PaymentIntent ID + @jsondata:Name {value: "payment_intent"} + string paymentIntent; +|}; + +# +public type DeletedApplePayDomain record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "apple_pay_domain" 'object; +}; + +public type CheckoutSessionPaymentmethodtypesItemsString string; + +# +public type BillingMeterResourceBillingMeterEventAdjustmentCancel record { + # Unique identifier for the event + string? identifier?; +}; + +public type PersonVerificationParam record { + PersonVerificationDocumentParam document?; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxCalculationsCalculationLineItemsQueriesExpandItemsString string; + +public type SourceTypeBancontact record { + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + @jsondata:Name {value: "bank_code"} + string? bankCode?; + @jsondata:Name {value: "bank_name"} + string? bankName?; + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + string? bic?; + @jsondata:Name {value: "preferred_language"} + string? preferredLanguage?; +}; + +public type WebhookEndpointsBody record {| + # Specifies which fields in the response should be expanded + WebhookEndpointsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection + @jsondata:Name {value: "enabled_events"} + ("*"|"account.application.authorized"|"account.application.deauthorized"|"account.external_account.created"|"account.external_account.deleted"|"account.external_account.updated"|"account.updated"|"application_fee.created"|"application_fee.refund.updated"|"application_fee.refunded"|"balance.available"|"billing_portal.configuration.created"|"billing_portal.configuration.updated"|"billing_portal.session.created"|"capability.updated"|"cash_balance.funds_available"|"charge.captured"|"charge.dispute.closed"|"charge.dispute.created"|"charge.dispute.funds_reinstated"|"charge.dispute.funds_withdrawn"|"charge.dispute.updated"|"charge.expired"|"charge.failed"|"charge.pending"|"charge.refund.updated"|"charge.refunded"|"charge.succeeded"|"charge.updated"|"checkout.session.async_payment_failed"|"checkout.session.async_payment_succeeded"|"checkout.session.completed"|"checkout.session.expired"|"climate.order.canceled"|"climate.order.created"|"climate.order.delayed"|"climate.order.delivered"|"climate.order.product_substituted"|"climate.product.created"|"climate.product.pricing_updated"|"coupon.created"|"coupon.deleted"|"coupon.updated"|"credit_note.created"|"credit_note.updated"|"credit_note.voided"|"customer.created"|"customer.deleted"|"customer.discount.created"|"customer.discount.deleted"|"customer.discount.updated"|"customer.source.created"|"customer.source.deleted"|"customer.source.expiring"|"customer.source.updated"|"customer.subscription.created"|"customer.subscription.deleted"|"customer.subscription.paused"|"customer.subscription.pending_update_applied"|"customer.subscription.pending_update_expired"|"customer.subscription.resumed"|"customer.subscription.trial_will_end"|"customer.subscription.updated"|"customer.tax_id.created"|"customer.tax_id.deleted"|"customer.tax_id.updated"|"customer.updated"|"customer_cash_balance_transaction.created"|"entitlements.active_entitlement_summary.updated"|"file.created"|"financial_connections.account.created"|"financial_connections.account.deactivated"|"financial_connections.account.disconnected"|"financial_connections.account.reactivated"|"financial_connections.account.refreshed_balance"|"financial_connections.account.refreshed_ownership"|"financial_connections.account.refreshed_transactions"|"identity.verification_session.canceled"|"identity.verification_session.created"|"identity.verification_session.processing"|"identity.verification_session.redacted"|"identity.verification_session.requires_input"|"identity.verification_session.verified"|"invoice.created"|"invoice.deleted"|"invoice.finalization_failed"|"invoice.finalized"|"invoice.marked_uncollectible"|"invoice.paid"|"invoice.payment_action_required"|"invoice.payment_failed"|"invoice.payment_succeeded"|"invoice.sent"|"invoice.upcoming"|"invoice.updated"|"invoice.voided"|"invoiceitem.created"|"invoiceitem.deleted"|"issuing_authorization.created"|"issuing_authorization.request"|"issuing_authorization.updated"|"issuing_card.created"|"issuing_card.updated"|"issuing_cardholder.created"|"issuing_cardholder.updated"|"issuing_dispute.closed"|"issuing_dispute.created"|"issuing_dispute.funds_reinstated"|"issuing_dispute.submitted"|"issuing_dispute.updated"|"issuing_personalization_design.activated"|"issuing_personalization_design.deactivated"|"issuing_personalization_design.rejected"|"issuing_personalization_design.updated"|"issuing_token.created"|"issuing_token.updated"|"issuing_transaction.created"|"issuing_transaction.updated"|"mandate.updated"|"payment_intent.amount_capturable_updated"|"payment_intent.canceled"|"payment_intent.created"|"payment_intent.partially_funded"|"payment_intent.payment_failed"|"payment_intent.processing"|"payment_intent.requires_action"|"payment_intent.succeeded"|"payment_link.created"|"payment_link.updated"|"payment_method.attached"|"payment_method.automatically_updated"|"payment_method.detached"|"payment_method.updated"|"payout.canceled"|"payout.created"|"payout.failed"|"payout.paid"|"payout.reconciliation_completed"|"payout.updated"|"person.created"|"person.deleted"|"person.updated"|"plan.created"|"plan.deleted"|"plan.updated"|"price.created"|"price.deleted"|"price.updated"|"product.created"|"product.deleted"|"product.updated"|"promotion_code.created"|"promotion_code.updated"|"quote.accepted"|"quote.canceled"|"quote.created"|"quote.finalized"|"radar.early_fraud_warning.created"|"radar.early_fraud_warning.updated"|"refund.created"|"refund.updated"|"reporting.report_run.failed"|"reporting.report_run.succeeded"|"reporting.report_type.updated"|"review.closed"|"review.opened"|"setup_intent.canceled"|"setup_intent.created"|"setup_intent.requires_action"|"setup_intent.setup_failed"|"setup_intent.succeeded"|"sigma.scheduled_query_run.created"|"source.canceled"|"source.chargeable"|"source.failed"|"source.mandate_notification"|"source.refund_attributes_required"|"source.transaction.created"|"source.transaction.updated"|"subscription_schedule.aborted"|"subscription_schedule.canceled"|"subscription_schedule.completed"|"subscription_schedule.created"|"subscription_schedule.expiring"|"subscription_schedule.released"|"subscription_schedule.updated"|"tax.settings.updated"|"tax_rate.created"|"tax_rate.updated"|"terminal.reader.action_failed"|"terminal.reader.action_succeeded"|"test_helpers.test_clock.advancing"|"test_helpers.test_clock.created"|"test_helpers.test_clock.deleted"|"test_helpers.test_clock.internal_failure"|"test_helpers.test_clock.ready"|"topup.canceled"|"topup.created"|"topup.failed"|"topup.reversed"|"topup.succeeded"|"transfer.created"|"transfer.reversed"|"transfer.updated"|"treasury.credit_reversal.created"|"treasury.credit_reversal.posted"|"treasury.debit_reversal.completed"|"treasury.debit_reversal.created"|"treasury.debit_reversal.initial_credit_granted"|"treasury.financial_account.closed"|"treasury.financial_account.created"|"treasury.financial_account.features_status_updated"|"treasury.inbound_transfer.canceled"|"treasury.inbound_transfer.created"|"treasury.inbound_transfer.failed"|"treasury.inbound_transfer.succeeded"|"treasury.outbound_payment.canceled"|"treasury.outbound_payment.created"|"treasury.outbound_payment.expected_arrival_date_updated"|"treasury.outbound_payment.failed"|"treasury.outbound_payment.posted"|"treasury.outbound_payment.returned"|"treasury.outbound_payment.tracking_details_updated"|"treasury.outbound_transfer.canceled"|"treasury.outbound_transfer.created"|"treasury.outbound_transfer.expected_arrival_date_updated"|"treasury.outbound_transfer.failed"|"treasury.outbound_transfer.posted"|"treasury.outbound_transfer.returned"|"treasury.outbound_transfer.tracking_details_updated"|"treasury.received_credit.created"|"treasury.received_credit.failed"|"treasury.received_credit.succeeded"|"treasury.received_debit.created")[] enabledEvents; + # An optional description of what the webhook is used for + string|"" description?; + # Events sent to this endpoint will be generated with this Stripe Version instead of your account's default Stripe Version + @jsondata:Name {value: "api_version"} + "2011-01-01"|"2011-06-21"|"2011-06-28"|"2011-08-01"|"2011-09-15"|"2011-11-17"|"2012-02-23"|"2012-03-25"|"2012-06-18"|"2012-06-28"|"2012-07-09"|"2012-09-24"|"2012-10-26"|"2012-11-07"|"2013-02-11"|"2013-02-13"|"2013-07-05"|"2013-08-12"|"2013-08-13"|"2013-10-29"|"2013-12-03"|"2014-01-31"|"2014-03-13"|"2014-03-28"|"2014-05-19"|"2014-06-13"|"2014-06-17"|"2014-07-22"|"2014-07-26"|"2014-08-04"|"2014-08-20"|"2014-09-08"|"2014-10-07"|"2014-11-05"|"2014-11-20"|"2014-12-08"|"2014-12-17"|"2014-12-22"|"2015-01-11"|"2015-01-26"|"2015-02-10"|"2015-02-16"|"2015-02-18"|"2015-03-24"|"2015-04-07"|"2015-06-15"|"2015-07-07"|"2015-07-13"|"2015-07-28"|"2015-08-07"|"2015-08-19"|"2015-09-03"|"2015-09-08"|"2015-09-23"|"2015-10-01"|"2015-10-12"|"2015-10-16"|"2016-02-03"|"2016-02-19"|"2016-02-22"|"2016-02-23"|"2016-02-29"|"2016-03-07"|"2016-06-15"|"2016-07-06"|"2016-10-19"|"2017-01-27"|"2017-02-14"|"2017-04-06"|"2017-05-25"|"2017-06-05"|"2017-08-15"|"2017-12-14"|"2018-01-23"|"2018-02-05"|"2018-02-06"|"2018-02-28"|"2018-05-21"|"2018-07-27"|"2018-08-23"|"2018-09-06"|"2018-09-24"|"2018-10-31"|"2018-11-08"|"2019-02-11"|"2019-02-19"|"2019-03-14"|"2019-05-16"|"2019-08-14"|"2019-09-09"|"2019-10-08"|"2019-10-17"|"2019-11-05"|"2019-12-03"|"2020-03-02"|"2020-08-27"|"2022-08-01"|"2022-11-15"|"2023-08-16"|"2023-10-16"|"2024-04-10"|"2024-06-20" apiVersion?; + # Whether this endpoint should receive events from connected accounts (`true`), or from your account (`false`). Defaults to `false` + boolean connect?; + # The URL of the webhook endpoint + string url; +|}; + +# +public type PaymentMethodOptionsWechatPay record { + # The client type that the end customer will pay from + "android"|"ios"|"web"? 'client?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; + # The app ID registered with WeChat Pay. Only required when client is ios or android + @jsondata:Name {value: "app_id"} + string? appId?; +}; + +public type ValidatedCountryAddress record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +@constraint:String {maxLength: 5000} +public type TaxRatestaxRateBodyExpandItemsString string; + +public type OnBehalfOf1OnBehalfOf1AnyOf12 ""; + +public type FeaturesidBody record {| + # Specifies which fields in the response should be expanded + FeaturesidBodyExpandItemsString[] expand?; + # Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format + record {|string...;|}|"" metadata?; + # The feature's name, for your own purpose, not meant to be displayable to the customer + @constraint:String {maxLength: 80} + string name?; + # Inactive features cannot be attached to new products and will not be returned from the features list endpoint + boolean active?; +|}; + +# +public type PaymentMethodCardWalletSamsungPay record { +}; + +@constraint:String {maxLength: 5000} +public type SecretsDeleteBodyExpandItemsString string; + +# +public type PortalCustomerUpdate record { + # Whether the feature is enabled + boolean enabled; + # The types of customer updates that are supported. When empty, customers are not updateable + @jsondata:Name {value: "allowed_updates"} + ("address"|"email"|"name"|"phone"|"shipping"|"tax_id")[] allowedUpdates; +}; + +# +public type InvoiceTransferData record { + # The amount in cents (or local equivalent) that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination + int? amount?; + # The account where funds from the payment will be transferred to upon payment success + string|Account destination; +}; + +# +public type TreasuryTransactionsResourceTransactionEntryList record { + # Details about each object + TreasuryTransactionEntry[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/treasury/transaction_entries`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type MandateBacsDebit record { + # The unique reference identifying the mandate on the Bacs network + @constraint:String {maxLength: 5000} + string reference; + # When the mandate is revoked on the Bacs network this field displays the reason for the revocation + @jsondata:Name {value: "revocation_reason"} + "account_closed"|"bank_account_restricted"|"bank_ownership_changed"|"could_not_process"|"debit_not_authorized"? revocationReason?; + # The status of the mandate on the Bacs network. Can be one of `pending`, `revoked`, `refused`, or `accepted` + @jsondata:Name {value: "network_status"} + "accepted"|"pending"|"refused"|"revoked" networkStatus; + # The URL that will contain the mandate that the customer has signed + @constraint:String {maxLength: 5000} + string url; +}; + +public type CanceledAt RangeQuerySpecs41|CanceledAtRangeQuerySpecs412; + +public type RefundsidBody record {| + # Specifies which fields in the response should be expanded + RefundsidBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +public type ScheduleReleaseBody record {| + # Keep any cancellation on the subscription that the schedule has set + @jsondata:Name {value: "preserve_cancel_date"} + boolean preserveCancelDate?; + # Specifies which fields in the response should be expanded + ScheduleReleaseBodyExpandItemsString[] expand?; +|}; + +# Represents the Queries record for the operation: GetFinancialConnectionsAccountsAccount +public type GetFinancialConnectionsAccountsAccountQueries record { + # Specifies which fields in the response should be expanded + GetFinancialConnectionsAccountsAccountQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionSchedulesQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerPaymentMethodsQueriesExpandItemsString string; + +# +public type PaymentMethodDetailsCardWalletVisaCheckout record { + # Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? name?; + # Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "billing_address"} + Address? billingAddress?; + # Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "shipping_address"} + Address? shippingAddress?; + # Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? email?; +}; + +# +public type TaxDeductedAtSource record { + # The end of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period + @jsondata:Name {value: "period_end"} + int periodEnd; + # The TAN that was supplied to Stripe when TDS was assessed + @jsondata:Name {value: "tax_deduction_account_number"} + string taxDeductionAccountNumber; + # The start of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period + @jsondata:Name {value: "period_start"} + int periodStart; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "tax_deducted_at_source" 'object; +}; + +# +public type TaxProductRegistrationsResourceCountryOptionsEuStandard record { + # Place of supply scheme used in an EU standard registration + @jsondata:Name {value: "place_of_supply_scheme"} + "small_seller"|"standard" placeOfSupplyScheme; +}; + +# +public type CheckoutBacsDebitPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +# +public type BalanceNetAvailable record { + # Net balance amount, subtracting fees from platform-set pricing + int amount; + @jsondata:Name {value: "source_types"} + BalanceAmountBySourceType sourceTypes?; + # ID of the external account for this net balance (not expandable) + @constraint:String {maxLength: 5000} + string destination; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingTransactionsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type IdVerifyBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AccountTaxIdsAnyOf1 string; + +@constraint:String {maxLength: 5000} +public type PaymentMethodAttachBodyExpandItemsString string; + +# +public type PaymentFlowsPrivatePaymentMethodsUsBankAccountLinkedAccountOptionsFilters record { + # The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings` + @jsondata:Name {value: "account_subcategories"} + ("checking"|"savings")[] accountSubcategories?; +}; + +# +public type SetupAttemptPaymentMethodDetailsCardPresent record { + # Details about payments collected offline + PaymentMethodDetailsCardPresentOffline? offline?; + # The ID of the Card PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_card"} + string|PaymentMethod? generatedCard?; +}; + +# +public type TransferReversalList record { + # Details about each object + TransferReversal[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type CheckoutEpsPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type CountrySpecVerificationFieldDetails record { + # Additional fields which are only required for some users + CountrySpecVerificationFieldDetailsAdditionalItemsString[] additional; + # Fields which every account must eventually provide + CountrySpecVerificationFieldDetailsMinimumItemsString[] minimum; +}; + +# +public type RefundDestinationDetails record { + DestinationDetailsUnimplemented paynow?; + RefundDestinationDetailsGeneric blik?; + @jsondata:Name {value: "gb_bank_transfer"} + RefundDestinationDetailsGeneric gbBankTransfer?; + @jsondata:Name {value: "au_bank_transfer"} + DestinationDetailsUnimplemented auBankTransfer?; + @jsondata:Name {value: "jp_bank_transfer"} + RefundDestinationDetailsGeneric jpBankTransfer?; + @jsondata:Name {value: "mx_bank_transfer"} + RefundDestinationDetailsGeneric mxBankTransfer?; + @jsondata:Name {value: "amazon_pay"} + DestinationDetailsUnimplemented amazonPay?; + # The type of transaction-specific details of the payment method used in the refund (e.g., `card`). An additional hash is included on `destination_details` with a name matching this value. It contains information specific to the refund transaction + @constraint:String {maxLength: 5000} + string 'type; + DestinationDetailsUnimplemented revolut?; + @jsondata:Name {value: "afterpay_clearpay"} + DestinationDetailsUnimplemented afterpayClearpay?; + RefundDestinationDetailsGeneric swish?; + @jsondata:Name {value: "br_bank_transfer"} + RefundDestinationDetailsGeneric brBankTransfer?; + DestinationDetailsUnimplemented cashapp?; + @jsondata:Name {value: "wechat_pay"} + DestinationDetailsUnimplemented wechatPay?; + @jsondata:Name {value: "us_bank_transfer"} + RefundDestinationDetailsGeneric usBankTransfer?; + DestinationDetailsUnimplemented paypal?; + DestinationDetailsUnimplemented pix?; + DestinationDetailsUnimplemented giropay?; + DestinationDetailsUnimplemented zip?; + DestinationDetailsUnimplemented alipay?; + @jsondata:Name {value: "customer_cash_balance"} + DestinationDetailsUnimplemented customerCashBalance?; + DestinationDetailsUnimplemented eps?; + DestinationDetailsUnimplemented sofort?; + DestinationDetailsUnimplemented affirm?; + @jsondata:Name {value: "eu_bank_transfer"} + RefundDestinationDetailsGeneric euBankTransfer?; + DestinationDetailsUnimplemented grabpay?; + DestinationDetailsUnimplemented klarna?; + RefundDestinationDetailsGeneric p24?; + @jsondata:Name {value: "th_bank_transfer"} + RefundDestinationDetailsGeneric thBankTransfer?; + RefundDestinationDetailsCard card?; + RefundDestinationDetailsGeneric multibanco?; +}; + +# +public type RadarReviewList record { + Review[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type TaxProductResourceTaxSettingsStatusDetailsResourcePending record { + # The list of missing fields that are required to perform calculations. It includes the entry `head_office` when the status is `pending`. It is recommended to set the optional values even if they aren't listed as required for calculating taxes. Calculations can fail if missing fields aren't explicitly provided on every call + @jsondata:Name {value: "missing_fields"} + TaxProductResourceTaxSettingsStatusDetailsResourcePendingMissingfieldsItemsString[]? missingFields?; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionDefaultTaxRatesAnyOf1ItemsString string; + +public type SourceTypeSepaDebit record { + @jsondata:Name {value: "branch_code"} + string? branchCode?; + @jsondata:Name {value: "bank_code"} + string? bankCode?; + string? country?; + string? last4?; + @jsondata:Name {value: "mandate_url"} + string? mandateUrl?; + string? fingerprint?; + @jsondata:Name {value: "mandate_reference"} + string? mandateReference?; +}; + +# +public type OutboundTransfersPaymentMethodDetailsUsBankAccount record { + # Last four digits of the bank account number + string? last4?; + # Account type: checkings or savings. Defaults to checking if omitted + @jsondata:Name {value: "account_type"} + "checking"|"savings"? accountType?; + # ID of the mandate used to make this payment + string|Mandate mandate?; + # Account holder type: individual or company + @jsondata:Name {value: "account_holder_type"} + "company"|"individual"? accountHolderType?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Routing number of the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + # The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type + "ach"|"us_domestic_wire" network; +}; + +@constraint:String {maxLength: 5000} +public type ProductImagesItemsString string; + +public type TopupCancelBody record {| + # Specifies which fields in the response should be expanded + TopupCancelBodyExpandItemsString[] expand?; +|}; + +public type JapanAddressKanjiSpecs record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string town?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +# Represents the Queries record for the operation: GetFileLinksLink +public type GetFileLinksLinkQueries record { + # Specifies which fields in the response should be expanded + GetFileLinksLinkQueriesExpandItemsString[] expand?; +}; + +public type ShippingOptionParams1 record { + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; +}; + +# +public type DeletedPlan record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "plan" 'object; +}; + +# +public type Networks record { + # All available networks for the card + NetworksAvailableItemsString[] available; + # The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card + string? preferred?; +}; + +# Represents the Queries record for the operation: GetClimateProductsProduct +public type GetClimateProductsProductQueries record { + # Specifies which fields in the response should be expanded + GetClimateProductsProductQueriesExpandItemsString[] expand?; +}; + +public type SubscriptionCancelUpdatingParam record { + "at_period_end"|"immediately" mode?; + @jsondata:Name {value: "cancellation_reason"} + SubscriptionCancellationReasonUpdatingParam cancellationReason?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + boolean enabled?; +}; + +# Details about a failed InboundTransfer +public type FailureDetailsParams record { + "account_closed"|"account_frozen"|"bank_account_restricted"|"bank_ownership_changed"|"debit_not_authorized"|"incorrect_account_holder_address"|"incorrect_account_holder_name"|"incorrect_account_holder_tax_id"|"insufficient_funds"|"invalid_account_number"|"invalid_currency"|"no_account"|"other" code?; +}; + +public type AccountPeopleBody record {| + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "registered_address"} + AddressSpecs1 registeredAddress?; + # The person's gender (International regulations require either "male" or "female") + string gender?; + PersonDocumentsSpecs documents?; + # The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs1 addressKana?; + # A list of alternate names or aliases that the person is known by + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + @jsondata:Name {value: "additional_tos_acceptances"} + PersonAdditionalTosAcceptancesSpecs additionalTosAcceptances?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs1 addressKanji?; + # The last four digits of the person's Social Security number (U.S. only) + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + RelationshipSpecs relationship?; + # The person's first name + @jsondata:Name {value: "first_name"} + string firstName?; + # The Kana variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + # The person's email address + string email?; + PersonVerificationSpecs1 verification?; + # The Kanji variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; + # The person's maiden name + @jsondata:Name {value: "maiden_name"} + string maidenName?; + # The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number"} + string idNumber?; + LegalEntityAndKycAddressSpecs1 address?; + # A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person + @jsondata:Name {value: "person_token"} + string personToken?; + # Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction + @jsondata:Name {value: "political_exposure"} + string politicalExposure?; + # The Kanji variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + # The person's last name + @jsondata:Name {value: "last_name"} + string lastName?; + # Specifies which fields in the response should be expanded + AccountPeopleBodyExpandItemsString[] expand?; + # The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable + @constraint:String {maxLength: 5000} + string nationality?; + # The person's phone number + string phone?; + # The person's date of birth + record {int day; int month; int year;}|"" dob?; + # The Kana variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; +|}; + +# +public type TaxProductResourceShipFromDetails record { + TaxProductResourcePostalAddress address; +}; + +public type ConfigurationsconfigurationBody record {| + FeaturesUpdatingParam features?; + # The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session + @jsondata:Name {value: "default_return_url"} + string|"" defaultReturnUrl?; + # Specifies which fields in the response should be expanded + ConfigurationsconfigurationBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "login_page"} + LoginPageUpdateParam loginPage?; + # Whether the configuration is active and can be used to create portal sessions + boolean active?; + @jsondata:Name {value: "business_profile"} + BusinessProfileUpdateParam businessProfile?; +|}; + +# Represents the Queries record for the operation: GetClimateOrdersOrder +public type GetClimateOrdersOrderQueries record { + # Specifies which fields in the response should be expanded + GetClimateOrdersOrderQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionItemsItemQueriesExpandItemsString string; + +# +public type AccountTermsOfService record { + # The Unix timestamp marking when the account representative accepted the service agreement + int? date?; + # The IP address from which the account representative accepted the service agreement + string? ip?; + # The user agent of the browser from which the account representative accepted the service agreement + @jsondata:Name {value: "user_agent"} + string userAgent?; +}; + +# A subset of parameters to be passed to subscription creation for Checkout Sessions in `subscription` mode +public type SubscriptionDataParams record { + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingsParams invoiceSettings?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs2 transferData?; + @jsondata:Name {value: "default_tax_rates"} + SubscriptionDataParamsDefaulttaxratesItemsString[] defaultTaxRates?; + record {|string...;|} metadata?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @constraint:String {maxLength: 500} + string description?; + @jsondata:Name {value: "trial_end"} + int trialEnd?; + @jsondata:Name {value: "trial_period_days"} + int trialPeriodDays?; + @jsondata:Name {value: "proration_behavior"} + "create_prorations"|"none" prorationBehavior?; + @jsondata:Name {value: "trial_settings"} + TrialSettingsConfig trialSettings?; + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "billing_cycle_anchor"} + int billingCycleAnchor?; +}; + +# +public type CountrySpecVerificationFields record { + CountrySpecVerificationFieldDetails individual; + CountrySpecVerificationFieldDetails company; +}; + +public type RequiredAddress record { + @constraint:String {maxLength: 5000} + string country; + @constraint:String {maxLength: 5000} + string city; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1; +}; + +# +public type PaymentMethodDetailsCardWallet record { + @jsondata:Name {value: "apple_pay"} + PaymentMethodDetailsCardWalletApplePay applePay?; + PaymentMethodDetailsCardWalletMasterpass masterpass?; + @jsondata:Name {value: "samsung_pay"} + PaymentMethodDetailsCardWalletSamsungPay samsungPay?; + @jsondata:Name {value: "google_pay"} + PaymentMethodDetailsCardWalletGooglePay googlePay?; + @jsondata:Name {value: "visa_checkout"} + PaymentMethodDetailsCardWalletVisaCheckout visaCheckout?; + PaymentMethodDetailsCardWalletLink link?; + @jsondata:Name {value: "amex_express_checkout"} + PaymentMethodDetailsCardWalletAmexExpressCheckout amexExpressCheckout?; + # (For tokenized numbers only.) The last four digits of the device account number + @jsondata:Name {value: "dynamic_last4"} + string? dynamicLast4?; + # The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type + "amex_express_checkout"|"apple_pay"|"google_pay"|"link"|"masterpass"|"samsung_pay"|"visa_checkout" 'type; +}; + +public type SubscriptionTrialEndSubscriptionTrialEndAnyOf12 int; + +public type CompletedSessionsParams record { + int 'limit; +}; + +# Represents the Queries record for the operation: GetQuotesQuoteLineItems +public type GetQuotesQuoteLineItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetQuotesQuoteLineItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Settings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions +public type AutomaticTaxParams record { + Param liability?; + boolean enabled; +}; + +# +public type SourceRedirectFlow record { + # The URL you provide to redirect the customer to after they authenticated their payment + @jsondata:Name {value: "return_url"} + string returnUrl; + # The failure reason for the redirect, either `user_abort` (the customer aborted or dropped out of the redirect flow), `declined` (the authentication failed or the transaction was declined), or `processing_error` (the redirect failed due to a technical error). Present only if the redirect status is `failed` + @jsondata:Name {value: "failure_reason"} + string? failureReason?; + # The URL provided to you to redirect a customer to as part of a `redirect` authentication flow + @constraint:String {maxLength: 2048} + string url; + # The status of the redirect, either `pending` (ready to be used by your customer to authenticate the transaction), `succeeded` (succesful authentication, cannot be reused) or `not_required` (redirect should not be used) or `failed` (failed authentication, cannot be reused) + @constraint:String {maxLength: 5000} + string status; +}; + +# The cardholder's billing address +public type BillingSpecs record { + RequiredAddress address; +}; + +public type CardPaymentsSettingsSpecs record { + @jsondata:Name {value: "statement_descriptor_prefix_kana"} + string|"" statementDescriptorPrefixKana?; + @jsondata:Name {value: "statement_descriptor_prefix_kanji"} + string|"" statementDescriptorPrefixKanji?; + @jsondata:Name {value: "statement_descriptor_prefix"} + string statementDescriptorPrefix?; + @jsondata:Name {value: "decline_on"} + DeclineChargeOnSpecs declineOn?; +}; + +@constraint:String {maxLength: 5000} +public type WebhookEndpointswebhookEndpointBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetFinancialConnectionsTransactionsTransactionQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetReportingReportTypesReportType +public type GetReportingReportTypesReportTypeQueries record { + # Specifies which fields in the response should be expanded + GetReportingReportTypesReportTypeQueriesExpandItemsString[] expand?; +}; + +# +public type SourceTransactionSepaCreditTransferData record { + # Reference associated with the transfer + @constraint:String {maxLength: 5000} + string reference?; + # Sender's name + @jsondata:Name {value: "sender_name"} + string senderName?; + # Sender's bank account IBAN + @jsondata:Name {value: "sender_iban"} + string senderIban?; +}; + +public type DiscountsDataParam record { + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + @constraint:String {maxLength: 5000} + string discount?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerSubscriptionsSubscriptionExposedIdQueriesExpandItemsString string; + +# Value lists allow you to group values together which can then be referenced in rules. +# +# Related guide: [Default Stripe lists](https://stripe.com/docs/radar/lists#managing-list-items) +public type RadarValueList record { + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The type of items in the value list. One of `card_fingerprint`, `us_bank_account_fingerprint`, `sepa_debit_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, `case_sensitive_string`, or `customer_id` + @jsondata:Name {value: "item_type"} + "card_bin"|"card_fingerprint"|"case_sensitive_string"|"country"|"customer_id"|"email"|"ip_address"|"sepa_debit_fingerprint"|"string"|"us_bank_account_fingerprint" itemType; + # The name of the value list + @constraint:String {maxLength: 5000} + string name; + # The name of the value list for use in rules + @constraint:String {maxLength: 5000} + string alias; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The name or email address of the user who created this value list + @jsondata:Name {value: "created_by"} + string createdBy; + @jsondata:Name {value: "list_items"} + RadarListListItemList1 listItems; + # String representing the object's type. Objects of the same type share the same value + "radar.value_list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetSetupIntentsIntentQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetTreasuryDebitReversalsDebitReversal +public type GetTreasuryDebitReversalsDebitReversalQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryDebitReversalsDebitReversalQueriesExpandItemsString[] expand?; +}; + +# +public type IssuingCardList record { + IssuingCard[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/cards`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetPlansQueriesExpandItemsString string; + +# +public type BankConnectionsResourceTransactionResourceStatusTransitions record { + # Time at which this transaction was voided. Measured in seconds since the Unix epoch + @jsondata:Name {value: "void_at"} + int? voidAt?; + # Time at which this transaction posted. Measured in seconds since the Unix epoch + @jsondata:Name {value: "posted_at"} + int? postedAt?; +}; + +public type PaymentMethodsBody record {| + # If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method + record {} paynow?; + @jsondata:Name {value: "billing_details"} + BillingDetailsInnerParams1 billingDetails?; + # If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method + record {} blik?; + # 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` + record {|string...;|} metadata?; + # If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method + @jsondata:Name {value: "interac_present"} + record {} interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodParam42 acssDebit?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions radarOptions?; + @jsondata:Name {value: "bacs_debit"} + Param15 bacsDebit?; + Param16 boleto?; + # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method + record {} link?; + # If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method + @jsondata:Name {value: "amazon_pay"} + record {} amazonPay?; + # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type?; + @jsondata:Name {value: "au_becs_debit"} + Param14 auBecsDebit?; + # If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method + record {} oxxo?; + # If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method + @jsondata:Name {value: "afterpay_clearpay"} + record {} afterpayClearpay?; + # If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method + record {} swish?; + # If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method + record {} twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam43 usBankAccount?; + # If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method + @jsondata:Name {value: "customer_balance"} + record {} customerBalance?; + # If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method + record {} cashapp?; + # If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method + @jsondata:Name {value: "wechat_pay"} + record {} wechatPay?; + # If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method + record {} paypal?; + # The PaymentMethod to share + @jsondata:Name {value: "payment_method"} + string paymentMethod?; + # If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method + record {} pix?; + # If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method + @jsondata:Name {value: "revolut_pay"} + record {} revolutPay?; + # If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method + record {} giropay?; + # If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method + record {} zip?; + # If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method + record {} alipay?; + Param19 ideal?; + Param17 eps?; + # If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method + record {} konbini?; + Param23 sofort?; + Param18 fpx?; + # If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method + record {} promptpay?; + # If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method + record {} affirm?; + # If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method + record {} mobilepay?; + # If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method + record {} bancontact?; + # Specifies which fields in the response should be expanded + PaymentMethodsBodyExpandItemsString[] expand?; + # If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method + record {} grabpay?; + Param20 klarna?; + Param21 p24?; + @jsondata:Name {value: "sepa_debit"} + Param22 sepaDebit?; + # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified` + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + # If this is a `card` PaymentMethod, this hash contains the user's card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format `card: {token: "tok_visa"}`. When providing a card number, you must meet the requirements for [PCI compliance](https://stripe.com/docs/security#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly + record {string cvc?; int exp_month; int exp_year; record {"cartes_bancaires"|"mastercard"|"visa" preferred?;} networks?; string number;}|record {string token;} card?; + # The `Customer` to whom the original PaymentMethod is attached + @constraint:String {maxLength: 5000} + string customer?; + # If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method + record {} multibanco?; +|}; + +# +public type SubscriptionsItemsSubscriptionItemList record { + SubscriptionItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/subscription_items`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetPaymentIntentsSearch +public type GetPaymentIntentsSearchQueries record { + # Specifies which fields in the response should be expanded + GetPaymentIntentsSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for payment intents](https://stripe.com/docs/search#query-fields-for-payment-intents) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +# +public type DisputePaymentMethodDetails record { + DisputePaymentMethodDetailsKlarna klarna?; + # Payment method type + "card"|"klarna"|"paypal" 'type; + DisputePaymentMethodDetailsPaypal paypal?; + DisputePaymentMethodDetailsCard card?; +}; + +# Information about the owner of the payment instrument that may be used or required by particular source types +public type Owner1 record { + SourceAddress address?; + @constraint:String {maxLength: 5000} + string phone?; + @constraint:String {maxLength: 5000} + string name?; + string email?; +}; + +public type AutomaticTaxParam2 record { + Param liability?; + boolean enabled; +}; + +public type AuthorizationControlsParamAllowedmerchantcountriesItemsString string; + +# +public type SubscriptionPendingInvoiceItemInterval record { + # The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks) + @jsondata:Name {value: "interval_count"} + int intervalCount; + # Specifies invoicing frequency. Either `day`, `week`, `month` or `year` + "day"|"month"|"week"|"year" interval; +}; + +# Settings for automatic tax lookup for this invoice preview +public type AutomaticTaxParam1 record { + Param liability?; + boolean enabled; +}; + +# Settings for automatic tax lookup for this invoice +public type AutomaticTaxParam4 record { + Param3 liability?; + boolean enabled; +}; + +public type AutomaticTaxParam3 record { + Param2 liability?; + boolean enabled; +}; + +# Settings for automatic tax lookup for this quote and resulting invoices and subscriptions +public type AutomaticTaxParam5 record { + Param3 liability?; + boolean enabled; +}; + +# +public type IssuingDisputeNoValidAuthorizationEvidence record { + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; +}; + +# Information about the features available in the portal +public type FeaturesCreationParam record { + @jsondata:Name {value: "subscription_cancel"} + SubscriptionCancelCreationParam subscriptionCancel?; + @jsondata:Name {value: "invoice_history"} + InvoiceListParam invoiceHistory?; + @jsondata:Name {value: "payment_method_update"} + PaymentMethodUpdateParam paymentMethodUpdate?; + @jsondata:Name {value: "customer_update"} + CustomerUpdateCreationParam customerUpdate?; + @jsondata:Name {value: "subscription_update"} + SubscriptionUpdateCreationParam subscriptionUpdate?; +}; + +# Represents the Queries record for the operation: GetProductsSearch +public type GetProductsSearchQueries record { + # Specifies which fields in the response should be expanded + GetProductsSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for products](https://stripe.com/docs/search#query-fields-for-products) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +# +public type PaymentIntentPaymentMethodOptionsMobilepay record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceJpBankTransfer record { + # The name of the bank branch of the sender of the funding + @jsondata:Name {value: "sender_branch"} + string? senderBranch?; + # The full name of the sender, as supplied by the sending bank + @jsondata:Name {value: "sender_name"} + string? senderName?; + # The name of the bank of the sender of the funding + @jsondata:Name {value: "sender_bank"} + string? senderBank?; +}; + +public type BacsDebitPaymentsSpecs record { + @jsondata:Name {value: "display_name"} + string displayName?; +}; + +# +public type EntitlementsResourceFeatureList record { + EntitlementsFeature[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/entitlements/features`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type AdjustableQuantityParams record { + int maximum?; + int minimum?; + boolean enabled; +}; + +# +public type PaymentPagesCheckoutSessionTaxIdCollection record { + # Indicates whether tax ID collection is enabled for the session + boolean enabled; +}; + +# +public type CheckoutUsBankAccountPaymentMethodOptions record { + @jsondata:Name {value: "financial_connections"} + LinkedAccountOptionsUsBankAccount financialConnections?; + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant" verificationMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerBalanceTransactions +public type GetCustomersCustomerBalanceTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerBalanceTransactionsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentMethodDetailsAcssDebit record { + # Last four digits of the bank account number + string? last4?; + # ID of the mandate used to make this payment + @constraint:String {maxLength: 5000} + string mandate?; + # Institution number of the bank account + @jsondata:Name {value: "institution_number"} + string? institutionNumber?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Transit number of the bank account + @jsondata:Name {value: "transit_number"} + string? transitNumber?; +}; + +# Represents the Queries record for the operation: GetIssuingPersonalizationDesigns +public type GetIssuingPersonalizationDesignsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingPersonalizationDesignsQueriesExpandItemsString[] expand?; + # Only return personalization designs with the given preferences + PreferencesListParam preferences?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return personalization designs with the given lookup keys + @http:Query {name: "lookup_keys"} + GetIssuingPersonalizationDesignsQueriesLookupkeysItemsString[] lookupKeys?; + # Only return personalization designs with the given status + "active"|"inactive"|"rejected"|"review" status?; +}; + +public type CardIssuingParam record { + @jsondata:Name {value: "user_terms_acceptance"} + TermsAcceptanceParam userTermsAcceptance?; +}; + +public type SourceTypeMultibanco record { + string? reference?; + @jsondata:Name {value: "refund_iban"} + string? refundIban?; + @jsondata:Name {value: "refund_account_holder_address_state"} + string? refundAccountHolderAddressState?; + @jsondata:Name {value: "refund_account_holder_address_postal_code"} + string? refundAccountHolderAddressPostalCode?; + @jsondata:Name {value: "refund_account_holder_address_country"} + string? refundAccountHolderAddressCountry?; + @jsondata:Name {value: "refund_account_holder_name"} + string? refundAccountHolderName?; + string? entity?; + @jsondata:Name {value: "refund_account_holder_address_city"} + string? refundAccountHolderAddressCity?; + @jsondata:Name {value: "refund_account_holder_address_line2"} + string? refundAccountHolderAddressLine2?; + @jsondata:Name {value: "refund_account_holder_address_line1"} + string? refundAccountHolderAddressLine1?; +}; + +public type ProductsidBody record {| + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer + string[]|"" images?; + # 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` + record {|string...;|}|"" metadata?; + # The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product + @jsondata:Name {value: "default_price"} + string defaultPrice?; + # Whether the product is available for purchase + boolean active?; + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes + string|"" description?; + # A URL of a publicly-accessible webpage for this product + string|"" url?; + # The dimensions of this product for shipping purposes + @jsondata:Name {value: "package_dimensions"} + record {decimal height; decimal length; decimal weight; decimal width;}|"" packageDimensions?; + # An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + # + # This may be up to 22 characters. The statement description may not include `<`, `>`, `\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + # It must contain at least one letter. May only be set if `type=service`. Only used for subscription payments + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # Specifies which fields in the response should be expanded + ProductsidBodyExpandItemsString[] expand?; + # A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table) + @jsondata:Name {value: "marketing_features"} + record {string name;}[]|"" marketingFeatures?; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID + @jsondata:Name {value: "tax_code"} + string|"" taxCode?; + # Whether this product is shipped (i.e., physical goods) + boolean shippable?; + # The product's name, meant to be displayable to the customer + @constraint:String {maxLength: 5000} + string name?; + # A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. May only be set if `type=service` + @jsondata:Name {value: "unit_label"} + string|"" unitLabel?; +|}; + +# +public type GelatoSessionDocumentOptions record { + # Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user’s face. [Learn more](https://stripe.com/docs/identity/selfie) + @jsondata:Name {value: "require_matching_selfie"} + boolean requireMatchingSelfie?; + # Array of strings of allowed identity document types. If the provided identity document isn’t one of the allowed types, the verification check will fail with a document_type_not_allowed error code + @jsondata:Name {value: "allowed_types"} + ("driving_license"|"id_card"|"passport")[] allowedTypes?; + # Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document’s extracted name and date of birth + @jsondata:Name {value: "require_id_number"} + boolean requireIdNumber?; + # Disable image uploads, identity document images have to be captured using the device’s camera + @jsondata:Name {value: "require_live_capture"} + boolean requireLiveCapture?; +}; + +# +public type DeletedDiscount record { + # Always true for a deleted object + true deleted; + Coupon coupon; + # The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item + @jsondata:Name {value: "invoice_item"} + string? invoiceItem?; + # The promotion code applied to create this discount + @jsondata:Name {value: "promotion_code"} + string|PromotionCode? promotionCode?; + # The subscription item that this coupon is applied to, if it is applied to a particular subscription item + @jsondata:Name {value: "subscription_item"} + string? subscriptionItem?; + # Date that the coupon was applied + int 'start; + # The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode + @jsondata:Name {value: "checkout_session"} + string? checkoutSession?; + # The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array + @constraint:String {maxLength: 5000} + string id; + # The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice + string? invoice?; + # The subscription that this coupon is applied to, if it is applied to a particular subscription + string? subscription?; + # The ID of the customer associated with this discount + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "discount" 'object; +}; + +public type CompletedAtRangeQuerySpecs422 int; + +# +public type ChargeList record { + Charge[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/charges`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type DocumentsParam record { + DocumentsParamFilesItemsString[] files?; +}; + +# Represents the Queries record for the operation: GetTransfers +public type GetTransfersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTransfersQueriesExpandItemsString[] expand?; + # Only return transfers with the specified transfer group + @http:Query {name: "transfer_group"} + string transferGroup?; + # Only return transfers that were created during the given date interval + Created42 created?; + # Only return transfers for the destination specified by this account ID + @constraint:String {maxLength: 5000} + string destination?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Specifies the requirements that Stripe collects from connected accounts in the Connect Onboarding flow +public type CollectionOptionsParams record { + @jsondata:Name {value: "future_requirements"} + "include"|"omit" futureRequirements?; + "currently_due"|"eventually_due" fields; +}; + +public type SecretsDeleteBody record {| + # Specifies which fields in the response should be expanded + SecretsDeleteBodyExpandItemsString[] expand?; + ScopeParam1 scope; + # A name for the secret that's unique within the scope + @constraint:String {maxLength: 5000} + string name; +|}; + +# +public type PaymentFlowsPaymentMethodList record { + PaymentMethod[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/payment_methods`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type SetupIntentsBodyExpandItemsString string; + +# +public type TreasuryOutboundPaymentsResourceUsDomesticWireTrackingDetails record { + # OMAD of the OutboundPayment for payments sent over the `us_domestic_wire` network + string? omad?; + # IMAD of the OutboundPayment for payments sent over the `us_domestic_wire` network + @constraint:String {maxLength: 5000} + string imad; +}; + +# +public type PaymentLinksResourceTransferData record { + # The amount in cents (or local equivalent) that will be transferred to the destination account. By default, the entire amount is transferred to the destination + int? amount?; + # The connected account receiving the transfer + string|Account destination; +}; + +public type AccountRequirementsAlternativeOriginalfieldsdueItemsString string; + +# +public type CheckoutPaynowPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type PersonspersonBody record {| + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "registered_address"} + AddressSpecs1 registeredAddress?; + # The person's gender (International regulations require either "male" or "female") + string gender?; + PersonDocumentsSpecs3 documents?; + # The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs1 addressKana?; + # A list of alternate names or aliases that the person is known by + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + @jsondata:Name {value: "additional_tos_acceptances"} + PersonAdditionalTosAcceptancesSpecs additionalTosAcceptances?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs1 addressKanji?; + # The last four digits of the person's Social Security number (U.S. only) + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + RelationshipSpecs relationship?; + # The person's first name + @jsondata:Name {value: "first_name"} + string firstName?; + # The Kana variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + # The person's email address + string email?; + PersonVerificationSpecs1 verification?; + # The Kanji variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; + # The person's maiden name + @jsondata:Name {value: "maiden_name"} + string maidenName?; + # The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number"} + string idNumber?; + LegalEntityAndKycAddressSpecs1 address?; + # A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person + @jsondata:Name {value: "person_token"} + string personToken?; + # Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction + @jsondata:Name {value: "political_exposure"} + string politicalExposure?; + # The Kanji variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + # The person's last name + @jsondata:Name {value: "last_name"} + string lastName?; + # Specifies which fields in the response should be expanded + PersonspersonBodyExpandItemsString[] expand?; + # The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable + @constraint:String {maxLength: 5000} + string nationality?; + # The person's phone number + string phone?; + # The person's date of birth + record {int day; int month; int year;}|"" dob?; + # The Kana variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; +|}; + +# Represents the Queries record for the operation: GetTransfersIdReversals +public type GetTransfersIdReversalsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTransfersIdReversalsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentFlowsAmountDetails record { + PaymentFlowsAmountDetailsResourceTip tip?; +}; + +# Represents the Queries record for the operation: GetSetupIntentsIntent +public type GetSetupIntentsIntentQueries record { + # Specifies which fields in the response should be expanded + GetSetupIntentsIntentQueriesExpandItemsString[] expand?; + # The client secret of the SetupIntent. We require this string if you use a publishable key to retrieve the SetupIntent + @http:Query {name: "client_secret"} + string clientSecret?; +}; + +@constraint:String {maxLength: 5000} +public type GetPricesPriceQueriesExpandItemsString string; + +public type CustomerSourcesBody record {| + # A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details + @jsondata:Name {value: "alipay_account"} + string alipayAccount?; + # Specifies which fields in the response should be expanded + CustomerSourcesBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Please refer to full [documentation](https://stripe.com/docs/api) instead + @constraint:String {maxLength: 5000} + string 'source?; + # A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) + record {string address_city?; string address_country?; string address_line1?; string address_line2?; string address_state?; string address_zip?; string cvc?; int exp_month; int exp_year; record {|string...;|} metadata?; string name?; string number; "card" 'object?;}|string card?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; string country; string currency?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; +|}; + +# Represents the Queries record for the operation: GetCustomersSearch +public type GetCustomersSearchQueries record { + # Specifies which fields in the response should be expanded + GetCustomersSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for customers](https://stripe.com/docs/search#query-fields-for-customers) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +public type AccountSessionsBody record {| + AccountSessionCreateComponentsParam components; + # Specifies which fields in the response should be expanded + AccountSessionsBodyExpandItemsString[] expand?; + # The identifier of the account to create an Account Session for + string account; +|}; + +@constraint:String {maxLength: 5000} +public type GetReportingReportRunsReportRunQueriesExpandItemsString string; + +public type ExternalAccountRequirementsPastdueItemsString string; + +public type Created14RangeQuerySpecs152 int; + +# Invoices are statements of amounts owed by a customer, and are either +# generated one-off, or generated periodically from a subscription. +# +# They contain [invoice items](https://stripe.com/docs/api#invoiceitems), and proration adjustments +# that may be caused by subscription upgrades/downgrades (if necessary). +# +# If your invoice is configured to be billed through automatic charges, +# Stripe automatically finalizes your invoice and attempts payment. Note +# that finalizing the invoice, +# [when automatic](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection), does +# not happen immediately as the invoice is created. Stripe waits +# until one hour after the last webhook was successfully sent (or the last +# webhook timed out after failing). If you (and the platforms you may have +# connected to) have no webhooks configured, Stripe waits one hour after +# creation to finalize the invoice. +# +# If your invoice is configured to be billed by sending an email, then based on your +# [email settings](https://dashboard.stripe.com/account/billing/automatic), +# Stripe will email the invoice to your customer and await payment. These +# emails can contain a link to a hosted page to pay the invoice. +# +# Stripe applies any customer credit on the account before determining the +# amount due for the invoice (i.e., the amount that will be actually +# charged). If the amount due for the invoice is less than Stripe's [minimum allowed charge +# per currency](/docs/currencies#minimum-and-maximum-charge-amounts), the +# invoice is automatically marked paid, and we add the amount due to the +# customer's credit balance which is applied to the next invoice. +# +# More details on the customer's credit balance are +# [here](https://stripe.com/docs/billing/customer/balance). +# +# Related guide: [Send invoices to customers](https://stripe.com/docs/billing/invoices/sending) +public type Invoice record { + # The amount, in cents (or local equivalent), that was paid + @jsondata:Name {value: "amount_paid"} + int amountPaid; + # The difference between amount_due and amount_paid, in cents (or local equivalent) + @jsondata:Name {value: "amount_remaining"} + int amountRemaining; + # The customer's shipping information. Until the invoice is finalized, this field will equal `customer.shipping`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_shipping"} + Shipping? customerShipping?; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The aggregate amounts calculated per tax rate for all line items + @jsondata:Name {value: "total_tax_amounts"} + InvoiceTaxAmount[] totalTaxAmounts; + # Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts + Discount? discount?; + # This is the sum of all the shipping amounts + @jsondata:Name {value: "amount_shipping"} + int amountShipping; + ConnectAccountReference issuer; + # Extra information about an invoice for the customer's credit card statement + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # The account (if any) the payment will be attributed to for tax reporting, and where funds from the payment will be transferred to for the invoice + @jsondata:Name {value: "transfer_data"} + InvoiceTransferData? transferData?; + # A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified + string? number?; + # The quote this invoice was generated from + string|Quote? quote?; + # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action + @jsondata:Name {value: "auto_advance"} + boolean autoAdvance?; + # The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount + InvoiceDiscounts[] discounts; + # The integer amount in cents (or local equivalent) representing the subtotal of the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated + @jsondata:Name {value: "subtotal_excluding_tax"} + int? subtotalExcludingTax?; + # Start of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the [line item period](/api/invoices/line_item#invoice_line_item_object-period) to get the service period for each price + @jsondata:Name {value: "period_start"} + int periodStart; + # Details of the invoice that was cloned. See the [revision documentation](https://stripe.com/docs/invoicing/invoice-revisions) for more details + @jsondata:Name {value: "from_invoice"} + InvoicesResourceFromInvoice? fromInvoice?; + # Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due` + @jsondata:Name {value: "amount_due"} + int amountDue; + # Unique identifier for the object. This property is always present unless the invoice is an upcoming invoice. See [Retrieve an upcoming invoice](https://stripe.com/docs/api/invoices/upcoming) for more details + @constraint:String {maxLength: 5000} + string id?; + @jsondata:Name {value: "payment_settings"} + InvoicesPaymentSettings paymentSettings; + # The customer's address. Until the invoice is finalized, this field will equal `customer.address`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_address"} + Address? customerAddress?; + # ID of the test clock this invoice belongs to + @jsondata:Name {value: "test_clock"} + string|TestHelpersTestClock? testClock?; + # Returns true if the invoice was manually marked paid, returns false if the invoice hasn't been paid yet or was paid on Stripe + @jsondata:Name {value: "paid_out_of_band"} + boolean paidOutOfBand; + # The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Custom fields displayed on the invoice + @jsondata:Name {value: "custom_fields"} + InvoiceSettingCustomField[]? customFields?; + # The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_phone"} + string? customerPhone?; + # Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null + @jsondata:Name {value: "ending_balance"} + int? endingBalance?; + # The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page + InvoicesResourceInvoiceRendering? rendering?; + # The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice + int? tax?; + # End of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the [line item period](/api/invoices/line_item#invoice_line_item_object-period) to get the service period for each price + @jsondata:Name {value: "period_end"} + int periodEnd; + # Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have [been exhausted](https://stripe.com/docs/billing/webhooks#understand). This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created + @jsondata:Name {value: "webhooks_delivered_at"} + int? webhooksDeliveredAt?; + # Details about the subscription that created this invoice + @jsondata:Name {value: "subscription_details"} + SubscriptionDetailsData? subscriptionDetails?; + # Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or exclusive tax is applied. Item discounts are already incorporated + int subtotal; + # The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_email"} + string? customerEmail?; + # The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent? paymentIntent?; + # The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice` + @jsondata:Name {value: "next_payment_attempt"} + int? nextPaymentAttempt?; + # The fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid + @jsondata:Name {value: "application_fee_amount"} + int? applicationFeeAmount?; + # String representing the object's type. Objects of the same type share the same value + "invoice" 'object; + # The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview) + "draft"|"open"|"paid"|"uncollectible"|"void"? status?; + # The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null + @jsondata:Name {value: "invoice_pdf"} + string? invoicePdf?; + # Footer displayed on the invoice + string? footer?; + # Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer + @jsondata:Name {value: "shipping_details"} + Shipping? shippingDetails?; + # An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard + string? description?; + # The subscription that this invoice was prepared for, if any + string|Subscription? subscription?; + # Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance. For revision invoices, this also includes any customer balance that was applied to the original invoice + @jsondata:Name {value: "starting_balance"} + int startingBalance; + @jsondata:Name {value: "threshold_reason"} + InvoiceThresholdReason thresholdReason?; + # Total after discounts and taxes + int total; + # Total amount of all pre-payment credit notes issued for this invoice + @jsondata:Name {value: "pre_payment_credit_notes_amount"} + int prePaymentCreditNotesAmount; + # The public name of the business associated with this invoice, most often the business creating the invoice + @jsondata:Name {value: "account_name"} + string? accountName?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # The country of the business associated with this invoice, most often the business creating the invoice + @jsondata:Name {value: "account_country"} + string? accountCountry?; + InvoiceLinesList1 lines; + # Only set for upcoming invoices that preview prorations. The time used to calculate prorations + @jsondata:Name {value: "subscription_proration_date"} + int subscriptionProrationDate?; + # The aggregate amounts calculated per discount across all line items + @jsondata:Name {value: "total_discount_amounts"} + DiscountsResourceDiscountAmount[]? totalDiscountAmounts?; + # Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule. If a failure is returned with a non-retryable return code, the invoice can no longer be retried unless a new payment method is obtained. Retries will continue to be scheduled, and attempt_count will continue to increment, but retries will only be executed if a new payment method is obtained + @jsondata:Name {value: "attempt_count"} + int attemptCount; + # The tax rates applied to this invoice, if any + @jsondata:Name {value: "default_tax_rates"} + TaxRate[] defaultTaxRates; + # ID of the latest charge generated for this invoice, if any + string|Charge? charge?; + # The error encountered during the previous attempt to finalize the invoice. This field is cleared when the invoice is successfully finalized + @jsondata:Name {value: "last_finalization_error"} + ApiErrors? lastFinalizationError?; + # ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source + @jsondata:Name {value: "default_source"} + string|BankAccount|Card|Source? defaultSource?; + # The details of the cost of shipping, including the ShippingRate applied on the invoice + @jsondata:Name {value: "shipping_cost"} + InvoicesResourceShippingCost? shippingCost?; + # The integer amount in cents (or local equivalent) representing the total amount of the invoice including all discounts but excluding all tax + @jsondata:Name {value: "total_excluding_tax"} + int? totalExcludingTax?; + # Total amount of all post-payment credit notes issued for this invoice + @jsondata:Name {value: "post_payment_credit_notes_amount"} + int postPaymentCreditNotesAmount; + # ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings + @jsondata:Name {value: "default_payment_method"} + string|PaymentMethod? defaultPaymentMethod?; + # The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically` + @jsondata:Name {value: "due_date"} + int? dueDate?; + # Indicates the reason why the invoice was created. + # + # * `manual`: Unrelated to a subscription, for example, created via the invoice editor. + # * `subscription`: No longer in use. Applies to subscriptions from before May 2018 where no distinction was made between updates, cycles, and thresholds. + # * `subscription_create`: A new subscription was created. + # * `subscription_cycle`: A subscription advanced into a new period. + # * `subscription_threshold`: A subscription reached a billing threshold. + # * `subscription_update`: A subscription was updated. + # * `upcoming`: Reserved for simulated invoices, per the upcoming invoice endpoint + @jsondata:Name {value: "billing_reason"} + "automatic_pending_invoice_item_invoice"|"manual"|"quote_accept"|"subscription"|"subscription_create"|"subscription_cycle"|"subscription_threshold"|"subscription_update"|"upcoming"? billingReason?; + # The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt + @jsondata:Name {value: "effective_at"} + int? effectiveAt?; + # The account tax IDs associated with the invoice. Only editable when the invoice is a draft + @jsondata:Name {value: "account_tax_ids"} + InvoiceAccountTaxIds[]? accountTaxIds?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTax automaticTax; + # This is the transaction number that appears on email receipts sent for this invoice + @jsondata:Name {value: "receipt_number"} + string? receiptNumber?; + # ID of the Connect Application that created the invoice + string|Application|DeletedApplication? application?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod; + # The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as `customer.tax_ids`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_tax_ids"} + InvoicesResourceInvoiceTaxId[]? customerTaxIds?; + # The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null + @jsondata:Name {value: "hosted_invoice_url"} + string? hostedInvoiceUrl?; + # Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance + boolean paid; + # Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users + boolean attempted; + # The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_name"} + string? customerName?; + @jsondata:Name {value: "status_transitions"} + InvoicesResourceStatusTransitions statusTransitions; + # The ID of the customer who will be billed + string|Customer|DeletedCustomer? customer?; + # The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated + @jsondata:Name {value: "customer_tax_exempt"} + "exempt"|"none"|"reverse"? customerTaxExempt?; + # The ID of the most recent non-draft revision of this invoice + @jsondata:Name {value: "latest_revision"} + string|Invoice? latestRevision?; +}; + +# +public type CustomerTax record { + # Surfaces if automatic tax computation is possible given the current customer location information + @jsondata:Name {value: "automatic_tax"} + "failed"|"not_collecting"|"supported"|"unrecognized_location" automaticTax; + # The customer's location as identified by Stripe Tax + CustomerTaxLocation? location?; + # A recent IP address of the customer used for tax reporting and tax location inference + @jsondata:Name {value: "ip_address"} + string? ipAddress?; +}; + +# A paginated list of owners for this account +public type BankConnectionsResourceOwnerList1 record { + # Details about each object + FinancialConnectionsAccountOwner[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type Discounts DiscountsAnyOf16|DiscountsDiscountsAnyOf162; + +# Params for disputes related to Treasury FinancialAccounts +public type TreasuryParam record { + @jsondata:Name {value: "received_debit"} + string receivedDebit; +}; + +public type ChargeCaptureBody record {| + # For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs1 transferData?; + # The amount to capture, which must be less than or equal to the original amount. Any additional amount will be automatically refunded + int amount?; + # Specifies which fields in the response should be expanded + ChargeCaptureBodyExpandItemsString[] expand?; + # A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + # The email address to send this charge's receipt to. This will override the previously-specified email address for this charge, if one was set. Receipts will not be sent in test mode + @jsondata:Name {value: "receipt_email"} + string receiptEmail?; + # An application fee to add on to this charge + @jsondata:Name {value: "application_fee"} + int applicationFee?; + # Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; + # An application fee amount to add on to this charge, which must be less than or equal to the original amount + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; +|}; + +# Configuration for each component. Exactly 1 component must be enabled +public type Components record { + @jsondata:Name {value: "payment_element"} + PaymentElementParam paymentElement?; + @jsondata:Name {value: "pricing_table"} + PricingTableParam pricingTable?; + @jsondata:Name {value: "buy_button"} + BuyButtonParam buyButton?; +}; + +# Represents a cart to be displayed on the reader +public type TerminalReaderReaderResourceCart record { + # Total amount for the entire cart, including tax. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int total; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Tax amount for the entire cart. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int? tax?; + # List of line items in the cart + @jsondata:Name {value: "line_items"} + TerminalReaderReaderResourceLineItem[] lineItems; +}; + +public type QuoteCancelBody record {| + # Specifies which fields in the response should be expanded + QuoteCancelBodyExpandItemsString[] expand?; +|}; + +# +public type PaymentMethodOptionsPromptpay record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type PortalInvoiceList record { + # Whether the feature is enabled + boolean enabled; +}; + +public type IdRefundBody record {| + int amount?; + # Specifies which fields in the response should be expanded + IdRefundBodyExpandItemsString[] expand?; + @constraint:String {maxLength: 5000} + string directive?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryReceivedCreditsQueriesExpandItemsString string; + +# +public type AccountBacsDebitPaymentsSettings record { + # The Bacs Direct Debit display name for this account. For payments made with Bacs Direct Debit, this name appears on the mandate as the statement descriptor. Mobile banking apps display it as the name of the business. To use custom branding, set the Bacs Direct Debit Display Name during or right after creation. Custom branding incurs an additional monthly fee for the platform. The fee appears 5 business days after requesting Bacs. If you don't set the display name before requesting Bacs capability, it's automatically set as "Stripe" and the account is onboarded to Stripe branding, which is free + @jsondata:Name {value: "display_name"} + string? displayName?; + # The Bacs Direct Debit Service user number for this account. For payments made with Bacs Direct Debit, this number is a unique identifier of the account with our banking partners + @jsondata:Name {value: "service_user_number"} + string? serviceUserNumber?; +}; + +# +public type SetupAttemptPaymentMethodDetailsSepaDebit record { +}; + +# The person's address +public type LegalEntityAndKycAddressSpecs1 record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 100} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 200} + string line2?; + @constraint:String {maxLength: 200} + string line1?; +}; + +# +public type SubscriptionTransferData record { + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination + @jsondata:Name {value: "amount_percent"} + decimal? amountPercent?; + # The account where funds from the payment will be transferred to upon payment success + string|Account destination; +}; + +@constraint:String {maxLength: 5000} +public type AccountUnsubscribeBodyExpandItemsString string; + +# +public type PortalFlowsAfterCompletionRedirect record { + # The URL the customer will be redirected to after the flow is completed + @jsondata:Name {value: "return_url"} + string returnUrl; +}; + +# Represents the Queries record for the operation: GetAccountsAccountBankAccountsId +public type GetAccountsAccountBankAccountsIdQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountBankAccountsIdQueriesExpandItemsString[] expand?; +}; + +public type SetupIntentsBodyPaymentmethodtypesItemsString string; + +public type IssuingCardsBody record {| + @jsondata:Name {value: "financial_account"} + string financialAccount?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "spending_controls"} + AuthorizationControlsParam spendingControls?; + # The [Cardholder](https://stripe.com/docs/api#issuing_cardholder_object) object with which the card will be associated + @constraint:String {maxLength: 5000} + string cardholder?; + # The type of card to issue. Possible values are `physical` or `virtual` + "physical"|"virtual" 'type; + # The second line to print on the card + @jsondata:Name {value: "second_line"} + string|"" secondLine?; + # Specifies which fields in the response should be expanded + IssuingCardsBodyExpandItemsString[] expand?; + # The personalization design object belonging to this card + @jsondata:Name {value: "personalization_design"} + string personalizationDesign?; + EncryptedPinParam pin?; + ShippingSpecs shipping?; + # If `replacement_for` is specified, this should indicate why that card is being replaced + @jsondata:Name {value: "replacement_reason"} + "damaged"|"expired"|"lost"|"stolen" replacementReason?; + # The currency for the card + string currency; + # The card this is meant to be a replacement for (if any) + @jsondata:Name {value: "replacement_for"} + string replacementFor?; + # Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive` + "active"|"inactive" status?; +|}; + +# Evidence provided for the dispute +public type EvidenceParam record { + record {string|"" additional_documentation?; int|"" canceled_at?; boolean|"" cancellation_policy_provided?; string|"" cancellation_reason?; int|"" expected_at?; string|"" explanation?; string|"" product_description?; ""|"merchandise"|"service" product_type?; ""|"merchant_rejected"|"successful" return_status?; int|"" returned_at?;}|"" canceled?; + "canceled"|"duplicate"|"fraudulent"|"merchandise_not_as_described"|"no_valid_authorization"|"not_received"|"other"|"service_not_as_described" reason?; + record {string|"" additional_documentation?; string|"" explanation?; string|"" product_description?; ""|"merchandise"|"service" product_type?;}|"" other?; + @jsondata:Name {value: "service_not_as_described"} + record {string|"" additional_documentation?; int|"" canceled_at?; string|"" cancellation_reason?; string|"" explanation?; int|"" received_at?;}|"" serviceNotAsDescribed?; + @jsondata:Name {value: "no_valid_authorization"} + record {string|"" additional_documentation?; string|"" explanation?;}|"" noValidAuthorization?; + record {string|"" additional_documentation?; string|"" card_statement?; string|"" cash_receipt?; string|"" check_image?; string|"" explanation?; string original_transaction?;}|"" duplicate?; + @jsondata:Name {value: "not_received"} + record {string|"" additional_documentation?; int|"" expected_at?; string|"" explanation?; string|"" product_description?; ""|"merchandise"|"service" product_type?;}|"" notReceived?; + @jsondata:Name {value: "merchandise_not_as_described"} + record {string|"" additional_documentation?; string|"" explanation?; int|"" received_at?; string|"" return_description?; ""|"merchant_rejected"|"successful" return_status?; int|"" returned_at?;}|"" merchandiseNotAsDescribed?; + record {string|"" additional_documentation?; string|"" explanation?;}|"" fraudulent?; +}; + +# Represents the Queries record for the operation: GetCheckoutSessionsSessionLineItems +public type GetCheckoutSessionsSessionLineItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCheckoutSessionsSessionLineItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PortalSubscriptionUpdate record { + # The types of subscription updates that are supported for items listed in the `products` attribute. When empty, subscriptions are not updateable + @jsondata:Name {value: "default_allowed_updates"} + ("price"|"promotion_code"|"quantity")[] defaultAllowedUpdates; + # Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. Defaults to a value of `none` if you don't set it during creation + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior; + # Whether the feature is enabled + boolean enabled; + # The list of up to 10 products that support subscription updates + PortalSubscriptionUpdateProduct[]? products?; +}; + +# +public type TreasuryFinancialAccountsResourceFinancialAccountList record { + TreasuryFinancialAccount[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/treasury/financial_accounts`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type BankAccountsidBody record {| + # The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza` + @jsondata:Name {value: "account_type"} + "checking"|"futsu"|"savings"|"toza" accountType?; + # 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` + record {|string...;|}|"" metadata?; + ExternalAccountDocumentsParam documents?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + # Billing address country, if provided when creating card + @jsondata:Name {value: "address_country"} + string addressCountry?; + # State/County/Province/Region + @jsondata:Name {value: "address_state"} + string addressState?; + # Two digit number representing the card’s expiration month + @jsondata:Name {value: "exp_month"} + string expMonth?; + # Four digit number representing the card’s expiration year + @jsondata:Name {value: "exp_year"} + string expYear?; + # City/District/Suburb/Town/Village + @jsondata:Name {value: "address_city"} + string addressCity?; + # Specifies which fields in the response should be expanded + BankAccountsidBodyExpandItemsString[] expand?; + # Address line 2 (Apartment/Suite/Unit/Building) + @jsondata:Name {value: "address_line2"} + string addressLine2?; + # Address line 1 (Street address/PO Box/Company name) + @jsondata:Name {value: "address_line1"} + string addressLine1?; + # The type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + ""|"company"|"individual" accountHolderType?; + # Cardholder name + @constraint:String {maxLength: 5000} + string name?; + # ZIP or postal code + @jsondata:Name {value: "address_zip"} + string addressZip?; + # When set to true, this becomes the default external account for its currency + @jsondata:Name {value: "default_for_currency"} + boolean defaultForCurrency?; +|}; + +# +public type TreasuryInboundTransfersResourceFailureDetails record { + # Reason for the failure + "account_closed"|"account_frozen"|"bank_account_restricted"|"bank_ownership_changed"|"debit_not_authorized"|"incorrect_account_holder_address"|"incorrect_account_holder_name"|"incorrect_account_holder_tax_id"|"insufficient_funds"|"invalid_account_number"|"invalid_currency"|"no_account"|"other" code; +}; + +# +public type PaymentPagesCheckoutSessionConsent record { + # If `opt_in`, the customer consents to receiving promotional communications + # from the merchant about this Checkout Session + "opt_in"|"opt_out"? promotions?; + # If `accepted`, the customer in this Checkout Session has agreed to the merchant's terms of service + @jsondata:Name {value: "terms_of_service"} + "accepted"? termsOfService?; +}; + +# Specifies which event to cancel +public type EventAdjustmentCancelSettingsParam record { + @constraint:String {maxLength: 100} + string identifier?; +}; + +public type ProductData record { + string[] images?; + record {|string...;|} metadata?; + @jsondata:Name {value: "tax_code"} + string taxCode?; + @constraint:String {maxLength: 5000} + string name; + @constraint:String {maxLength: 40000} + string description?; +}; + +@constraint:String {maxLength: 5000} +public type GetPaymentMethodConfigurationsQueriesExpandItemsString string; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceAppliedToPaymentTransaction record { + # The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were applied to + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent paymentIntent; +}; + +public type LineslineItemIdBody record {| + # The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount + int amount?; + # Specifies which fields in the response should be expanded + LineslineItemIdBodyExpandItemsString[] expand?; + # 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`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data + record {|string...;|}|"" metadata?; + Period1 period?; + @jsondata:Name {value: "price_data"} + OneTimePriceDataWithProductData1 priceData?; + # Non-negative integer. The quantity of units for the line item + int quantity?; + # The coupons, promotion codes & existing discounts which apply to the line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # The ID of the price object. One of `price` or `price_data` is required + @constraint:String {maxLength: 5000} + string price?; + # An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking + @constraint:String {maxLength: 5000} + string description?; + # Controls whether discounts apply to this line item. Defaults to false for prorations or negative line items, and true for all other line items. Cannot be set to true for prorations + boolean discountable?; + # A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes on your own or use a third-party to calculate them. You cannot set tax amounts if any line item has [tax_rates](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-tax_rates) or if the invoice has [default_tax_rates](https://stripe.com/docs/api/invoices/object#invoice_object-default_tax_rates) or uses [automatic tax](https://stripe.com/docs/tax/invoicing). Pass an empty string to remove previously defined tax amounts + @jsondata:Name {value: "tax_amounts"} + record {int amount; record {string country?; string description?; string display_name; boolean inclusive; string jurisdiction?; decimal percentage; string state?; "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat" tax_type?;} tax_rate_data; int taxable_amount;}[]|"" taxAmounts?; + # The tax rates which apply to the line item. When set, the `default_tax_rates` on the invoice do not apply to this line item. Pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +|}; + +@constraint:String {maxLength: 5000} +public type GetChargesChargeQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type RefundsidBodyExpandItemsString string; + +# +public type TreasuryOutboundPaymentsResourceOutboundPaymentResourceStatusTransitions record { + # Timestamp describing when an OutboundPayment changed status to `returned` + @jsondata:Name {value: "returned_at"} + int? returnedAt?; + # Timestamp describing when an OutboundPayment changed status to `canceled` + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Timestamp describing when an OutboundPayment changed status to `failed` + @jsondata:Name {value: "failed_at"} + int? failedAt?; + # Timestamp describing when an OutboundPayment changed status to `posted` + @jsondata:Name {value: "posted_at"} + int? postedAt?; +}; + +public type MandateOfflineAcceptanceParams record { + @jsondata:Name {value: "contact_email"} + string contactEmail; +}; + +# Represents a reader action to process a payment intent +public type TerminalReaderReaderResourceProcessPaymentIntentAction record { + @jsondata:Name {value: "process_config"} + TerminalReaderReaderResourceProcessConfig processConfig?; + # Most recent PaymentIntent processed by the reader + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent paymentIntent; +}; + +# Represents the Queries record for the operation: GetTopupsTopup +public type GetTopupsTopupQueries record { + # Specifies which fields in the response should be expanded + GetTopupsTopupQueriesExpandItemsString[] expand?; +}; + +public type OwnerParams record { + "account"|"application"|"customer"|"self" 'type; + string account?; + @constraint:String {maxLength: 5000} + string customer?; +}; + +# +public type DeletedProductFeature record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "product_feature" 'object; +}; + +public type OnBehalfOf OnBehalfOfAnyOf1|OnBehalfOfOnBehalfOfAnyOf12; + +public type TransactedAt RangeQuerySpecs13|TransactedAtRangeQuerySpecs132; + +public type LinkedAccountOptionsParam record { + (LinkedAccountOptionsParamPermissionsItemsString)[] permissions?; + ("balances"|"ownership"|"transactions")[] prefetch?; +}; + +public type Created46RangeQuerySpecs562 int; + +# Represents the Queries record for the operation: GetPaymentMethodConfigurations +public type GetPaymentMethodConfigurationsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPaymentMethodConfigurationsQueriesExpandItemsString[] expand?; + # The Connect application to filter by + Application1 application?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentIntentNextActionDisplayOxxoDetails record { + # OXXO reference number + string? number?; + # The timestamp after which the OXXO voucher expires + @jsondata:Name {value: "expires_after"} + int? expiresAfter?; + # The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO voucher + @jsondata:Name {value: "hosted_voucher_url"} + string? hostedVoucherUrl?; +}; + +# +public type InvoicePaymentMethodOptionsCustomerBalance record { + @jsondata:Name {value: "bank_transfer"} + InvoicePaymentMethodOptionsCustomerBalanceBankTransfer bankTransfer?; + # The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer` + @jsondata:Name {value: "funding_type"} + "bank_transfer"? fundingType?; +}; + +# A feature represents a monetizable ability or functionality in your system. +# Features can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer +public type EntitlementsFeature record { + # Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The feature's name, for your own purpose, not meant to be displayable to the customer + @constraint:String {maxLength: 80} + string name; + # Inactive features cannot be attached to new products and will not be returned from the features list endpoint + boolean active; + # A unique key you provide as your own system identifier. This may be up to 80 characters + @jsondata:Name {value: "lookup_key"} + string lookupKey; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "entitlements.feature" 'object; +}; + +# +public type DisputeList record { + Dispute[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/disputes`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetChargesChargeRefundsQueriesExpandItemsString string; + +public type QuotesBody record {| + @jsondata:Name {value: "invoice_settings"} + QuoteParam invoiceSettings?; + # The tax rates that will apply to any line item that does not have `tax_rates` set + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # 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` + record {|string...;|} metadata?; + # ID of the test clock to attach to the quote + @jsondata:Name {value: "test_clock"} + string testClock?; + # A footer that will be displayed on the quote PDF. If no value is passed, the default footer configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used + string|"" footer?; + # The account on behalf of which to charge + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + # A description that will be displayed on the quote PDF. If no value is passed, the default description configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used + string|"" description?; + # A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost + @jsondata:Name {value: "line_items"} + LineItemCreateParams[] lineItems?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field + @jsondata:Name {value: "application_fee_percent"} + decimal|"" applicationFeePercent?; + # The data with which to automatically create a Transfer for each of the invoices + @jsondata:Name {value: "transfer_data"} + record {int amount?; decimal amount_percent?; string destination;}|"" transferData?; + # Specifies which fields in the response should be expanded + QuotesBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParam5 automaticTax?; + # A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. If no value is passed, the default expiration date configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used + @jsondata:Name {value: "expires_at"} + int expiresAt?; + @jsondata:Name {value: "subscription_data"} + SubscriptionDataCreateParams subscriptionData?; + # The discounts applied to the quote. You can only set up to one discount + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "from_quote"} + FromQuoteParams fromQuote?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # A header that will be displayed on the quote PDF. If no value is passed, the default header configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used + string|"" header?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field + @jsondata:Name {value: "application_fee_amount"} + int|"" applicationFeeAmount?; + # The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed + @constraint:String {maxLength: 5000} + string customer?; +|}; + +@constraint:String {maxLength: 5000} +public type GetProductsProductFeaturesQueriesExpandItemsString string; + +# +public type PaymentMethodBoleto record { + # Uniquely identifies the customer tax id (CNPJ or CPF) + @jsondata:Name {value: "tax_id"} + string taxId; +}; + +public type ReceiptSpecs record { + int total?; + string quantity?; + @constraint:String {maxLength: 26} + string description?; + @jsondata:Name {value: "unit_cost"} + int unitCost?; +}; + +public type MethodParams record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @jsondata:Name {value: "fixed_amount"} + FixedAmount fixedAmount?; + record {|string...;|} metadata?; + @jsondata:Name {value: "tax_code"} + string taxCode?; + @jsondata:Name {value: "display_name"} + string displayName; + "fixed_amount" 'type?; + @jsondata:Name {value: "delivery_estimate"} + DeliveryEstimate deliveryEstimate?; +}; + +# +public type LegalEntityJapanAddress record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + string? country?; + # Town/cho-me + string? town?; + # City/Ward + string? city?; + # Prefecture + string? state?; + # ZIP or postal code + @jsondata:Name {value: "postal_code"} + string? postalCode?; + # Building details + string? line2?; + # Block/Building number + string? line1?; +}; + +# Represents the Queries record for the operation: GetAccountsAccountExternalAccounts +public type GetAccountsAccountExternalAccountsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetAccountsAccountExternalAccountsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Filter external accounts according to a particular object type + "bank_account"|"card" 'object?; +}; + +@constraint:String {maxLength: 5000} +public type QuotesquoteBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetClimateSuppliersSupplierQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ShippingShipBodyExpandItemsString string; + +# +public type QuotesResourceAutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # Automatically calculate taxes + boolean enabled; + # The status of the most recent automated tax calculation for this quote + "complete"|"failed"|"requires_location_inputs"? status?; +}; + +# Represents the Queries record for the operation: GetAccounts +public type GetAccountsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetAccountsQueriesExpandItemsString[] expand?; + # Only return connected accounts that were created during the given date interval + Created created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type PaymentMethodReuseAgreementParams record { + "auto"|"hidden" position; +}; + +# +public type PaymentIntentNextAction record { + @jsondata:Name {value: "card_await_notification"} + PaymentIntentNextActionCardAwaitNotification cardAwaitNotification?; + @jsondata:Name {value: "display_bank_transfer_instructions"} + PaymentIntentNextActionDisplayBankTransferInstructions displayBankTransferInstructions?; + @jsondata:Name {value: "oxxo_display_details"} + PaymentIntentNextActionDisplayOxxoDetails oxxoDisplayDetails?; + @jsondata:Name {value: "swish_handle_redirect_or_display_qr_code"} + PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode swishHandleRedirectOrDisplayQrCode?; + @jsondata:Name {value: "pix_display_qr_code"} + PaymentIntentNextActionPixDisplayQrCode pixDisplayQrCode?; + @jsondata:Name {value: "wechat_pay_redirect_to_android_app"} + PaymentIntentNextActionWechatPayRedirectToAndroidApp wechatPayRedirectToAndroidApp?; + @jsondata:Name {value: "konbini_display_details"} + PaymentIntentNextActionKonbini konbiniDisplayDetails?; + # Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits` + @constraint:String {maxLength: 5000} + string 'type; + @jsondata:Name {value: "boleto_display_details"} + PaymentIntentNextActionBoleto boletoDisplayDetails?; + @jsondata:Name {value: "verify_with_microdeposits"} + PaymentIntentNextActionVerifyWithMicrodeposits verifyWithMicrodeposits?; + @jsondata:Name {value: "paynow_display_qr_code"} + PaymentIntentNextActionPaynowDisplayQrCode paynowDisplayQrCode?; + @jsondata:Name {value: "redirect_to_url"} + PaymentIntentNextActionRedirectToUrl redirectToUrl?; + @jsondata:Name {value: "wechat_pay_redirect_to_ios_app"} + PaymentIntentNextActionWechatPayRedirectToIosApp wechatPayRedirectToIosApp?; + @jsondata:Name {value: "alipay_handle_redirect"} + PaymentIntentNextActionAlipayHandleRedirect alipayHandleRedirect?; + @jsondata:Name {value: "cashapp_handle_redirect_or_display_qr_code"} + PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode cashappHandleRedirectOrDisplayQrCode?; + @jsondata:Name {value: "multibanco_display_details"} + PaymentIntentNextActionDisplayMultibancoDetails multibancoDisplayDetails?; + @jsondata:Name {value: "wechat_pay_display_qr_code"} + PaymentIntentNextActionWechatPayDisplayQrCode wechatPayDisplayQrCode?; + # When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js + @jsondata:Name {value: "use_stripe_sdk"} + record {} useStripeSdk?; + @jsondata:Name {value: "promptpay_display_qr_code"} + PaymentIntentNextActionPromptpayDisplayQrCode promptpayDisplayQrCode?; +}; + +public type SourceTypeAchDebit record { + string? country?; + string? last4?; + @jsondata:Name {value: "bank_name"} + string? bankName?; + string? fingerprint?; + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + string? 'type?; +}; + +# Revise an existing invoice. The new invoice will be created in `status=draft`. See the [revision documentation](https://stripe.com/docs/invoicing/invoice-revisions) for more details +public type FromInvoice record { + "revision" action; + @constraint:String {maxLength: 5000} + string invoice; +}; + +# Result from a selfie check +public type GelatoSelfieReport record { + # ID of the [File](https://stripe.com/docs/api/files) holding the image of the identity document used in this check + string? document?; + # ID of the [File](https://stripe.com/docs/api/files) holding the image of the selfie used in this check + string? selfie?; + # Details on the verification error. Present when status is `unverified` + GelatoSelfieReportError? 'error?; + # Status of this `selfie` check + "unverified"|"verified" status; +}; + +# +public type PaymentFlowsSetupIntentSetupAttemptList record { + SetupAttempt[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/setup_attempts`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SetupIntentTypeSpecificPaymentMethodOptionsClient record { + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountPeopleQueriesExpandItemsString string; + +public type ReaderProcessSetupIntentBody record {| + # Specifies which fields in the response should be expanded + ReaderProcessSetupIntentBodyExpandItemsString[] expand?; + # SetupIntent ID + @jsondata:Name {value: "setup_intent"} + string setupIntent; + @jsondata:Name {value: "process_config"} + ProcessSetupConfig processConfig?; + # Customer Consent Collected + @jsondata:Name {value: "customer_consent_collected"} + boolean customerConsentCollected; +|}; + +# +public type PaymentMethodOptionsZip record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type PaymentFlowsSetupIntentList record { + SetupIntent[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/setup_intents`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetAppsSecretsFindQueriesExpandItemsString string; + +public type SourceTypeGiropay record { + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + @jsondata:Name {value: "bank_code"} + string? bankCode?; + @jsondata:Name {value: "bank_name"} + string? bankName?; + string? bic?; +}; + +public type DocumentsParam8Files FilesAnyOf17|FilesFilesAnyOf172; + +# +public type NotificationEventRequest record { + # The idempotency key transmitted during the request, if any. *Note: This property is populated only for events on or after May 23, 2017* + @jsondata:Name {value: "idempotency_key"} + string? idempotencyKey?; + # ID of the API request that caused the event. If null, the event was automatic (e.g., Stripe's automatic subscription handling). Request logs are available in the [dashboard](https://dashboard.stripe.com/logs), but currently not in the API + string? id?; +}; + +# Represents an action performed by the reader +public type TerminalReaderReaderResourceReaderAction record { + # Failure code, only set if status is `failed` + @jsondata:Name {value: "failure_code"} + string? failureCode?; + @jsondata:Name {value: "process_setup_intent"} + TerminalReaderReaderResourceProcessSetupIntentAction processSetupIntent?; + @jsondata:Name {value: "refund_payment"} + TerminalReaderReaderResourceRefundPaymentAction refundPayment?; + @jsondata:Name {value: "set_reader_display"} + TerminalReaderReaderResourceSetReaderDisplayAction setReaderDisplay?; + # Detailed failure message, only set if status is `failed` + @jsondata:Name {value: "failure_message"} + string? failureMessage?; + @jsondata:Name {value: "process_payment_intent"} + TerminalReaderReaderResourceProcessPaymentIntentAction processPaymentIntent?; + # Type of action performed by the reader + "process_payment_intent"|"process_setup_intent"|"refund_payment"|"set_reader_display" 'type; + # Status of the action performed by the reader + "failed"|"in_progress"|"succeeded" status; +}; + +# Toggle settings for enabling/disabling a feature +public type TreasuryFinancialAccountsResourceToggleSettings record { + # Whether the FinancialAccount should have the Feature + boolean requested; + # Additional details; includes at least one entry when the status is not `active` + @jsondata:Name {value: "status_details"} + TreasuryFinancialAccountsResourceTogglesSettingStatusDetails[] statusDetails; + # Whether the Feature is operational + "active"|"pending"|"restricted" status; +}; + +# +public type IssuingPersonalizationDesignList record { + IssuingPersonalizationDesign[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/personalization_designs`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetBillingPortalConfigurations +public type GetBillingPortalConfigurationsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetBillingPortalConfigurationsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return configurations that are active or inactive (e.g., pass `true` to only list active configurations) + boolean active?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return the default or non-default configurations (e.g., pass `true` to only list the default configuration) + @http:Query {name: "is_default"} + boolean isDefault?; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingAuthorizationsQueriesExpandItemsString string; + +# This object represents a customer of your business. Use it to create recurring charges and track payments that belong to the same customer. +# +# Related guide: [Save a card during payment](https://stripe.com/docs/payments/save-during-payment) +public type Customer record { + # 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 + record {|string...;|} metadata?; + SubscriptionList1 subscriptions?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + ApmsSourcesSourceList1 sources?; + @jsondata:Name {value: "tax_ids"} + TaxIDsList1 taxIds?; + # The suffix of the customer's next invoice number (for example, 0001). When the account uses account level sequencing, this parameter is ignored in API requests and the field omitted in API responses + @jsondata:Name {value: "next_invoice_sequence"} + int nextInvoiceSequence?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Describes the current discount active on the customer, if there is one + Discount? discount?; + # The customer's preferred locales (languages), ordered by preference + @jsondata:Name {value: "preferred_locales"} + CustomerPreferredlocalesItemsString[]? preferredLocales?; + # The current balance, if any, that's stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that's added to their next invoice. The balance only considers amounts that Stripe hasn't successfully applied to any invoice. It doesn't reflect unpaid invoices. This balance is only taken into account after invoices finalize + int balance?; + # Mailing and shipping address for the customer. Appears on invoices emailed to this customer + Shipping? shipping?; + # Tracks the most recent state change on any invoice belonging to the customer. Paying an invoice or marking it uncollectible via the API will set this field to false. An automatic payment failure or passing the `invoice.due_date` will set this field to `true`. + # + # If an invoice becomes uncollectible by [dunning](https://stripe.com/docs/billing/automatic-collection), `delinquent` doesn't reset to `false`. + # + # If you care whether the customer has paid their most recent subscription invoice, use `subscription.status` instead. Paying or marking uncollectible any customer invoice regardless of whether it is the latest invoice for a subscription will always set this field to `false` + boolean? delinquent?; + # Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) the customer can be charged in for recurring billing purposes + string? currency?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The customer's email address + string? email?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingCustomerSetting invoiceSettings?; + # ID of the test clock that this customer belongs to + @jsondata:Name {value: "test_clock"} + string|TestHelpersTestClock? testClock?; + # The customer's address + Address? address?; + # ID of the default payment source for the customer. + # + # If you use payment methods created through the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) field instead + @jsondata:Name {value: "default_source"} + string|BankAccount|Card|Source? defaultSource?; + # The prefix for the customer used to generate unique invoice numbers + @jsondata:Name {value: "invoice_prefix"} + string? invoicePrefix?; + # Describes the customer's tax exemption status, which is `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the following text: **"Reverse charge"** + @jsondata:Name {value: "tax_exempt"} + "exempt"|"none"|"reverse"? taxExempt?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The current multi-currency balances, if any, that's stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that's added to their next invoice denominated in that currency. These balances don't apply to unpaid invoices. They solely track amounts that Stripe hasn't successfully applied to any invoice. Stripe only applies a balance in a specific currency to an invoice after that invoice (which is in the same currency) finalizes + @jsondata:Name {value: "invoice_credit_balance"} + record {|int...;|} invoiceCreditBalance?; + CustomerTax tax?; + # The current funds being held by Stripe on behalf of the customer. You can apply these funds towards payment intents when the source is "cash_balance". The `settings[reconciliation_mode]` field describes if these funds apply to these payment intents manually or automatically + @jsondata:Name {value: "cash_balance"} + CashBalance? cashBalance?; + # The customer's phone number + string? phone?; + # The customer's full name or business name + string? name?; + # String representing the object's type. Objects of the same type share the same value + "customer" 'object; +}; + +# +public type PaymentMethodDetailsMultibanco record { + # Reference number associated with this Multibanco payment + string? reference?; + # Entity number associated with this Multibanco payment + string? entity?; +}; + +public type SourceTypeKlarna record { + @jsondata:Name {value: "pay_later_redirect_url"} + string payLaterRedirectUrl?; + @jsondata:Name {value: "background_image_url"} + string backgroundImageUrl?; + @jsondata:Name {value: "pay_now_name"} + string payNowName?; + @jsondata:Name {value: "logo_url"} + string logoUrl?; + @jsondata:Name {value: "page_title"} + string pageTitle?; + string locale?; + @jsondata:Name {value: "client_token"} + string? clientToken?; + @jsondata:Name {value: "pay_later_asset_urls_descriptive"} + string payLaterAssetUrlsDescriptive?; + @jsondata:Name {value: "pay_later_name"} + string payLaterName?; + @jsondata:Name {value: "payment_method_categories"} + string paymentMethodCategories?; + @jsondata:Name {value: "shipping_delay"} + int shippingDelay?; + @jsondata:Name {value: "pay_now_redirect_url"} + string payNowRedirectUrl?; + @jsondata:Name {value: "pay_later_asset_urls_standard"} + string payLaterAssetUrlsStandard?; + @jsondata:Name {value: "pay_now_asset_urls_standard"} + string payNowAssetUrlsStandard?; + @jsondata:Name {value: "first_name"} + string firstName?; + @jsondata:Name {value: "pay_over_time_redirect_url"} + string payOverTimeRedirectUrl?; + @jsondata:Name {value: "purchase_type"} + string purchaseType?; + @jsondata:Name {value: "shipping_first_name"} + string shippingFirstName?; + @jsondata:Name {value: "pay_now_asset_urls_descriptive"} + string payNowAssetUrlsDescriptive?; + @jsondata:Name {value: "purchase_country"} + string purchaseCountry?; + @jsondata:Name {value: "last_name"} + string lastName?; + @jsondata:Name {value: "pay_over_time_asset_urls_standard"} + string payOverTimeAssetUrlsStandard?; + @jsondata:Name {value: "pay_over_time_name"} + string payOverTimeName?; + @jsondata:Name {value: "pay_over_time_asset_urls_descriptive"} + string payOverTimeAssetUrlsDescriptive?; + @jsondata:Name {value: "shipping_last_name"} + string shippingLastName?; + @jsondata:Name {value: "redirect_url"} + string redirectUrl?; +}; + +public type Created25RangeQuerySpecs282 int; + +@constraint:String {maxLength: 5000} +public type GetLinkAccountSessionsSessionQueriesExpandItemsString string; + +# +public type GelatoPhoneReportError record { + # A human-readable message giving the reason for the failure. These messages can be shown to your users + string? reason?; + # A short machine-readable string giving the reason for the verification failure + "phone_unverified_other"|"phone_verification_declined"? code?; +}; + +# Represents the Queries record for the operation: GetTerminalLocations +public type GetTerminalLocationsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTerminalLocationsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type ThreeDSecureDetails record { + # For authenticated transactions: how the customer was authenticated by + # the issuing bank + @jsondata:Name {value: "authentication_flow"} + "challenge"|"frictionless"? authenticationFlow?; + # Indicates the outcome of 3D Secure authentication + "attempt_acknowledged"|"authenticated"|"exempted"|"failed"|"not_supported"|"processing_error"? result?; + # The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID + # (dsTransId) for this payment + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # The Electronic Commerce Indicator (ECI). A protocol-level field + # indicating what degree of authentication was performed + @jsondata:Name {value: "electronic_commerce_indicator"} + "01"|"02"|"05"|"06"|"07"? electronicCommerceIndicator?; + # The version of 3D Secure that was used + "1.0.2"|"2.1.0"|"2.2.0"? version?; + # Additional information about why 3D Secure succeeded or failed based + # on the `result` + @jsondata:Name {value: "result_reason"} + "abandoned"|"bypassed"|"canceled"|"card_not_enrolled"|"network_not_supported"|"protocol_error"|"rejected"? resultReason?; +}; + +@constraint:String {maxLength: 5000} +public type GetTerminalConfigurationsConfigurationQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetTreasuryOutboundPaymentsId +public type GetTreasuryOutboundPaymentsIdQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryOutboundPaymentsIdQueriesExpandItemsString[] expand?; +}; + +public type ExternalAccountRequirementsCurrentlydueItemsString string; + +public type SubscriptionDetailsParams2 record { + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + @jsondata:Name {value: "cancel_now"} + boolean cancelNow?; + @jsondata:Name {value: "resume_at"} + "now" resumeAt?; + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + SubscriptionItemUpdateParams[] items?; + @jsondata:Name {value: "billing_cycle_anchor"} + "now"|"unchanged"|int billingCycleAnchor?; + @jsondata:Name {value: "proration_date"} + int prorationDate?; + @jsondata:Name {value: "cancel_at"} + int|"" cancelAt?; + @jsondata:Name {value: "start_date"} + int startDate?; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryOutboundPaymentsQueriesExpandItemsString string; + +public type SubscriptionDetailsParams1 record { + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + @jsondata:Name {value: "cancel_now"} + boolean cancelNow?; + @jsondata:Name {value: "resume_at"} + "now" resumeAt?; + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + SubscriptionItemUpdateParams[] items?; + @jsondata:Name {value: "billing_cycle_anchor"} + "now"|"unchanged"|int billingCycleAnchor?; + @jsondata:Name {value: "proration_date"} + int prorationDate?; + @jsondata:Name {value: "cancel_at"} + int|"" cancelAt?; + @jsondata:Name {value: "start_date"} + int startDate?; +}; + +# +public type ChargeTransferData record { + # The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account + int? amount?; + # ID of an existing, connected Stripe account to transfer funds to if `transfer_data` was specified in the charge request + string|Account destination; +}; + +@constraint:String {maxLength: 5000} +public type GetPaymentIntentsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerCardsQueriesExpandItemsString string; + +# +public type SigmaScheduledQueryRunList record { + ScheduledQueryRun[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/sigma/scheduled_query_runs`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type AccountUnificationAccountControllerLosses record { + # A value indicating who is liable when this account can't pay back negative balances from payments + "application"|"stripe" payments; +}; + +public type dropdownOptionsItemsObject record { + string label; + string value; +}; + +# +public type PaymentMethodAcssDebit record { + # Last four digits of the bank account number + string? last4?; + # Institution number of the bank account + @jsondata:Name {value: "institution_number"} + string? institutionNumber?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Transit number of the bank account + @jsondata:Name {value: "transit_number"} + string? transitNumber?; +}; + +public type SpendingLimitsParamCategoriesItemsString "ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards"; + +public type PaymentMethodDomainsBody record {| + # The domain name that this payment method domain object represents + @jsondata:Name {value: "domain_name"} + string domainName; + # Specifies which fields in the response should be expanded + PaymentMethodDomainsBodyExpandItemsString[] expand?; + # Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements + boolean enabled?; +|}; + +# Reboot time settings for readers that support customized reboot time configuration +public type RebootWindow record { + @jsondata:Name {value: "start_hour"} + int startHour; + @jsondata:Name {value: "end_hour"} + int endHour; +}; + +# +public type GelatoVerificationSessionList record { + IdentityVerificationSession[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/identity/verification_sessions`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodGrabpay record { +}; + +# Represents the Queries record for the operation: GetTreasuryCreditReversals +public type GetTreasuryCreditReversalsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryCreditReversalsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return CreditReversals for the ReceivedCredit ID + @http:Query {name: "received_credit"} + string receivedCredit?; + # Only return CreditReversals for a given status + "canceled"|"posted"|"processing" status?; +}; + +# +public type LegalEntityUboDeclaration record { + # The Unix timestamp marking when the beneficial owner attestation was made + int? date?; + # The IP address from which the beneficial owner attestation was made + string? ip?; + # The user-agent string from the browser where the beneficial owner attestation was made + @jsondata:Name {value: "user_agent"} + string? userAgent?; +}; + +# +public type LegalEntityPersonVerification record { + LegalEntityPersonVerificationDocument document?; + # A user-displayable string describing the verification state for the person. For example, this may say "Provided identity information could not be verified" + string? details?; + # A document showing address, either a passport, local ID card, or utility bill from a well-known utility company + @jsondata:Name {value: "additional_document"} + LegalEntityPersonVerificationDocument? additionalDocument?; + # One of `document_address_mismatch`, `document_dob_mismatch`, `document_duplicate_type`, `document_id_number_mismatch`, `document_name_mismatch`, `document_nationality_mismatch`, `failed_keyed_identity`, or `failed_other`. A machine-readable code specifying the verification state for the person + @jsondata:Name {value: "details_code"} + string? detailsCode?; + # The state of verification for the person. Possible values are `unverified`, `pending`, or `verified` + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type TaxProductResourceTaxCalculationLineItemList record { + # Details about each object + TaxCalculationLineItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/tax/calculations/[^/]+/line_items`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SetupIntentPaymentMethodOptionsMandateOptionsParam record { + @jsondata:Name {value: "payment_schedule"} + "combined"|"interval"|"sporadic" paymentSchedule?; + @jsondata:Name {value: "default_for"} + ("invoice"|"subscription")[] defaultFor?; + @jsondata:Name {value: "custom_mandate_url"} + string|"" customMandateUrl?; + @jsondata:Name {value: "transaction_type"} + "business"|"personal" transactionType?; + @jsondata:Name {value: "interval_description"} + string intervalDescription?; +}; + +public type FinancialAccountFeaturesBody record {| + # Specifies which fields in the response should be expanded + FinancialAccountFeaturesBodyExpandItemsString[] expand?; + @jsondata:Name {value: "outbound_payments"} + OutboundPayments1 outboundPayments?; + @jsondata:Name {value: "card_issuing"} + Access1 cardIssuing?; + @jsondata:Name {value: "intra_stripe_flows"} + Access3 intraStripeFlows?; + @jsondata:Name {value: "outbound_transfers"} + OutboundTransfers1 outboundTransfers?; + @jsondata:Name {value: "deposit_insurance"} + Access2 depositInsurance?; + @jsondata:Name {value: "inbound_transfers"} + InboundTransfers1 inboundTransfers?; + @jsondata:Name {value: "financial_addresses"} + FinancialAddresses1 financialAddresses?; +|}; + +public type AccountFutureRequirementsPastdueItemsString string; + +# +public type InvoiceTaxAmount record { + # Whether this tax amount is inclusive or exclusive + boolean inclusive; + # The amount, in cents (or local equivalent), of the tax + int amount; + # The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported + @jsondata:Name {value: "taxability_reason"} + "customer_exempt"|"not_collecting"|"not_subject_to_tax"|"not_supported"|"portion_product_exempt"|"portion_reduced_rated"|"portion_standard_rated"|"product_exempt"|"product_exempt_holiday"|"proportionally_rated"|"reduced_rated"|"reverse_charge"|"standard_rated"|"taxable_basis_reduced"|"zero_rated"? taxabilityReason?; + # The amount on which tax is calculated, in cents (or local equivalent) + @jsondata:Name {value: "taxable_amount"} + int? taxableAmount?; + # The tax rate that was applied to get this tax amount + @jsondata:Name {value: "tax_rate"} + string|TaxRate taxRate; +}; + +# +public type PaymentMethodCardWalletVisaCheckout record { + # Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? name?; + # Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "billing_address"} + Address? billingAddress?; + # Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "shipping_address"} + Address? shippingAddress?; + # Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? email?; +}; + +# +public type PortalSubscriptionCancellationReason record { + # Which cancellation reasons will be given as options to the customer + ("customer_service"|"low_quality"|"missing_features"|"other"|"switched_service"|"too_complex"|"too_expensive"|"unused")[] options; + # Whether the feature is enabled + boolean enabled; +}; + +public type SourcessourceBody record {| + Owner1 owner?; + # Amount associated with the source + int amount?; + # Specifies which fields in the response should be expanded + SourcessourceBodyExpandItemsString[] expand?; + MandateParams mandate?; + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "source_order"} + OrderParams sourceOrder?; +|}; + +# +public type IssuingDisputeMerchandiseNotAsDescribedEvidence record { + # Description of the cardholder's attempt to return the product + @jsondata:Name {value: "return_description"} + string? returnDescription?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Date when the product was returned or attempted to be returned + @jsondata:Name {value: "returned_at"} + int? returnedAt?; + # Date when the product was received + @jsondata:Name {value: "received_at"} + int? receivedAt?; + # Result of cardholder's attempt to return the product + @jsondata:Name {value: "return_status"} + "merchant_rejected"|"successful"? returnStatus?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; +}; + +@constraint:String {maxLength: 5000} +public type PaymentMethodDetachBodyExpandItemsString string; + +public type FleetReportedBreakdownTaxSpecs record { + @jsondata:Name {value: "national_amount_decimal"} + string nationalAmountDecimal?; + @jsondata:Name {value: "local_amount_decimal"} + string localAmountDecimal?; +}; + +public type TaxParam1 record { + @jsondata:Name {value: "ip_address"} + string|"" ipAddress?; +}; + +# Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount` +public type FixedAmount1 record { + int amount; + string currency; + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption4...;|} currencyOptions?; +}; + +# +public type EntitlementsResourceCustomerEntitlementList record { + EntitlementsActiveEntitlement[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type IssuingTransactionFleetTaxData record { + # Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax + @jsondata:Name {value: "national_amount_decimal"} + string? nationalAmountDecimal?; + # Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax + @jsondata:Name {value: "local_amount_decimal"} + string? localAmountDecimal?; +}; + +# +public type SubscriptionList record { + # Details about each object + Subscription[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type IntentCaptureBodyExpandItemsString string; + +# Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set +public type BeneficiaryParams record { + @jsondata:Name {value: "public_name"} + string publicName; +}; + +public type SubscriptionUpdateConfirmItemParams record { + int quantity?; + @constraint:String {maxLength: 5000} + string price?; + @constraint:String {maxLength: 5000} + string id; +}; + +@constraint:String {maxLength: 5000} +public type ReaderSetReaderDisplayBodyExpandItemsString string; + +# +public type OutboundPaymentsPaymentMethodDetails record { + @jsondata:Name {value: "financial_account"} + OutboundPaymentsPaymentMethodDetailsFinancialAccount financialAccount?; + @jsondata:Name {value: "billing_details"} + TreasurySharedResourceBillingDetails billingDetails; + @jsondata:Name {value: "us_bank_account"} + OutboundPaymentsPaymentMethodDetailsUsBankAccount usBankAccount?; + # The type of the payment method used in the OutboundPayment + "financial_account"|"us_bank_account" 'type; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerSources +public type GetCustomersCustomerSourcesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerSourcesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Filter sources according to a particular object type + @constraint:String {maxLength: 5000} + string 'object?; +}; + +@constraint:String {maxLength: 5000} +public type GetReviewsReviewQueriesExpandItemsString string; + +# +public type CustomerTaxLocation record { + # The customer's country as identified by Stripe Tax + @constraint:String {maxLength: 5000} + string country; + # The data source used to infer the customer's location + "billing_address"|"ip_address"|"payment_method"|"shipping_destination" 'source; + # The customer's state, county, province, or region as identified by Stripe Tax + string? state?; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryDebitReversalsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ShippingRatesBodyExpandItemsString string; + +public type DeliveryEstimate record { + DeliveryEstimateBound maximum?; + DeliveryEstimateBound minimum?; +}; + +public type IdCancelBody record {| + # Specifies which fields in the response should be expanded + IdCancelBodyExpandItemsString[] expand?; +|}; + +# +public type PaymentMethodDetailsCardWalletApplePay record { +}; + +# The Kanji variation of the person's address (Japan only) +public type JapanAddressKanjiSpecs1 record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string town?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +# +public type TreasuryOutboundTransfersResourceAchTrackingDetails record { + # ACH trace ID of the OutboundTransfer for transfers sent over the `ach` network + @jsondata:Name {value: "trace_id"} + string traceId; +}; + +# +public type InvoiceMandateOptionsCard record { + # Amount to be charged for future payments + int? amount?; + # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param + @jsondata:Name {value: "amount_type"} + "fixed"|"maximum"? amountType?; + # A description of the mandate or subscription that is meant to be displayed to the customer + string? description?; +}; + +# A set of options for the session’s verification checks +public type SessionOptionsParam record { + record {("driving_license"|"id_card"|"passport")[] allowed_types?; boolean require_id_number?; boolean require_live_capture?; boolean require_matching_selfie?;}|"" document?; +}; + +public type EntitlementsFeaturesBody record {| + # Specifies which fields in the response should be expanded + EntitlementsFeaturesBodyExpandItemsString[] expand?; + # Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format + record {|string...;|} metadata?; + # The feature's name, for your own purpose, not meant to be displayable to the customer + @constraint:String {maxLength: 80} + string name; + # A unique key you provide as your own system identifier. This may be up to 80 characters + @jsondata:Name {value: "lookup_key"} + string lookupKey; +|}; + +# +public type SetupAttemptPaymentMethodDetailsIdeal record { + # The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_sepa_debit"} + string|PaymentMethod? generatedSepaDebit?; + # The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe` + "abn_amro"|"asn_bank"|"bunq"|"handelsbanken"|"ing"|"knab"|"moneyou"|"n26"|"nn"|"rabobank"|"regiobank"|"revolut"|"sns_bank"|"triodos_bank"|"van_lanschot"|"yoursafe"? bank?; + # Last four characters of the IBAN + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # Owner's verified full name. Values are verified or provided by iDEAL directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_sepa_debit_mandate"} + string|Mandate? generatedSepaDebitMandate?; + # The Bank Identifier Code of the customer's bank + "ABNANL2A"|"ASNBNL21"|"BITSNL2A"|"BUNQNL2A"|"FVLBNL22"|"HANDNL2A"|"INGBNL2A"|"KNABNL2H"|"MOYONL21"|"NNBANL2G"|"NTSBDEB1"|"RABONL2U"|"RBRBNL21"|"REVOIE23"|"REVOLT21"|"SNSBNL2A"|"TRIONL2U"? bic?; +}; + +public type PersonFutureRequirementsEventuallydueItemsString string; + +# +public type QuotesResourceQuoteList record { + Quote[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/quotes`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PlanList record { + # Details about each object + Plan[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/plans`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodDetailsPromptpay record { + # Bill reference generated by PromptPay + string? reference?; +}; + +@constraint:String {maxLength: 5000} +public type IntentIncrementAuthorizationBodyExpandItemsString string; + +# +public type SourceTransactionChfCreditTransferData record { + # Reference associated with the transfer + @constraint:String {maxLength: 5000} + string reference?; + # Sender's country address + @jsondata:Name {value: "sender_address_country"} + string senderAddressCountry?; + # Sender's line 1 address + @jsondata:Name {value: "sender_address_line1"} + string senderAddressLine1?; + # Sender's name + @jsondata:Name {value: "sender_name"} + string senderName?; + # Sender's bank account IBAN + @jsondata:Name {value: "sender_iban"} + string senderIban?; +}; + +@constraint:String {maxLength: 5000} +public type RegistrationsidBodyExpandItemsString string; + +public type SubscriptionDiscounts DiscountsAnyOf14|Discount; + +# Parameters specifying how the report should be run. Different Report Types have different required and optional parameters, listed in the [API Access to Reports](https://stripe.com/docs/reporting/statements/api) documentation +public type RunParameterSpecs record { + @jsondata:Name {value: "interval_end"} + int intervalEnd?; + @jsondata:Name {value: "connected_account"} + string connectedAccount?; + RunParameterSpecsColumnsItemsString[] columns?; + "Africa/Abidjan"|"Africa/Accra"|"Africa/Addis_Ababa"|"Africa/Algiers"|"Africa/Asmara"|"Africa/Asmera"|"Africa/Bamako"|"Africa/Bangui"|"Africa/Banjul"|"Africa/Bissau"|"Africa/Blantyre"|"Africa/Brazzaville"|"Africa/Bujumbura"|"Africa/Cairo"|"Africa/Casablanca"|"Africa/Ceuta"|"Africa/Conakry"|"Africa/Dakar"|"Africa/Dar_es_Salaam"|"Africa/Djibouti"|"Africa/Douala"|"Africa/El_Aaiun"|"Africa/Freetown"|"Africa/Gaborone"|"Africa/Harare"|"Africa/Johannesburg"|"Africa/Juba"|"Africa/Kampala"|"Africa/Khartoum"|"Africa/Kigali"|"Africa/Kinshasa"|"Africa/Lagos"|"Africa/Libreville"|"Africa/Lome"|"Africa/Luanda"|"Africa/Lubumbashi"|"Africa/Lusaka"|"Africa/Malabo"|"Africa/Maputo"|"Africa/Maseru"|"Africa/Mbabane"|"Africa/Mogadishu"|"Africa/Monrovia"|"Africa/Nairobi"|"Africa/Ndjamena"|"Africa/Niamey"|"Africa/Nouakchott"|"Africa/Ouagadougou"|"Africa/Porto-Novo"|"Africa/Sao_Tome"|"Africa/Timbuktu"|"Africa/Tripoli"|"Africa/Tunis"|"Africa/Windhoek"|"America/Adak"|"America/Anchorage"|"America/Anguilla"|"America/Antigua"|"America/Araguaina"|"America/Argentina/Buenos_Aires"|"America/Argentina/Catamarca"|"America/Argentina/ComodRivadavia"|"America/Argentina/Cordoba"|"America/Argentina/Jujuy"|"America/Argentina/La_Rioja"|"America/Argentina/Mendoza"|"America/Argentina/Rio_Gallegos"|"America/Argentina/Salta"|"America/Argentina/San_Juan"|"America/Argentina/San_Luis"|"America/Argentina/Tucuman"|"America/Argentina/Ushuaia"|"America/Aruba"|"America/Asuncion"|"America/Atikokan"|"America/Atka"|"America/Bahia"|"America/Bahia_Banderas"|"America/Barbados"|"America/Belem"|"America/Belize"|"America/Blanc-Sablon"|"America/Boa_Vista"|"America/Bogota"|"America/Boise"|"America/Buenos_Aires"|"America/Cambridge_Bay"|"America/Campo_Grande"|"America/Cancun"|"America/Caracas"|"America/Catamarca"|"America/Cayenne"|"America/Cayman"|"America/Chicago"|"America/Chihuahua"|"America/Ciudad_Juarez"|"America/Coral_Harbour"|"America/Cordoba"|"America/Costa_Rica"|"America/Creston"|"America/Cuiaba"|"America/Curacao"|"America/Danmarkshavn"|"America/Dawson"|"America/Dawson_Creek"|"America/Denver"|"America/Detroit"|"America/Dominica"|"America/Edmonton"|"America/Eirunepe"|"America/El_Salvador"|"America/Ensenada"|"America/Fort_Nelson"|"America/Fort_Wayne"|"America/Fortaleza"|"America/Glace_Bay"|"America/Godthab"|"America/Goose_Bay"|"America/Grand_Turk"|"America/Grenada"|"America/Guadeloupe"|"America/Guatemala"|"America/Guayaquil"|"America/Guyana"|"America/Halifax"|"America/Havana"|"America/Hermosillo"|"America/Indiana/Indianapolis"|"America/Indiana/Knox"|"America/Indiana/Marengo"|"America/Indiana/Petersburg"|"America/Indiana/Tell_City"|"America/Indiana/Vevay"|"America/Indiana/Vincennes"|"America/Indiana/Winamac"|"America/Indianapolis"|"America/Inuvik"|"America/Iqaluit"|"America/Jamaica"|"America/Jujuy"|"America/Juneau"|"America/Kentucky/Louisville"|"America/Kentucky/Monticello"|"America/Knox_IN"|"America/Kralendijk"|"America/La_Paz"|"America/Lima"|"America/Los_Angeles"|"America/Louisville"|"America/Lower_Princes"|"America/Maceio"|"America/Managua"|"America/Manaus"|"America/Marigot"|"America/Martinique"|"America/Matamoros"|"America/Mazatlan"|"America/Mendoza"|"America/Menominee"|"America/Merida"|"America/Metlakatla"|"America/Mexico_City"|"America/Miquelon"|"America/Moncton"|"America/Monterrey"|"America/Montevideo"|"America/Montreal"|"America/Montserrat"|"America/Nassau"|"America/New_York"|"America/Nipigon"|"America/Nome"|"America/Noronha"|"America/North_Dakota/Beulah"|"America/North_Dakota/Center"|"America/North_Dakota/New_Salem"|"America/Nuuk"|"America/Ojinaga"|"America/Panama"|"America/Pangnirtung"|"America/Paramaribo"|"America/Phoenix"|"America/Port-au-Prince"|"America/Port_of_Spain"|"America/Porto_Acre"|"America/Porto_Velho"|"America/Puerto_Rico"|"America/Punta_Arenas"|"America/Rainy_River"|"America/Rankin_Inlet"|"America/Recife"|"America/Regina"|"America/Resolute"|"America/Rio_Branco"|"America/Rosario"|"America/Santa_Isabel"|"America/Santarem"|"America/Santiago"|"America/Santo_Domingo"|"America/Sao_Paulo"|"America/Scoresbysund"|"America/Shiprock"|"America/Sitka"|"America/St_Barthelemy"|"America/St_Johns"|"America/St_Kitts"|"America/St_Lucia"|"America/St_Thomas"|"America/St_Vincent"|"America/Swift_Current"|"America/Tegucigalpa"|"America/Thule"|"America/Thunder_Bay"|"America/Tijuana"|"America/Toronto"|"America/Tortola"|"America/Vancouver"|"America/Virgin"|"America/Whitehorse"|"America/Winnipeg"|"America/Yakutat"|"America/Yellowknife"|"Antarctica/Casey"|"Antarctica/Davis"|"Antarctica/DumontDUrville"|"Antarctica/Macquarie"|"Antarctica/Mawson"|"Antarctica/McMurdo"|"Antarctica/Palmer"|"Antarctica/Rothera"|"Antarctica/South_Pole"|"Antarctica/Syowa"|"Antarctica/Troll"|"Antarctica/Vostok"|"Arctic/Longyearbyen"|"Asia/Aden"|"Asia/Almaty"|"Asia/Amman"|"Asia/Anadyr"|"Asia/Aqtau"|"Asia/Aqtobe"|"Asia/Ashgabat"|"Asia/Ashkhabad"|"Asia/Atyrau"|"Asia/Baghdad"|"Asia/Bahrain"|"Asia/Baku"|"Asia/Bangkok"|"Asia/Barnaul"|"Asia/Beirut"|"Asia/Bishkek"|"Asia/Brunei"|"Asia/Calcutta"|"Asia/Chita"|"Asia/Choibalsan"|"Asia/Chongqing"|"Asia/Chungking"|"Asia/Colombo"|"Asia/Dacca"|"Asia/Damascus"|"Asia/Dhaka"|"Asia/Dili"|"Asia/Dubai"|"Asia/Dushanbe"|"Asia/Famagusta"|"Asia/Gaza"|"Asia/Harbin"|"Asia/Hebron"|"Asia/Ho_Chi_Minh"|"Asia/Hong_Kong"|"Asia/Hovd"|"Asia/Irkutsk"|"Asia/Istanbul"|"Asia/Jakarta"|"Asia/Jayapura"|"Asia/Jerusalem"|"Asia/Kabul"|"Asia/Kamchatka"|"Asia/Karachi"|"Asia/Kashgar"|"Asia/Kathmandu"|"Asia/Katmandu"|"Asia/Khandyga"|"Asia/Kolkata"|"Asia/Krasnoyarsk"|"Asia/Kuala_Lumpur"|"Asia/Kuching"|"Asia/Kuwait"|"Asia/Macao"|"Asia/Macau"|"Asia/Magadan"|"Asia/Makassar"|"Asia/Manila"|"Asia/Muscat"|"Asia/Nicosia"|"Asia/Novokuznetsk"|"Asia/Novosibirsk"|"Asia/Omsk"|"Asia/Oral"|"Asia/Phnom_Penh"|"Asia/Pontianak"|"Asia/Pyongyang"|"Asia/Qatar"|"Asia/Qostanay"|"Asia/Qyzylorda"|"Asia/Rangoon"|"Asia/Riyadh"|"Asia/Saigon"|"Asia/Sakhalin"|"Asia/Samarkand"|"Asia/Seoul"|"Asia/Shanghai"|"Asia/Singapore"|"Asia/Srednekolymsk"|"Asia/Taipei"|"Asia/Tashkent"|"Asia/Tbilisi"|"Asia/Tehran"|"Asia/Tel_Aviv"|"Asia/Thimbu"|"Asia/Thimphu"|"Asia/Tokyo"|"Asia/Tomsk"|"Asia/Ujung_Pandang"|"Asia/Ulaanbaatar"|"Asia/Ulan_Bator"|"Asia/Urumqi"|"Asia/Ust-Nera"|"Asia/Vientiane"|"Asia/Vladivostok"|"Asia/Yakutsk"|"Asia/Yangon"|"Asia/Yekaterinburg"|"Asia/Yerevan"|"Atlantic/Azores"|"Atlantic/Bermuda"|"Atlantic/Canary"|"Atlantic/Cape_Verde"|"Atlantic/Faeroe"|"Atlantic/Faroe"|"Atlantic/Jan_Mayen"|"Atlantic/Madeira"|"Atlantic/Reykjavik"|"Atlantic/South_Georgia"|"Atlantic/St_Helena"|"Atlantic/Stanley"|"Australia/ACT"|"Australia/Adelaide"|"Australia/Brisbane"|"Australia/Broken_Hill"|"Australia/Canberra"|"Australia/Currie"|"Australia/Darwin"|"Australia/Eucla"|"Australia/Hobart"|"Australia/LHI"|"Australia/Lindeman"|"Australia/Lord_Howe"|"Australia/Melbourne"|"Australia/NSW"|"Australia/North"|"Australia/Perth"|"Australia/Queensland"|"Australia/South"|"Australia/Sydney"|"Australia/Tasmania"|"Australia/Victoria"|"Australia/West"|"Australia/Yancowinna"|"Brazil/Acre"|"Brazil/DeNoronha"|"Brazil/East"|"Brazil/West"|"CET"|"CST6CDT"|"Canada/Atlantic"|"Canada/Central"|"Canada/Eastern"|"Canada/Mountain"|"Canada/Newfoundland"|"Canada/Pacific"|"Canada/Saskatchewan"|"Canada/Yukon"|"Chile/Continental"|"Chile/EasterIsland"|"Cuba"|"EET"|"EST"|"EST5EDT"|"Egypt"|"Eire"|"Etc/GMT"|"Etc/GMT+0"|"Etc/GMT+1"|"Etc/GMT+10"|"Etc/GMT+11"|"Etc/GMT+12"|"Etc/GMT+2"|"Etc/GMT+3"|"Etc/GMT+4"|"Etc/GMT+5"|"Etc/GMT+6"|"Etc/GMT+7"|"Etc/GMT+8"|"Etc/GMT+9"|"Etc/GMT-0"|"Etc/GMT-1"|"Etc/GMT-10"|"Etc/GMT-11"|"Etc/GMT-12"|"Etc/GMT-13"|"Etc/GMT-14"|"Etc/GMT-2"|"Etc/GMT-3"|"Etc/GMT-4"|"Etc/GMT-5"|"Etc/GMT-6"|"Etc/GMT-7"|"Etc/GMT-8"|"Etc/GMT-9"|"Etc/GMT0"|"Etc/Greenwich"|"Etc/UCT"|"Etc/UTC"|"Etc/Universal"|"Etc/Zulu"|"Europe/Amsterdam"|"Europe/Andorra"|"Europe/Astrakhan"|"Europe/Athens"|"Europe/Belfast"|"Europe/Belgrade"|"Europe/Berlin"|"Europe/Bratislava"|"Europe/Brussels"|"Europe/Bucharest"|"Europe/Budapest"|"Europe/Busingen"|"Europe/Chisinau"|"Europe/Copenhagen"|"Europe/Dublin"|"Europe/Gibraltar"|"Europe/Guernsey"|"Europe/Helsinki"|"Europe/Isle_of_Man"|"Europe/Istanbul"|"Europe/Jersey"|"Europe/Kaliningrad"|"Europe/Kiev"|"Europe/Kirov"|"Europe/Kyiv"|"Europe/Lisbon"|"Europe/Ljubljana"|"Europe/London"|"Europe/Luxembourg"|"Europe/Madrid"|"Europe/Malta"|"Europe/Mariehamn"|"Europe/Minsk"|"Europe/Monaco"|"Europe/Moscow"|"Europe/Nicosia"|"Europe/Oslo"|"Europe/Paris"|"Europe/Podgorica"|"Europe/Prague"|"Europe/Riga"|"Europe/Rome"|"Europe/Samara"|"Europe/San_Marino"|"Europe/Sarajevo"|"Europe/Saratov"|"Europe/Simferopol"|"Europe/Skopje"|"Europe/Sofia"|"Europe/Stockholm"|"Europe/Tallinn"|"Europe/Tirane"|"Europe/Tiraspol"|"Europe/Ulyanovsk"|"Europe/Uzhgorod"|"Europe/Vaduz"|"Europe/Vatican"|"Europe/Vienna"|"Europe/Vilnius"|"Europe/Volgograd"|"Europe/Warsaw"|"Europe/Zagreb"|"Europe/Zaporozhye"|"Europe/Zurich"|"Factory"|"GB"|"GB-Eire"|"GMT"|"GMT+0"|"GMT-0"|"GMT0"|"Greenwich"|"HST"|"Hongkong"|"Iceland"|"Indian/Antananarivo"|"Indian/Chagos"|"Indian/Christmas"|"Indian/Cocos"|"Indian/Comoro"|"Indian/Kerguelen"|"Indian/Mahe"|"Indian/Maldives"|"Indian/Mauritius"|"Indian/Mayotte"|"Indian/Reunion"|"Iran"|"Israel"|"Jamaica"|"Japan"|"Kwajalein"|"Libya"|"MET"|"MST"|"MST7MDT"|"Mexico/BajaNorte"|"Mexico/BajaSur"|"Mexico/General"|"NZ"|"NZ-CHAT"|"Navajo"|"PRC"|"PST8PDT"|"Pacific/Apia"|"Pacific/Auckland"|"Pacific/Bougainville"|"Pacific/Chatham"|"Pacific/Chuuk"|"Pacific/Easter"|"Pacific/Efate"|"Pacific/Enderbury"|"Pacific/Fakaofo"|"Pacific/Fiji"|"Pacific/Funafuti"|"Pacific/Galapagos"|"Pacific/Gambier"|"Pacific/Guadalcanal"|"Pacific/Guam"|"Pacific/Honolulu"|"Pacific/Johnston"|"Pacific/Kanton"|"Pacific/Kiritimati"|"Pacific/Kosrae"|"Pacific/Kwajalein"|"Pacific/Majuro"|"Pacific/Marquesas"|"Pacific/Midway"|"Pacific/Nauru"|"Pacific/Niue"|"Pacific/Norfolk"|"Pacific/Noumea"|"Pacific/Pago_Pago"|"Pacific/Palau"|"Pacific/Pitcairn"|"Pacific/Pohnpei"|"Pacific/Ponape"|"Pacific/Port_Moresby"|"Pacific/Rarotonga"|"Pacific/Saipan"|"Pacific/Samoa"|"Pacific/Tahiti"|"Pacific/Tarawa"|"Pacific/Tongatapu"|"Pacific/Truk"|"Pacific/Wake"|"Pacific/Wallis"|"Pacific/Yap"|"Poland"|"Portugal"|"ROC"|"ROK"|"Singapore"|"Turkey"|"UCT"|"US/Alaska"|"US/Aleutian"|"US/Arizona"|"US/Central"|"US/East-Indiana"|"US/Eastern"|"US/Hawaii"|"US/Indiana-Starke"|"US/Michigan"|"US/Mountain"|"US/Pacific"|"US/Pacific-New"|"US/Samoa"|"UTC"|"Universal"|"W-SU"|"WET"|"Zulu" timezone?; + @jsondata:Name {value: "reporting_category"} + "advance"|"advance_funding"|"anticipation_repayment"|"charge"|"charge_failure"|"climate_order_purchase"|"climate_order_refund"|"connect_collection_transfer"|"connect_reserved_funds"|"contribution"|"dispute"|"dispute_reversal"|"fee"|"financing_paydown"|"financing_paydown_reversal"|"financing_payout"|"financing_payout_reversal"|"issuing_authorization_hold"|"issuing_authorization_release"|"issuing_dispute"|"issuing_transaction"|"network_cost"|"other_adjustment"|"partial_capture_reversal"|"payout"|"payout_reversal"|"platform_earning"|"platform_earning_refund"|"refund"|"refund_failure"|"risk_reserved_funds"|"tax"|"topup"|"topup_reversal"|"transfer"|"transfer_reversal"|"unreconciled_customer_funds" reportingCategory?; + string payout?; + string currency?; + @jsondata:Name {value: "interval_start"} + int intervalStart?; +}; + +@constraint:String {maxLength: 5000} +public type GetQuotesQueriesExpandItemsString string; + +# A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. +# For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. +# Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow. +# +# Create a SetupIntent when you're ready to collect your customer's payment credentials. +# Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. +# The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides +# you through the setup process. +# +# Successful SetupIntents result in payment credentials that are optimized for future payments. +# For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through +# [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection +# to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents). +# If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer), +# it automatically attaches the resulting payment method to that Customer after successful setup. +# We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on +# PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. +# +# By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. +# +# Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents) +public type SetupIntent record { + # ID of the multi use Mandate generated by the SetupIntent + string|Mandate? mandate?; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Indicates how the payment method is intended to be used in the future. + # + # Use `on_session` if you intend to only reuse the payment method when the customer is in your checkout flow. Use `off_session` if your customer may or may not be in your checkout flow. If not provided, this value defaults to `off_session` + @constraint:String {maxLength: 5000} + string usage; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # The error encountered in the previous SetupIntent confirmation + @jsondata:Name {value: "last_setup_error"} + ApiErrors? lastSetupError?; + # Settings for dynamic payment methods compatible with this Setup Intent + @jsondata:Name {value: "automatic_payment_methods"} + PaymentFlowsAutomaticPaymentMethodsSetupIntent? automaticPaymentMethods?; + # The most recent SetupAttempt for this SetupIntent + @jsondata:Name {value: "latest_attempt"} + string|SetupAttempt? latestAttempt?; + # The client secret of this SetupIntent. Used for client-side retrieval using a publishable key. + # + # The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret + @jsondata:Name {value: "client_secret"} + string? clientSecret?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Payment method-specific configuration for this SetupIntent + @jsondata:Name {value: "payment_method_options"} + SetupIntentPaymentMethodOptions? paymentMethodOptions?; + # ID of the payment method used with this SetupIntent + @jsondata:Name {value: "payment_method"} + string|PaymentMethod? paymentMethod?; + # Indicates the directions of money movement for which this payment method is intended to be used. + # + # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes + @jsondata:Name {value: "flow_directions"} + ("inbound"|"outbound")[]? flowDirections?; + # The account (if any) for which the setup is intended + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The list of payment method types (e.g. card) that this SetupIntent is allowed to set up + @jsondata:Name {value: "payment_method_types"} + SetupIntentPaymentmethodtypesItemsString[] paymentMethodTypes; + # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + # + # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer + @jsondata:Name {value: "attach_to_self"} + boolean attachToSelf?; + # Reason for cancellation of this SetupIntent, one of `abandoned`, `requested_by_customer`, or `duplicate` + @jsondata:Name {value: "cancellation_reason"} + "abandoned"|"duplicate"|"requested_by_customer"? cancellationReason?; + # ID of the single_use Mandate generated by the SetupIntent + @jsondata:Name {value: "single_use_mandate"} + string|Mandate? singleUseMandate?; + # Information about the payment method configuration used for this Setup Intent + @jsondata:Name {value: "payment_method_configuration_details"} + PaymentMethodConfigBizPaymentMethodConfigurationDetails? paymentMethodConfigurationDetails?; + # ID of the Connect application that created the SetupIntent + string|Application? application?; + # If present, this property tells you what actions you need to take in order for your customer to continue payment setup + @jsondata:Name {value: "next_action"} + SetupIntentNextAction? nextAction?; + # ID of the Customer this SetupIntent belongs to, if one exists. + # + # If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "setup_intent" 'object; + # [Status](https://stripe.com/docs/payments/intents#intent-statuses) of this SetupIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `canceled`, or `succeeded` + "canceled"|"processing"|"requires_action"|"requires_confirmation"|"requires_payment_method"|"succeeded" status; +}; + +@constraint:String {maxLength: 5000} +public type AccountDisconnectBody1ExpandItemsString string; + +# +public type SubscriptionPaymentMethodOptionsCard record { + # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge"? requestThreeDSecure?; + @jsondata:Name {value: "mandate_options"} + InvoiceMandateOptionsCard mandateOptions?; + # Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time + "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa"? network?; +}; + +# +public type RefundNextAction record { + # Contains the refund details + @jsondata:Name {value: "display_details"} + RefundNextActionDisplayDetails? displayDetails?; + # Type of the next action to perform + @constraint:String {maxLength: 5000} + string 'type; +}; + +# +public type DeletedTerminalConfiguration record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "terminal.configuration" 'object; +}; + +# +public type SetupAttemptPaymentMethodDetailsBancontact record { + # The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_sepa_debit"} + string|PaymentMethod? generatedSepaDebit?; + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Last four characters of the IBAN + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # Owner's verified full name. Values are verified or provided by Bancontact directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_sepa_debit_mandate"} + string|Mandate? generatedSepaDebitMandate?; + # Bank Identifier Code of the bank associated with the bank account + string? bic?; + # Preferred language of the Bancontact authorization page that the customer is redirected to. + # Can be one of `en`, `de`, `fr`, or `nl` + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"fr"|"nl"? preferredLanguage?; +}; + +# +public type PaymentIntentNextActionCardAwaitNotification record { + # For payments greater than INR 15000, the customer must provide explicit approval of the payment with their bank. For payments of lower amount, no customer action is required + @jsondata:Name {value: "customer_approval_required"} + boolean? customerApprovalRequired?; + # The time that payment will be attempted. If customer approval is required, they need to provide approval before this time + @jsondata:Name {value: "charge_attempt_at"} + int? chargeAttemptAt?; +}; + +# This hash contains the card payment method options +public type ConfirmationTokensResourcePaymentMethodOptionsResourceCard record { + # The `cvc_update` Token collected from the Payment Element + @jsondata:Name {value: "cvc_token"} + string? cvcToken?; +}; + +# Shipping information for the charge. Helps prevent fraud on charges for physical goods +public type OptionalFieldsShipping record { + @constraint:String {maxLength: 5000} + string carrier?; + OptionalFieldsAddress address; + @constraint:String {maxLength: 5000} + string phone?; + @constraint:String {maxLength: 5000} + string name; + @jsondata:Name {value: "tracking_number"} + string trackingNumber?; +}; + +# +public type TaxProductResourceTaxSettingsHeadOffice record { + Address address; +}; + +public type CompletedAt RangeQuerySpecs42|CompletedAtRangeQuerySpecs422; + +# +public type Shipping record { + # The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc + string? carrier?; + Address address?; + # Recipient phone (including extension) + string? phone?; + # Recipient name + @constraint:String {maxLength: 5000} + string name?; + # The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas + @jsondata:Name {value: "tracking_number"} + string? trackingNumber?; +}; + +# +public type SourceMandateNotificationSepaDebitData record { + # Last 4 digits of the account number associated with the debit + @constraint:String {maxLength: 5000} + string last4?; + # SEPA creditor ID + @jsondata:Name {value: "creditor_identifier"} + string creditorIdentifier?; + # Mandate reference associated with the debit + @jsondata:Name {value: "mandate_reference"} + string mandateReference?; +}; + +@constraint:String {maxLength: 5000} +public type SourceVerifyBodyExpandItemsString string; + +# A Tax Transaction records the tax collected from or refunded to your customer. +# +# Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction) +public type TaxTransaction record { + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The shipping cost details for the transaction + @jsondata:Name {value: "shipping_cost"} + TaxProductResourceTaxTransactionShippingCost? shippingCost?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The details of the ship from location, such as the address + @jsondata:Name {value: "ship_from_details"} + TaxProductResourceShipFromDetails? shipFromDetails?; + @jsondata:Name {value: "line_items"} + TaxProductResourceTaxTransactionLineItemList1? lineItems?; + # If `reversal`, this transaction reverses an earlier transaction + "reversal"|"transaction" 'type; + # A custom unique identifier, such as 'myOrder_123' + @constraint:String {maxLength: 5000} + string reference; + # Timestamp of date at which the tax rules and rates in effect applies for the calculation + @jsondata:Name {value: "tax_date"} + int taxDate; + @jsondata:Name {value: "customer_details"} + TaxProductResourceCustomerDetails customerDetails; + # If `type=reversal`, contains information about what was reversed + TaxProductResourceTaxTransactionResourceReversal? reversal?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + # Unique identifier for the transaction + @constraint:String {maxLength: 5000} + string id; + # The Unix timestamp representing when the tax liability is assumed or reduced + @jsondata:Name {value: "posted_at"} + int postedAt; + # The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource + string? customer?; + # String representing the object's type. Objects of the same type share the same value + "tax.transaction" 'object; +}; + +@constraint:String {maxLength: 5000} +public type InvoiceSendBodyExpandItemsString string; + +# Details about a returned OutboundTransfer +public type ReturnedDetailsParams1 record { + "account_closed"|"account_frozen"|"bank_account_restricted"|"bank_ownership_changed"|"declined"|"incorrect_account_holder_name"|"invalid_account_number"|"invalid_currency"|"no_account"|"other" code?; +}; + +# +public type InvoicesItemsList record { + Invoiceitem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/invoiceitems`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type CreditNotesidBodyExpandItemsString string; + +# +public type FileResourceFileList record { + File[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/files`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type MandateCashapp record { +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryDebitReversalsDebitReversalQueriesExpandItemsString string; + +# +public type PortalFeatures record { + @jsondata:Name {value: "subscription_cancel"} + PortalSubscriptionCancel subscriptionCancel; + @jsondata:Name {value: "invoice_history"} + PortalInvoiceList invoiceHistory; + @jsondata:Name {value: "payment_method_update"} + PortalPaymentMethodUpdate paymentMethodUpdate; + @jsondata:Name {value: "customer_update"} + PortalCustomerUpdate customerUpdate; + @jsondata:Name {value: "subscription_update"} + PortalSubscriptionUpdate subscriptionUpdate; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryReceivedDebitsIdQueriesExpandItemsString string; + +# +public type PortalFlowsCouponOffer record { + # The ID of the coupon to be offered + @constraint:String {maxLength: 5000} + string coupon; +}; + +public type RangeQuerySpecs11 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs10 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs13 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs12 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type SpendingLimitsParam record { + int amount; + "all_time"|"daily"|"monthly"|"per_authorization"|"weekly"|"yearly" interval; + (SpendingLimitsParamCategoriesItemsString)[] categories?; +}; + +public type RangeQuerySpecs15 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs14 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type SetupAttemptPaymentMethodDetailsCashapp record { +}; + +# +public type PaymentMethodOptionsKlarna record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Preferred locale of the Klarna checkout page that the customer is redirected to + @jsondata:Name {value: "preferred_locale"} + string? preferredLocale?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type FlowDataSubscriptionUpdateConfirmParam record { + SubscriptionUpdateConfirmDiscountParams[] discounts?; + @constraint:String {maxLength: 5000} + string subscription; + SubscriptionUpdateConfirmItemParams[] items; +}; + +public type RangeQuerySpecs17 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs16 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs19 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# Represents the Queries record for the operation: GetReviews +public type GetReviewsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetReviewsQueriesExpandItemsString[] expand?; + # Only return reviews that were created during the given date interval + Created34 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type DeletedApplication record { + # Always true for a deleted object + true deleted; + # The name of the application + string? name?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "application" 'object; +}; + +public type RangeQuerySpecs18 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# Represents the Queries record for the operation: GetIssuingTransactionsTransaction +public type GetIssuingTransactionsTransactionQueries record { + # Specifies which fields in the response should be expanded + GetIssuingTransactionsTransactionQueriesExpandItemsString[] expand?; +}; + +# +public type SetupAttemptPaymentMethodDetails record { + SetupAttemptPaymentMethodDetailsIdeal ideal?; + @jsondata:Name {value: "acss_debit"} + SetupAttemptPaymentMethodDetailsAcssDebit acssDebit?; + @jsondata:Name {value: "bacs_debit"} + SetupAttemptPaymentMethodDetailsBacsDebit bacsDebit?; + SetupAttemptPaymentMethodDetailsBoleto boleto?; + SetupAttemptPaymentMethodDetailsLink link?; + @jsondata:Name {value: "amazon_pay"} + SetupAttemptPaymentMethodDetailsAmazonPay amazonPay?; + # The type of the payment method used in the SetupIntent (e.g., `card`). An additional hash is included on `payment_method_details` with a name matching this value. It contains confirmation-specific information for the payment method + @constraint:String {maxLength: 5000} + string 'type; + @jsondata:Name {value: "card_present"} + SetupAttemptPaymentMethodDetailsCardPresent cardPresent?; + SetupAttemptPaymentMethodDetailsSofort sofort?; + SetupAttemptPaymentMethodDetailsBancontact bancontact?; + SetupAttemptPaymentMethodDetailsKlarna klarna?; + @jsondata:Name {value: "au_becs_debit"} + SetupAttemptPaymentMethodDetailsAuBecsDebit auBecsDebit?; + @jsondata:Name {value: "us_bank_account"} + SetupAttemptPaymentMethodDetailsUsBankAccount usBankAccount?; + SetupAttemptPaymentMethodDetailsCashapp cashapp?; + @jsondata:Name {value: "sepa_debit"} + SetupAttemptPaymentMethodDetailsSepaDebit sepaDebit?; + SetupAttemptPaymentMethodDetailsPaypal paypal?; + SetupAttemptPaymentMethodDetailsCard card?; + @jsondata:Name {value: "revolut_pay"} + SetupAttemptPaymentMethodDetailsRevolutPay revolutPay?; +}; + +@constraint:String {maxLength: 5000} +public type GetTestHelpersTestClocksQueriesExpandItemsString string; + +# +public type TaxProductResourcePostalAddress record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country; + # City, district, suburb, town, or village + string? city?; + # State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix. Example: "NY" or "TX" + string? state?; + # ZIP or postal code + @jsondata:Name {value: "postal_code"} + string? postalCode?; + # Address line 2 (e.g., apartment, suite, unit, or building) + string? line2?; + # Address line 1 (e.g., street, PO Box, or company name) + string? line1?; +}; + +# Updated shipping information for the card +public type ShippingSpecs1 record { + RequiredAddress address; + @jsondata:Name {value: "address_validation"} + AddressValidationParam addressValidation?; + @jsondata:Name {value: "require_signature"} + boolean requireSignature?; + "express"|"priority"|"standard" 'service?; + CustomsParam customs?; + @constraint:String {maxLength: 5000} + string name; + @jsondata:Name {value: "phone_number"} + string phoneNumber?; + "bulk"|"individual" 'type?; +}; + +public type ArrivalDateRangeQuerySpecs262 int; + +public type RangeQuerySpecs20 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type LinkAccountSessionsBodyPermissionsItemsString "balances"|"ownership"|"payment_method"|"transactions"; + +# +public type PaymentMethodBlik record { +}; + +# +public type TaxProductResourceTaxTransactionResourceReversal record { + # The `id` of the reversed `Transaction` object + @jsondata:Name {value: "original_transaction"} + string? originalTransaction?; +}; + +public type RangeQuerySpecs22 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +@constraint:String {maxLength: 5000} +public type TransactionsCreateForceCaptureBodyExpandItemsString string; + +public type AuthorizationsauthorizationBody record {| + # Specifies which fields in the response should be expanded + AuthorizationsauthorizationBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +public type RangeQuerySpecs21 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type IssuingCardWallets record { + @jsondata:Name {value: "apple_pay"} + IssuingCardApplePay applePay; + # Unique identifier for a card used with digital wallets + @jsondata:Name {value: "primary_account_identifier"} + string? primaryAccountIdentifier?; + @jsondata:Name {value: "google_pay"} + IssuingCardGooglePay googlePay; +}; + +public type RangeQuerySpecs24 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs23 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs26 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type CheckoutCustomerBalanceBankTransferPaymentMethodOptions record { + @jsondata:Name {value: "eu_bank_transfer"} + PaymentMethodOptionsCustomerBalanceEuBankAccount euBankTransfer?; + # List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + # + # Permitted values include: `sort_code`, `zengin`, `iban`, or `spei` + @jsondata:Name {value: "requested_address_types"} + ("aba"|"iban"|"sepa"|"sort_code"|"spei"|"swift"|"zengin")[] requestedAddressTypes?; + # The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer` + "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer"? 'type?; +}; + +public type RangeQuerySpecs25 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type Canada record { + "province_standard"|"simplified"|"standard" 'type; + @jsondata:Name {value: "province_standard"} + ProvinceStandard provinceStandard?; +}; + +public type RangeQuerySpecs28 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs27 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs29 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +@constraint:String {maxLength: 5000} +public type GetFinancialConnectionsAccountsAccountQueriesExpandItemsString string; + +public type TransactionsCreateFromCalculationBody record {| + # Tax Calculation ID to be used as input when creating the transaction + @constraint:String {maxLength: 5000} + string calculation; + # A custom order or sale identifier, such as 'myOrder_123'. Must be unique across all transactions, including reversals + @constraint:String {maxLength: 500} + string reference; + # Specifies which fields in the response should be expanded + TransactionsCreateFromCalculationBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The Unix timestamp representing when the tax liability is assumed or reduced, which determines the liability posting period and handling in tax liability reports. The timestamp must fall within the `tax_date` and the current time, unless the `tax_date` is scheduled in advance. Defaults to the current time + @jsondata:Name {value: "posted_at"} + int postedAt?; +|}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerSubscriptionsQueriesExpandItemsString string; + +# +public type InvoicePaymentMethodOptionsKonbini record { +}; + +public type TransferScheduleSpecs record { + @jsondata:Name {value: "weekly_anchor"} + "friday"|"monday"|"saturday"|"sunday"|"thursday"|"tuesday"|"wednesday" weeklyAnchor?; + "daily"|"manual"|"monthly"|"weekly" interval?; + @jsondata:Name {value: "delay_days"} + "minimum"|int delayDays?; + @jsondata:Name {value: "monthly_anchor"} + int monthlyAnchor?; +}; + +@constraint:String {maxLength: 5000} +public type GetTransfersTransferQueriesExpandItemsString string; + +public type CurrentPeriodStart RangeQuerySpecs47|CurrentPeriodStartRangeQuerySpecs472; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerSourcesIdQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetRadarValueListItemsItem +public type GetRadarValueListItemsItemQueries record { + # Specifies which fields in the response should be expanded + GetRadarValueListItemsItemQueriesExpandItemsString[] expand?; +}; + +# An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details +public type TransferDataSpecs1 record { + int amount?; +}; + +public type RangeQuerySpecs31 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type TransferDataSpecs2 record { + @jsondata:Name {value: "amount_percent"} + decimal amountPercent?; + string destination; +}; + +public type RangeQuerySpecs30 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type PaymentMethodDomainValidateBody record {| + # Specifies which fields in the response should be expanded + PaymentMethodDomainValidateBodyExpandItemsString[] expand?; +|}; + +public type RangeQuerySpecs33 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs32 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs35 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs34 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type PersonRequirementsPendingverificationItemsString string; + +public type RangeQuerySpecs37 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type ProductsItemsObjectPricesItemsString string; + +public type RangeQuerySpecs36 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs39 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs38 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges +public type TransferDataSpecs3 record { + @jsondata:Name {value: "amount_percent"} + decimal amountPercent?; + string destination; +}; + +# If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge +public type TransferDataSpecs4 record { + int amount?; + string destination; +}; + +@constraint:String {maxLength: 5000} +public type GetRadarValueListsQueriesExpandItemsString string; + +public type RangeQuerySpecs record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type SepaDebitGeneratedFrom record { + # The ID of the Charge that generated this PaymentMethod, if any + string|Charge? charge?; + # The ID of the SetupAttempt that generated this PaymentMethod, if any + @jsondata:Name {value: "setup_attempt"} + string|SetupAttempt? setupAttempt?; +}; + +# +public type GelatoProvidedDetails record { + # Phone number of user being verified + @constraint:String {maxLength: 5000} + string phone?; + # Email of user being verified + @constraint:String {maxLength: 5000} + string email?; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryTransactionsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ChargeDisputeBodyExpandItemsString string; + +public type RangeQuerySpecs40 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs42 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs41 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type CurrentPeriodEnd RangeQuerySpecs46|CurrentPeriodEndRangeQuerySpecs462; + +public type CustomerscustomerBody record {| + # 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` + record {|string...;|}|"" metadata?; + # The sequence to be used on the customer's next invoice. Defaults to 1 + @jsondata:Name {value: "next_invoice_sequence"} + int nextInvoiceSequence?; + # An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard + @constraint:String {maxLength: 5000} + string description?; + @constraint:String {maxLength: 5000} + string 'source?; + # Customer's preferred languages, ordered by preference + @jsondata:Name {value: "preferred_locales"} + CustomerscustomerBodyPreferredlocalesItemsString[] preferredLocales?; + # An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice + int balance?; + # ID of bank account to make the customer's new default for invoice payments + @jsondata:Name {value: "default_bank_account"} + string defaultBankAccount?; + # The customer's shipping information. Appears on invoices emailed to this customer + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string name; string phone?;}|"" shipping?; + # Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters* + @constraint:String {maxLength: 512} + string email?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; string country; string currency?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; + @jsondata:Name {value: "invoice_settings"} + CustomerParam invoiceSettings?; + # The customer's address + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + @constraint:String {maxLength: 5000} + string coupon?; + # If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) parameter. + # + # Provide the ID of a payment source already attached to this customer to make it this customer's default payment source. + # + # If you want to add a new payment source and make it the default, see the [source](https://stripe.com/docs/api/customers/update#update_customer-source) property + @jsondata:Name {value: "default_source"} + string defaultSource?; + # The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers + @jsondata:Name {value: "invoice_prefix"} + string invoicePrefix?; + # The customer's tax exemption. One of `none`, `exempt`, or `reverse` + @jsondata:Name {value: "tax_exempt"} + ""|"exempt"|"none"|"reverse" taxExempt?; + # The ID of a promotion code to apply to the customer. The customer will have a discount applied on all recurring payments. Charges you create through the API will not have the discount + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + TaxParam tax?; + @jsondata:Name {value: "cash_balance"} + CashBalanceParam cashBalance?; + # Specifies which fields in the response should be expanded + CustomerscustomerBodyExpandItemsString[] expand?; + # ID of Alipay account to make the customer's new default for invoice payments + @jsondata:Name {value: "default_alipay_account"} + string defaultAlipayAccount?; + # The customer's phone number + @constraint:String {maxLength: 20} + string phone?; + # ID of card to make the customer's new default for invoice payments + @jsondata:Name {value: "default_card"} + string defaultCard?; + # The customer's full name or business name + @constraint:String {maxLength: 256} + string name?; + # A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) + record {string address_city?; string address_country?; string address_line1?; string address_line2?; string address_state?; string address_zip?; string cvc?; int exp_month; int exp_year; record {|string...;|} metadata?; string name?; string number; "card" 'object?;}|string card?; +|}; + +public type RangeQuerySpecs44 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type Created28RangeQuerySpecs312 int; + +public type RangeQuerySpecs43 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +@constraint:String {maxLength: 5000} +public type BillingMeterEventAdjustmentsBodyExpandItemsString string; + +public type RangeQuerySpecs46 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs45 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs48 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type ShippingResourcesShippingRateList record { + ShippingRate[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/shipping_rates`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type RangeQuerySpecs47 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type PersonRequirements record { + # Fields that need to be collected to keep the person's account enabled. If not collected by the account's `current_deadline`, these fields appear in `past_due` as well, and the account is disabled + @jsondata:Name {value: "currently_due"} + PersonRequirementsCurrentlydueItemsString[] currentlyDue; + # Fields that are due and can be satisfied by providing the corresponding alternative fields instead + AccountRequirementsAlternative[]? alternatives?; + # Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and the account's `current_deadline` becomes set + @jsondata:Name {value: "eventually_due"} + PersonRequirementsEventuallydueItemsString[] eventuallyDue; + # Fields that weren't collected by the account's `current_deadline`. These fields need to be collected to enable the person's account + @jsondata:Name {value: "past_due"} + PersonRequirementsPastdueItemsString[] pastDue; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[] errors; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + PersonRequirementsPendingverificationItemsString[] pendingVerification; +}; + +public type MandateOnlineAcceptanceParams record { + int date?; + string ip?; + @jsondata:Name {value: "user_agent"} + string userAgent?; +}; + +public type RangeQuerySpecs49 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# Filters to restrict the kinds of accounts to collect +public type FiltersParams record { + @jsondata:Name {value: "account_subcategories"} + ("checking"|"credit_card"|"line_of_credit"|"mortgage"|"savings")[] accountSubcategories?; + FiltersParamsCountriesItemsString[] countries?; +}; + +@constraint:String {maxLength: 5000} +public type MetersidBodyExpandItemsString string; + +# +public type PaymentMethodDetailsInteracPresentReceipt record { + # The type of account being debited or credited + @jsondata:Name {value: "account_type"} + "checking"|"savings"|"unknown" accountType?; + # Mnenomic of the Application Identifier + @jsondata:Name {value: "application_preferred_name"} + string? applicationPreferredName?; + # Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature` + @jsondata:Name {value: "cardholder_verification_method"} + string? cardholderVerificationMethod?; + # Identifier for this transaction + @jsondata:Name {value: "authorization_code"} + string? authorizationCode?; + # The outcome of a series of EMV functions performed by the card reader + @jsondata:Name {value: "terminal_verification_results"} + string? terminalVerificationResults?; + # EMV tag 9F26, cryptogram generated by the integrated circuit chip + @jsondata:Name {value: "application_cryptogram"} + string? applicationCryptogram?; + # An indication of various EMV functions performed during the transaction + @jsondata:Name {value: "transaction_status_information"} + string? transactionStatusInformation?; + # EMV tag 8A. A code returned by the card issuer + @jsondata:Name {value: "authorization_response_code"} + string? authorizationResponseCode?; + # EMV tag 84. Similar to the application identifier stored on the integrated circuit chip + @jsondata:Name {value: "dedicated_file_name"} + string? dedicatedFileName?; +}; + +public type RangeQuerySpecs51 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# Represents the Queries record for the operation: GetPaymentMethodsPaymentMethod +public type GetPaymentMethodsPaymentMethodQueries record { + # Specifies which fields in the response should be expanded + GetPaymentMethodsPaymentMethodQueriesExpandItemsString[] expand?; +}; + +public type RangeQuerySpecs50 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs53 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs52 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs55 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs54 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs56 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type QuotesResourceUpfront record { + @jsondata:Name {value: "total_details"} + QuotesResourceTotalDetails totalDetails; + # Total after discounts and taxes are applied + @jsondata:Name {value: "amount_total"} + int amountTotal; + @jsondata:Name {value: "line_items"} + QuotesResourceListLineItems2 lineItems?; + # Total before any discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; +}; + +public type SubscriptionssubscriptionExposedIdBody record {| + # 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` + record {|string...;|}|"" metadata?; + # Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + # + # Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + # + # Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + # + # Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more + @jsondata:Name {value: "payment_behavior"} + "allow_incomplete"|"default_incomplete"|"error_if_incomplete"|"pending_if_incomplete" paymentBehavior?; + # Boolean indicating whether this subscription should cancel at the end of the current period + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + # Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice` + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + @jsondata:Name {value: "cancellation_details"} + CancellationDetailsParam cancellationDetails?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions) + @jsondata:Name {value: "application_fee_percent"} + decimal|"" applicationFeePercent?; + # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](/billing/subscriptions/pause-payment) + @jsondata:Name {value: "pause_collection"} + record {"keep_as_draft"|"mark_uncollectible"|"void" behavior; int resumes_at?;}|"" pauseCollection?; + # If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value + @jsondata:Name {value: "transfer_data"} + record {decimal amount_percent?; string destination;}|"" transferData?; + # The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + # Indicates if a customer is on or off-session while an invoice payment is attempted + @jsondata:Name {value: "off_session"} + boolean offSession?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingsParam invoiceSettings?; + @jsondata:Name {value: "payment_settings"} + PaymentSettings paymentSettings?; + # The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. Pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_source"} + string|"" defaultSource?; + # The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + # ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor` + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + # Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval + @jsondata:Name {value: "pending_invoice_item_interval"} + record {"day"|"month"|"week"|"year" interval; int interval_count?;}|"" pendingInvoiceItemInterval?; + @jsondata:Name {value: "trial_settings"} + TrialSettingsConfig1 trialSettings?; + # Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle) + @jsondata:Name {value: "billing_cycle_anchor"} + "now"|"unchanged" billingCycleAnchor?; + # Specifies which fields in the response should be expanded + SubscriptionssubscriptionExposedIdBodyExpandItemsString[] expand?; + # Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_from_plan"} + boolean trialFromPlan?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig automaticTax?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + # A list of up to 20 subscription items, each with an attached price + SubscriptionItemUpdateParams[] items?; + # If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#upcoming_invoice) endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations + @jsondata:Name {value: "proration_date"} + int prorationDate?; + # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period + @jsondata:Name {value: "cancel_at"} + int|"" cancelAt?; +|}; + +# Represents the Queries record for the operation: GetBalanceTransactionsId +public type GetBalanceTransactionsIdQueries record { + # Specifies which fields in the response should be expanded + GetBalanceTransactionsIdQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodOptionsKonbini record { + # An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores + @jsondata:Name {value: "confirmation_number"} + string? confirmationNumber?; + # The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST + @jsondata:Name {value: "expires_after_days"} + int? expiresAfterDays?; + # The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; + # A product descriptor of up to 22 characters, which will appear to customers at the convenience store + @jsondata:Name {value: "product_description"} + string? productDescription?; +}; + +public type BillingMeterEventAdjustmentsBody record {| + EventAdjustmentCancelSettingsParam cancel?; + # Specifies which fields in the response should be expanded + BillingMeterEventAdjustmentsBodyExpandItemsString[] expand?; + # The name of the meter event. Corresponds with the `event_name` field on a meter + @jsondata:Name {value: "event_name"} + string eventName; + # Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet + "cancel" 'type; +|}; + +public type Polymorphic1 BankAccount|Card|Source; + +# Represents the Queries record for the operation: GetSetupIntents +public type GetSetupIntentsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSetupIntentsQueriesExpandItemsString[] expand?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created36 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + # + # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer + @http:Query {name: "attach_to_self"} + boolean attachToSelf?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return SetupIntents that associate with the specified payment method + @http:Query {name: "payment_method"} + string paymentMethod?; + # Only return SetupIntents for the customer specified by this customer ID + @constraint:String {maxLength: 5000} + string customer?; +}; + +# Represents the Queries record for the operation: GetProductsProductFeaturesId +public type GetProductsProductFeaturesIdQueries record { + # Specifies which fields in the response should be expanded + GetProductsProductFeaturesIdQueriesExpandItemsString[] expand?; +}; + +# The individual line items that make up the invoice. `lines` is sorted as follows: (1) pending invoice items (including prorations) in reverse chronological order, (2) subscription items in reverse chronological order, and (3) invoice items added after invoice creation in chronological order +public type InvoiceLinesList1 record { + # Details about each object + LineItem1[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Payment-method-specific configuration +public type PaymentMethodOptionsParam record { + PaymentMethodOptionsParam1 paynow?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodOptionsParam acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodOptionsParam3 bacsDebit?; + PaymentMethodOptionsParam4 boleto?; + PaymentMethodOptionsParam2 link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodOptionsParam2 amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodOptionsParam1 auBecsDebit?; + PaymentMethodOptionsParam7 oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodOptionsParam1 afterpayClearpay?; + PaymentMethodOptionsParam11 swish?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodOptionsParam12 usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodOptionsParam6 customerBalance?; + PaymentMethodOptionsParam3 cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodOptionsParam13 wechatPay?; + PaymentMethodOptionsParam9 paypal?; + PaymentMethodOptionsParam10 pix?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodOptionsParam2 revolutPay?; + PaymentMethodOptionsParam1 giropay?; + PaymentMethodOptionsParam1 alipay?; + PaymentMethodOptionsParam1 ideal?; + PaymentMethodOptionsParam1 eps?; + PaymentMethodOptionsParam7 konbini?; + PaymentMethodOptionsParam1 sofort?; + PaymentMethodOptionsParam1 fpx?; + PaymentMethodOptionsParam1 affirm?; + PaymentMethodOptionsParam1 mobilepay?; + PaymentMethodOptionsParam1 bancontact?; + PaymentMethodOptionsParam1 grabpay?; + PaymentMethodOptionsParam1 klarna?; + PaymentMethodOptionsParam8 p24?; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodOptionsParam3 sepaDebit?; + PaymentMethodOptionsParam5 card?; + PaymentMethodOptionsParam1 multibanco?; +}; + +# The relationship that this person has with the account's legal entity +public type RelationshipSpecs record { + boolean owner?; + boolean executive?; + @jsondata:Name {value: "legal_guardian"} + boolean legalGuardian?; + boolean director?; + @constraint:String {maxLength: 5000} + string title?; + boolean representative?; + @jsondata:Name {value: "percent_ownership"} + decimal|"" percentOwnership?; +}; + +public type Created23RangeQuerySpecs252 int; + +public type Shipping1 record { + @constraint:String {maxLength: 5000} + string carrier?; + Address1 address; + @constraint:String {maxLength: 5000} + string phone?; + @constraint:String {maxLength: 5000} + string name; + @jsondata:Name {value: "tracking_number"} + string trackingNumber?; +}; + +@constraint:String {maxLength: 5000} +public type GetTopupsTopupQueriesExpandItemsString string; + +# +public type SubscriptionsSubscriptionList record { + Subscription[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/subscriptions`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetCheckoutSessionsSessionQueriesExpandItemsString string; + +# Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. +# [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme. +# +# For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once. +# +# Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), [create an invoice](https://stripe.com/docs/billing/invoices/create), and more about [products and prices](https://stripe.com/docs/products-prices/overview) +public type Price record { + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified"? taxBehavior?; + # 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 + record {|string...;|} metadata; + # The ID of the product this price is associated with + string|Product|DeletedProduct product; + # Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme` + PriceTier[] tiers?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The recurring components of a price such as `interval` and `usage_type` + Recurring? recurring?; + # Whether the price can be used for new purchases + boolean active; + # The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit` + @jsondata:Name {value: "unit_amount_decimal"} + string? unitAmountDecimal?; + # Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes + @jsondata:Name {value: "billing_scheme"} + "per_unit"|"tiered" billingScheme; + # The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit` + @jsondata:Name {value: "unit_amount"} + int? unitAmount?; + # One of `one_time` or `recurring` depending on whether the price is for a one-time purchase or a recurring (subscription) purchase + "one_time"|"recurring" 'type; + # Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption4...;|} currencyOptions?; + # Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with `tiers` + @jsondata:Name {value: "transform_quantity"} + TransformQuantity? transformQuantity?; + # Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows + @jsondata:Name {value: "tiers_mode"} + "graduated"|"volume"? tiersMode?; + # A brief description of the price, hidden from customers + string? nickname?; + # A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters + @jsondata:Name {value: "lookup_key"} + string? lookupKey?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links + @jsondata:Name {value: "custom_unit_amount"} + CustomUnitAmount2? customUnitAmount?; + # String representing the object's type. Objects of the same type share the same value + "price" 'object; +}; + +public type OutboundTransferCancelBody record {| + # Specifies which fields in the response should be expanded + OutboundTransferCancelBodyExpandItemsString[] expand?; +|}; + +public type AccountLinksBody record {| + # Specifies which fields in the response should be expanded + AccountLinksBodyExpandItemsString[] expand?; + @jsondata:Name {value: "collection_options"} + CollectionOptionsParams collectionOptions?; + # The URL that the user will be redirected to upon leaving or completing the linked flow + @jsondata:Name {value: "return_url"} + string returnUrl?; + # The type of account link the user is requesting. Possible values are `account_onboarding` or `account_update` + "account_onboarding"|"account_update" 'type; + # The collect parameter is deprecated. Use `collection_options` instead + "currently_due"|"eventually_due" collect?; + # The identifier of the account to create an account link for + @constraint:String {maxLength: 5000} + string account; + # The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link's URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user + @jsondata:Name {value: "refresh_url"} + string refreshUrl?; +|}; + +# +public type TaxProductResourceTaxRateDetails record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + string? country?; + # The tax type, such as `vat` or `sales_tax` + @jsondata:Name {value: "tax_type"} + "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat"? taxType?; + # State, county, province, or region + string? state?; + # The tax rate percentage as a string. For example, 8.5% is represented as `"8.5"` + @jsondata:Name {value: "percentage_decimal"} + string percentageDecimal; +}; + +# +public type AccountCapabilityRequirements record { + # Fields that need to be collected to keep the capability enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the capability is disabled + @jsondata:Name {value: "currently_due"} + AccountCapabilityRequirementsCurrentlydueItemsString[] currentlyDue; + # Date by which the fields in `currently_due` must be collected to keep the capability enabled for the account. These fields may disable the capability sooner if the next threshold is reached before they are collected + @jsondata:Name {value: "current_deadline"} + int? currentDeadline?; + # Fields that are due and can be satisfied by providing the corresponding alternative fields instead + AccountRequirementsAlternative[]? alternatives?; + # Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set + @jsondata:Name {value: "eventually_due"} + AccountCapabilityRequirementsEventuallydueItemsString[] eventuallyDue; + # Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the capability on the account + @jsondata:Name {value: "past_due"} + AccountCapabilityRequirementsPastdueItemsString[] pastDue; + # Description of why the capability is disabled. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification) + @jsondata:Name {value: "disabled_reason"} + "other"|"paused.inactivity"|"pending.onboarding"|"pending.review"|"platform_disabled"|"platform_paused"|"rejected.inactivity"|"rejected.other"|"rejected.unsupported_business"|"requirements.fields_needed"? disabledReason?; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[] errors; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + AccountCapabilityRequirementsPendingverificationItemsString[] pendingVerification; +}; + +# +public type SetupAttemptPaymentMethodDetailsCard record { + # 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 + string? country?; + # The last four digits of the card + string? last4?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + string? funding?; + # Check results by Card networks on Card address and CVC at the time of authorization + SetupAttemptPaymentMethodDetailsCardChecks? checks?; + # If this Card is part of a card wallet, this contains the details of the card wallet + SetupAttemptPaymentMethodDetailsCardWallet? wallet?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int? expMonth?; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int? expYear?; + # Populated if this authorization used 3D Secure authentication + @jsondata:Name {value: "three_d_secure"} + ThreeDSecureDetails? threeDSecure?; + # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? brand?; + # Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? network?; +}; + +public type InlineResponse200 Customer|DeletedCustomer; + +public type WebhookEndpointswebhookEndpointBody record {| + # Specifies which fields in the response should be expanded + WebhookEndpointswebhookEndpointBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection + @jsondata:Name {value: "enabled_events"} + ("*"|"account.application.authorized"|"account.application.deauthorized"|"account.external_account.created"|"account.external_account.deleted"|"account.external_account.updated"|"account.updated"|"application_fee.created"|"application_fee.refund.updated"|"application_fee.refunded"|"balance.available"|"billing_portal.configuration.created"|"billing_portal.configuration.updated"|"billing_portal.session.created"|"capability.updated"|"cash_balance.funds_available"|"charge.captured"|"charge.dispute.closed"|"charge.dispute.created"|"charge.dispute.funds_reinstated"|"charge.dispute.funds_withdrawn"|"charge.dispute.updated"|"charge.expired"|"charge.failed"|"charge.pending"|"charge.refund.updated"|"charge.refunded"|"charge.succeeded"|"charge.updated"|"checkout.session.async_payment_failed"|"checkout.session.async_payment_succeeded"|"checkout.session.completed"|"checkout.session.expired"|"climate.order.canceled"|"climate.order.created"|"climate.order.delayed"|"climate.order.delivered"|"climate.order.product_substituted"|"climate.product.created"|"climate.product.pricing_updated"|"coupon.created"|"coupon.deleted"|"coupon.updated"|"credit_note.created"|"credit_note.updated"|"credit_note.voided"|"customer.created"|"customer.deleted"|"customer.discount.created"|"customer.discount.deleted"|"customer.discount.updated"|"customer.source.created"|"customer.source.deleted"|"customer.source.expiring"|"customer.source.updated"|"customer.subscription.created"|"customer.subscription.deleted"|"customer.subscription.paused"|"customer.subscription.pending_update_applied"|"customer.subscription.pending_update_expired"|"customer.subscription.resumed"|"customer.subscription.trial_will_end"|"customer.subscription.updated"|"customer.tax_id.created"|"customer.tax_id.deleted"|"customer.tax_id.updated"|"customer.updated"|"customer_cash_balance_transaction.created"|"entitlements.active_entitlement_summary.updated"|"file.created"|"financial_connections.account.created"|"financial_connections.account.deactivated"|"financial_connections.account.disconnected"|"financial_connections.account.reactivated"|"financial_connections.account.refreshed_balance"|"financial_connections.account.refreshed_ownership"|"financial_connections.account.refreshed_transactions"|"identity.verification_session.canceled"|"identity.verification_session.created"|"identity.verification_session.processing"|"identity.verification_session.redacted"|"identity.verification_session.requires_input"|"identity.verification_session.verified"|"invoice.created"|"invoice.deleted"|"invoice.finalization_failed"|"invoice.finalized"|"invoice.marked_uncollectible"|"invoice.paid"|"invoice.payment_action_required"|"invoice.payment_failed"|"invoice.payment_succeeded"|"invoice.sent"|"invoice.upcoming"|"invoice.updated"|"invoice.voided"|"invoiceitem.created"|"invoiceitem.deleted"|"issuing_authorization.created"|"issuing_authorization.request"|"issuing_authorization.updated"|"issuing_card.created"|"issuing_card.updated"|"issuing_cardholder.created"|"issuing_cardholder.updated"|"issuing_dispute.closed"|"issuing_dispute.created"|"issuing_dispute.funds_reinstated"|"issuing_dispute.submitted"|"issuing_dispute.updated"|"issuing_personalization_design.activated"|"issuing_personalization_design.deactivated"|"issuing_personalization_design.rejected"|"issuing_personalization_design.updated"|"issuing_token.created"|"issuing_token.updated"|"issuing_transaction.created"|"issuing_transaction.updated"|"mandate.updated"|"payment_intent.amount_capturable_updated"|"payment_intent.canceled"|"payment_intent.created"|"payment_intent.partially_funded"|"payment_intent.payment_failed"|"payment_intent.processing"|"payment_intent.requires_action"|"payment_intent.succeeded"|"payment_link.created"|"payment_link.updated"|"payment_method.attached"|"payment_method.automatically_updated"|"payment_method.detached"|"payment_method.updated"|"payout.canceled"|"payout.created"|"payout.failed"|"payout.paid"|"payout.reconciliation_completed"|"payout.updated"|"person.created"|"person.deleted"|"person.updated"|"plan.created"|"plan.deleted"|"plan.updated"|"price.created"|"price.deleted"|"price.updated"|"product.created"|"product.deleted"|"product.updated"|"promotion_code.created"|"promotion_code.updated"|"quote.accepted"|"quote.canceled"|"quote.created"|"quote.finalized"|"radar.early_fraud_warning.created"|"radar.early_fraud_warning.updated"|"refund.created"|"refund.updated"|"reporting.report_run.failed"|"reporting.report_run.succeeded"|"reporting.report_type.updated"|"review.closed"|"review.opened"|"setup_intent.canceled"|"setup_intent.created"|"setup_intent.requires_action"|"setup_intent.setup_failed"|"setup_intent.succeeded"|"sigma.scheduled_query_run.created"|"source.canceled"|"source.chargeable"|"source.failed"|"source.mandate_notification"|"source.refund_attributes_required"|"source.transaction.created"|"source.transaction.updated"|"subscription_schedule.aborted"|"subscription_schedule.canceled"|"subscription_schedule.completed"|"subscription_schedule.created"|"subscription_schedule.expiring"|"subscription_schedule.released"|"subscription_schedule.updated"|"tax.settings.updated"|"tax_rate.created"|"tax_rate.updated"|"terminal.reader.action_failed"|"terminal.reader.action_succeeded"|"test_helpers.test_clock.advancing"|"test_helpers.test_clock.created"|"test_helpers.test_clock.deleted"|"test_helpers.test_clock.internal_failure"|"test_helpers.test_clock.ready"|"topup.canceled"|"topup.created"|"topup.failed"|"topup.reversed"|"topup.succeeded"|"transfer.created"|"transfer.reversed"|"transfer.updated"|"treasury.credit_reversal.created"|"treasury.credit_reversal.posted"|"treasury.debit_reversal.completed"|"treasury.debit_reversal.created"|"treasury.debit_reversal.initial_credit_granted"|"treasury.financial_account.closed"|"treasury.financial_account.created"|"treasury.financial_account.features_status_updated"|"treasury.inbound_transfer.canceled"|"treasury.inbound_transfer.created"|"treasury.inbound_transfer.failed"|"treasury.inbound_transfer.succeeded"|"treasury.outbound_payment.canceled"|"treasury.outbound_payment.created"|"treasury.outbound_payment.expected_arrival_date_updated"|"treasury.outbound_payment.failed"|"treasury.outbound_payment.posted"|"treasury.outbound_payment.returned"|"treasury.outbound_payment.tracking_details_updated"|"treasury.outbound_transfer.canceled"|"treasury.outbound_transfer.created"|"treasury.outbound_transfer.expected_arrival_date_updated"|"treasury.outbound_transfer.failed"|"treasury.outbound_transfer.posted"|"treasury.outbound_transfer.returned"|"treasury.outbound_transfer.tracking_details_updated"|"treasury.received_credit.created"|"treasury.received_credit.failed"|"treasury.received_credit.succeeded"|"treasury.received_debit.created")[] enabledEvents?; + # An optional description of what the webhook is used for + string|"" description?; + # Disable the webhook endpoint if set to true + boolean disabled?; + # The URL of the webhook endpoint + string url?; +|}; + +# +public type InvoicesPaymentMethodOptions record { + # If paying by `bancontact`, this sub-hash contains details about the Bancontact payment method options to pass to the invoice’s PaymentIntent + InvoicePaymentMethodOptionsBancontact? bancontact?; + # If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice’s PaymentIntent + @jsondata:Name {value: "acss_debit"} + InvoicePaymentMethodOptionsAcssDebit? acssDebit?; + # If paying by `us_bank_account`, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice’s PaymentIntent + @jsondata:Name {value: "us_bank_account"} + InvoicePaymentMethodOptionsUsBankAccount? usBankAccount?; + # If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice’s PaymentIntent + @jsondata:Name {value: "customer_balance"} + InvoicePaymentMethodOptionsCustomerBalance? customerBalance?; + # If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice’s PaymentIntent + @jsondata:Name {value: "sepa_debit"} + InvoicePaymentMethodOptionsSepaDebit? sepaDebit?; + # If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice’s PaymentIntent + InvoicePaymentMethodOptionsKonbini? konbini?; + # If paying by `card`, this sub-hash contains details about the Card payment method options to pass to the invoice’s PaymentIntent + InvoicePaymentMethodOptionsCard? card?; +}; + +# +public type AccountCapabilities record { + # The status of the RevolutPay capability of the account, or whether the account can directly process RevolutPay payments + @jsondata:Name {value: "revolut_pay_payments"} + "active"|"inactive"|"pending" revolutPayPayments?; + # The status of the MobilePay capability of the account, or whether the account can directly process MobilePay charges + @jsondata:Name {value: "mobilepay_payments"} + "active"|"inactive"|"pending" mobilepayPayments?; + # The status of the P24 payments capability of the account, or whether the account can directly process P24 charges + @jsondata:Name {value: "p24_payments"} + "active"|"inactive"|"pending" p24Payments?; + # The status of the Cash App Pay capability of the account, or whether the account can directly process Cash App Pay payments + @jsondata:Name {value: "cashapp_payments"} + "active"|"inactive"|"pending" cashappPayments?; + # The status of the Japanese customer_balance payments (JPY currency) capability of the account, or whether the account can directly process Japanese customer_balance charges + @jsondata:Name {value: "jp_bank_transfer_payments"} + "active"|"inactive"|"pending" jpBankTransferPayments?; + # The status of the Klarna payments capability of the account, or whether the account can directly process Klarna charges + @jsondata:Name {value: "klarna_payments"} + "active"|"inactive"|"pending" klarnaPayments?; + # The status of the SEPA Direct Debits payments capability of the account, or whether the account can directly process SEPA Direct Debits charges + @jsondata:Name {value: "sepa_debit_payments"} + "active"|"inactive"|"pending" sepaDebitPayments?; + # The status of the US customer_balance payments (USD currency) capability of the account, or whether the account can directly process US customer_balance charges + @jsondata:Name {value: "us_bank_transfer_payments"} + "active"|"inactive"|"pending" usBankTransferPayments?; + # The status of the Canadian pre-authorized debits payments capability of the account, or whether the account can directly process Canadian pre-authorized debits charges + @jsondata:Name {value: "acss_debit_payments"} + "active"|"inactive"|"pending" acssDebitPayments?; + # The status of the blik payments capability of the account, or whether the account can directly process blik charges + @jsondata:Name {value: "blik_payments"} + "active"|"inactive"|"pending" blikPayments?; + # The status of the tax reporting 1099-MISC (US) capability of the account + @jsondata:Name {value: "tax_reporting_us_1099_misc"} + "active"|"inactive"|"pending" taxReportingUs1099Misc?; + # The status of the FPX payments capability of the account, or whether the account can directly process FPX charges + @jsondata:Name {value: "fpx_payments"} + "active"|"inactive"|"pending" fpxPayments?; + # The status of the GrabPay payments capability of the account, or whether the account can directly process GrabPay charges + @jsondata:Name {value: "grabpay_payments"} + "active"|"inactive"|"pending" grabpayPayments?; + # The status of the JCB payments capability of the account, or whether the account (Japan only) can directly process JCB credit card charges in JPY currency + @jsondata:Name {value: "jcb_payments"} + "active"|"inactive"|"pending" jcbPayments?; + # The status of the EPS payments capability of the account, or whether the account can directly process EPS charges + @jsondata:Name {value: "eps_payments"} + "active"|"inactive"|"pending" epsPayments?; + # The status of the transfers capability of the account, or whether your platform can transfer funds to the account + "active"|"inactive"|"pending" transfers?; + # The status of the Afterpay Clearpay capability of the account, or whether the account can directly process Afterpay Clearpay charges + @jsondata:Name {value: "afterpay_clearpay_payments"} + "active"|"inactive"|"pending" afterpayClearpayPayments?; + # The status of the Multibanco payments capability of the account, or whether the account can directly process Multibanco charges + @jsondata:Name {value: "multibanco_payments"} + "active"|"inactive"|"pending" multibancoPayments?; + # The status of the GB customer_balance payments (GBP currency) capability of the account, or whether the account can directly process GB customer_balance charges + @jsondata:Name {value: "gb_bank_transfer_payments"} + "active"|"inactive"|"pending" gbBankTransferPayments?; + # The status of the OXXO payments capability of the account, or whether the account can directly process OXXO charges + @jsondata:Name {value: "oxxo_payments"} + "active"|"inactive"|"pending" oxxoPayments?; + # The status of the india_international_payments capability of the account, or whether the account can process international charges (non INR) in India + @jsondata:Name {value: "india_international_payments"} + "active"|"inactive"|"pending" indiaInternationalPayments?; + # The status of the TWINT capability of the account, or whether the account can directly process TWINT charges + @jsondata:Name {value: "twint_payments"} + "active"|"inactive"|"pending" twintPayments?; + # The status of the konbini payments capability of the account, or whether the account can directly process konbini charges + @jsondata:Name {value: "konbini_payments"} + "active"|"inactive"|"pending" konbiniPayments?; + # The status of the Sofort payments capability of the account, or whether the account can directly process Sofort charges + @jsondata:Name {value: "sofort_payments"} + "active"|"inactive"|"pending" sofortPayments?; + # The status of the boleto payments capability of the account, or whether the account can directly process boleto charges + @jsondata:Name {value: "boleto_payments"} + "active"|"inactive"|"pending" boletoPayments?; + # The status of the BECS Direct Debit (AU) payments capability of the account, or whether the account can directly process BECS Direct Debit (AU) charges + @jsondata:Name {value: "au_becs_debit_payments"} + "active"|"inactive"|"pending" auBecsDebitPayments?; + # The status of the SEPA customer_balance payments (EUR currency) capability of the account, or whether the account can directly process SEPA customer_balance charges + @jsondata:Name {value: "sepa_bank_transfer_payments"} + "active"|"inactive"|"pending" sepaBankTransferPayments?; + # The status of the giropay payments capability of the account, or whether the account can directly process giropay charges + @jsondata:Name {value: "giropay_payments"} + "active"|"inactive"|"pending" giropayPayments?; + # The status of the legacy payments capability of the account + @jsondata:Name {value: "legacy_payments"} + "active"|"inactive"|"pending" legacyPayments?; + # The status of the tax reporting 1099-K (US) capability of the account + @jsondata:Name {value: "tax_reporting_us_1099_k"} + "active"|"inactive"|"pending" taxReportingUs1099K?; + # The status of the Bacs Direct Debits payments capability of the account, or whether the account can directly process Bacs Direct Debits charges + @jsondata:Name {value: "bacs_debit_payments"} + "active"|"inactive"|"pending" bacsDebitPayments?; + # The status of the Zip capability of the account, or whether the account can directly process Zip charges + @jsondata:Name {value: "zip_payments"} + "active"|"inactive"|"pending" zipPayments?; + # The status of the card payments capability of the account, or whether the account can directly process credit and debit card charges + @jsondata:Name {value: "card_payments"} + "active"|"inactive"|"pending" cardPayments?; + # The status of the Mexican customer_balance payments (MXN currency) capability of the account, or whether the account can directly process Mexican customer_balance charges + @jsondata:Name {value: "mx_bank_transfer_payments"} + "active"|"inactive"|"pending" mxBankTransferPayments?; + # The status of the Swish capability of the account, or whether the account can directly process Swish payments + @jsondata:Name {value: "swish_payments"} + "active"|"inactive"|"pending" swishPayments?; + # The status of the Affirm capability of the account, or whether the account can directly process Affirm charges + @jsondata:Name {value: "affirm_payments"} + "active"|"inactive"|"pending" affirmPayments?; + # The status of the card issuing capability of the account, or whether you can use Issuing to distribute funds on cards + @jsondata:Name {value: "card_issuing"} + "active"|"inactive"|"pending" cardIssuing?; + # The status of the banking capability, or whether the account can have bank accounts + "active"|"inactive"|"pending" treasury?; + # The status of the Bancontact payments capability of the account, or whether the account can directly process Bancontact charges + @jsondata:Name {value: "bancontact_payments"} + "active"|"inactive"|"pending" bancontactPayments?; + # The status of the customer_balance payments capability of the account, or whether the account can directly process customer_balance charges + @jsondata:Name {value: "bank_transfer_payments"} + "active"|"inactive"|"pending" bankTransferPayments?; + # The status of the Cartes Bancaires payments capability of the account, or whether the account can directly process Cartes Bancaires card charges in EUR currency + @jsondata:Name {value: "cartes_bancaires_payments"} + "active"|"inactive"|"pending" cartesBancairesPayments?; + # The status of the iDEAL payments capability of the account, or whether the account can directly process iDEAL charges + @jsondata:Name {value: "ideal_payments"} + "active"|"inactive"|"pending" idealPayments?; + # The status of the promptpay payments capability of the account, or whether the account can directly process promptpay charges + @jsondata:Name {value: "promptpay_payments"} + "active"|"inactive"|"pending" promptpayPayments?; + # The status of the paynow payments capability of the account, or whether the account can directly process paynow charges + @jsondata:Name {value: "paynow_payments"} + "active"|"inactive"|"pending" paynowPayments?; + # The status of the US bank account ACH payments capability of the account, or whether the account can directly process US bank account charges + @jsondata:Name {value: "us_bank_account_ach_payments"} + "active"|"inactive"|"pending" usBankAccountAchPayments?; + # The status of the link_payments capability of the account, or whether the account can directly process Link charges + @jsondata:Name {value: "link_payments"} + "active"|"inactive"|"pending" linkPayments?; + # The status of the AmazonPay capability of the account, or whether the account can directly process AmazonPay payments + @jsondata:Name {value: "amazon_pay_payments"} + "active"|"inactive"|"pending" amazonPayPayments?; +}; + +public type DefaultaccounttaxidsItemsString string; + +# Represents the Queries record for the operation: GetQuotesQuotePdf +public type GetQuotesQuotePdfQueries record { + # Specifies which fields in the response should be expanded + GetQuotesQuotePdfQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type SessionRedactBodyExpandItemsString string; + +public type CanceledAtRangeQuerySpecs412 int; + +@constraint:String {maxLength: 5000} +public type PayoutspayoutBodyExpandItemsString string; + +public type Discounts1 Discounts1AnyOf1|Discounts1Discounts1AnyOf12; + +@constraint:String {maxLength: 5000} +public type GetIssuingPersonalizationDesignsPersonalizationDesignQueriesExpandItemsString string; + +# +public type FinancialReportingFinanceReportTypeList record { + ReportingReportType[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SetupAttemptPaymentMethodDetailsPaypal record { +}; + +# Represents the Queries record for the operation: GetTreasuryFinancialAccountsFinancialAccountFeatures +public type GetTreasuryFinancialAccountsFinancialAccountFeaturesQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryFinancialAccountsFinancialAccountFeaturesQueriesExpandItemsString[] expand?; +}; + +public type TransactionsCreateReversalBody record {| + # If `partial`, the provided line item or shipping cost amounts are reversed. If `full`, the original transaction is fully reversed + "full"|"partial" mode; + # A custom identifier for this reversal, such as `myOrder_123-refund_1`, which must be unique across all transactions. The reference helps identify this reversal transaction in exported [tax reports](https://stripe.com/docs/tax/reports) + @constraint:String {maxLength: 500} + string reference; + # Specifies which fields in the response should be expanded + TransactionsCreateReversalBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The ID of the Transaction to partially or fully reverse + @jsondata:Name {value: "original_transaction"} + string originalTransaction; + # A flat amount to reverse across the entire transaction, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. This value represents the total amount to refund from the transaction, including taxes + @jsondata:Name {value: "flat_amount"} + int flatAmount?; + @jsondata:Name {value: "shipping_cost"} + TransactionShippingCostReversal shippingCost?; + # The line item amounts to reverse + @jsondata:Name {value: "line_items"} + TransactionLineItemReversal[] lineItems?; +|}; + +# +public type PaymentIntentNextActionDisplayMultibancoDetails record { + # Reference number associated with this Multibanco payment + string? reference?; + # The timestamp at which the Multibanco voucher expires + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # The URL for the hosted Multibanco voucher page, which allows customers to view a Multibanco voucher + @jsondata:Name {value: "hosted_voucher_url"} + string? hostedVoucherUrl?; + # Entity number associated with this Multibanco payment + string? entity?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerTaxIdsQueriesExpandItemsString string; + +public type ProductsBody record {| + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer + string[] images?; + # 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` + record {|string...;|} metadata?; + # Whether the product is currently available for purchase. Defaults to `true` + boolean active?; + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes + @constraint:String {maxLength: 40000} + string description?; + # A URL of a publicly-accessible webpage for this product + @constraint:String {maxLength: 5000} + string url?; + @jsondata:Name {value: "package_dimensions"} + PackageDimensionsSpecs packageDimensions?; + # An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all. + # + # This may be up to 22 characters. The statement description may not include `<`, `>`, `\`, `"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped. + # It must contain at least one letter. Only used for subscription payments + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # Specifies which fields in the response should be expanded + ProductsBodyExpandItemsString[] expand?; + # A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table) + @jsondata:Name {value: "marketing_features"} + Features[] marketingFeatures?; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID + @jsondata:Name {value: "tax_code"} + string taxCode?; + # Whether this product is shipped (i.e., physical goods) + boolean shippable?; + @jsondata:Name {value: "default_price_data"} + PriceDataWithoutProduct defaultPriceData?; + # The product's name, meant to be displayable to the customer + @constraint:String {maxLength: 5000} + string name; + # An identifier will be randomly generated by Stripe. You can optionally override this ID, but the ID must be unique across all products in your Stripe account + @constraint:String {maxLength: 5000} + string id?; + # A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal + @jsondata:Name {value: "unit_label"} + string unitLabel?; +|}; + +public type Owner record { + SourceAddress address?; + @constraint:String {maxLength: 5000} + string phone?; + @constraint:String {maxLength: 5000} + string name?; + string email?; +}; + +# +public type GelatoEmailReportError record { + # A human-readable message giving the reason for the failure. These messages can be shown to your users + string? reason?; + # A short machine-readable string giving the reason for the verification failure + "email_unverified_other"|"email_verification_declined"? code?; +}; + +@constraint:String {maxLength: 5000} +public type GetBalanceTransactionsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type PricesBodyExpandItemsString string; + +# +public type PaymentMethodDetailsBlik record { +}; + +# Represents the Queries record for the operation: GetDisputesDispute +public type GetDisputesDisputeQueries record { + # Specifies which fields in the response should be expanded + GetDisputesDisputeQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetTopups +public type GetTopupsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # A positive integer representing how much to transfer + Amount amount?; + # Specifies which fields in the response should be expanded + GetTopupsQueriesExpandItemsString[] expand?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created41 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return top-ups that have the given status. One of `canceled`, `failed`, `pending` or `succeeded` + "canceled"|"failed"|"pending"|"succeeded" status?; +}; + +public type LineItemUpdateParams record { + @jsondata:Name {value: "price_data"} + PriceData priceData?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + @constraint:String {maxLength: 5000} + string id?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +# +public type PaymentPagesCheckoutSessionPhoneNumberCollection record { + # Indicates whether phone number collection is enabled for the session + boolean enabled; +}; + +# Login Links are single-use URLs for a connected account to access the Express Dashboard. The connected account's [account.controller.stripe_dashboard.type](/api/accounts/object#account_object-controller-stripe_dashboard-type) must be `express` to have access to the Express Dashboard +public type LoginLink record { + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The URL for the login link + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "login_link" 'object; +}; + +public type TreasuryOutboundPaymentsBody record {| + # The description that appears on the receiving end for this OutboundPayment (for example, bank statement for external bank transfer). Maximum 10 characters for `ach` payments, 140 characters for `us_domestic_wire` payments, or 500 characters for `stripe` network transfers. The default value is "payment" + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # The FinancialAccount to pull funds from + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) to be transferred + int amount; + # Specifies which fields in the response should be expanded + TreasuryOutboundPaymentsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "destination_payment_method_options"} + PaymentMethodOptions2 destinationPaymentMethodOptions?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + @jsondata:Name {value: "end_user_details"} + EndUserDetailsParams endUserDetails?; + @jsondata:Name {value: "destination_payment_method_data"} + PaymentMethodData destinationPaymentMethodData?; + # ID of the customer to whom the OutboundPayment is sent. Must match the Customer attached to the `destination_payment_method` passed in + @constraint:String {maxLength: 5000} + string customer?; + # The PaymentMethod to use as the payment instrument for the OutboundPayment. Exclusive with `destination_payment_method_data` + @jsondata:Name {value: "destination_payment_method"} + string destinationPaymentMethod?; +|}; + +@constraint:String {maxLength: 5000} +public type CustomerBankAccountsBodyExpandItemsString string; + +# +public type CreditNotesList record { + CreditNote[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type OutboundTransferCancelBodyExpandItemsString string; + +# +public type LinkedAccountOptionsUsBankAccount record { + # The list of permissions to request. The `payment_method` permission must be included + ("balances"|"ownership"|"payment_method"|"transactions")[] permissions?; + # Data features requested to be retrieved upon account creation + ("balances"|"ownership"|"transactions")[]? prefetch?; + # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app + @jsondata:Name {value: "return_url"} + string returnUrl?; + PaymentFlowsPrivatePaymentMethodsUsBankAccountLinkedAccountOptionsFilters filters?; +}; + +public type FinancialConnectionsSessionsBodyPermissionsItemsString "balances"|"ownership"|"payment_method"|"transactions"; + +public type FinancialAccountsfinancialAccountBody record {| + FeatureAccess1 features?; + # Specifies which fields in the response should be expanded + FinancialAccountsfinancialAccountBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "platform_restrictions"} + PlatformRestrictions platformRestrictions?; +|}; + +public type DocumentsParam15Files FilesAnyOf114|FilesFilesAnyOf1142; + +# Metadata about the forwarded request +public type ForwardedRequestContext record { + # The time it took in milliseconds for the destination endpoint to respond + @jsondata:Name {value: "destination_duration"} + int destinationDuration; + # The IP address of the destination + @jsondata:Name {value: "destination_ip_address"} + string destinationIpAddress; +}; + +public type Tier record { + @jsondata:Name {value: "flat_amount"} + int flatAmount?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + @jsondata:Name {value: "up_to"} + "inf"|int upTo; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + @jsondata:Name {value: "flat_amount_decimal"} + string flatAmountDecimal?; +}; + +# The full address of the location +public type CreateLocationAddressParam record { + @constraint:String {maxLength: 5000} + string country; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionssubscriptionExposedIdBody3ExpandItemsString string; + +# +public type CheckoutGrabPayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type FinancialReportingFinanceReportRunRunParametersColumnsItemsString string; + +@constraint:String {maxLength: 100} +public type Application1AnyOf1 string; + +public type LineItemParamsTaxratesItemsString string; + +@constraint:String {maxLength: 5000} +public type GetSourcesSourceQueriesExpandItemsString string; + +# +public type PaymentIntentCardProcessing record { + @jsondata:Name {value: "customer_notification"} + PaymentIntentProcessingCustomerNotification customerNotification?; +}; + +# Details on the legal guardian's acceptance of the required Stripe agreements +public type PersonAdditionalTosAcceptancesSpecs record { + SettingsTermsOfServiceSpecs account?; +}; + +# Data used to generate a new [Price](https://stripe.com/docs/api/prices) object. This Price will be set as the default price for this product +public type PriceDataWithoutProduct record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + RecurringAdhoc recurring?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption2...;|} currencyOptions?; +}; + +# +public type BankAccountList record { + # Details about each object + BankAccount[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SourceOwner record { + # 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 + @jsondata:Name {value: "verified_phone"} + string? verifiedPhone?; + # Owner's address + Address? address?; + # Owner's phone number (including extension) + string? phone?; + # Owner's full name + string? 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 + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # 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 + @jsondata:Name {value: "verified_email"} + string? verifiedEmail?; + # 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 + @jsondata:Name {value: "verified_address"} + Address? verifiedAddress?; + # Owner's email address + string? email?; +}; + +# +public type CouponAppliesTo record { + # A list of product IDs this coupon applies to + CouponAppliesToProductsItemsString[] products; +}; + +public type Created34RangeQuerySpecs372 int; + +# Details about the response from the destination endpoint +public type ForwardedResponseDetails record { + # HTTP headers that the destination endpoint returned + ForwardedRequestHeader[] headers; + # The response body from the destination endpoint to Stripe + @constraint:String {maxLength: 5000} + string body; + # The HTTP status code that the destination endpoint returned + int status; +}; + +# Hash used to generate the PaymentMethod to be used for this OutboundPayment. Exclusive with `destination_payment_method` +public type PaymentMethodData record { + @jsondata:Name {value: "financial_account"} + string financialAccount?; + @jsondata:Name {value: "billing_details"} + BillingDetailsInnerParams billingDetails?; + record {|string...;|} metadata?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam1 usBankAccount?; + "financial_account"|"us_bank_account" 'type; +}; + +public type PhaseConfigurationParams record { + @jsondata:Name {value: "end_date"} + int|"now" endDate?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettings invoiceSettings?; + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + record {|string...;|} metadata?; + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + string|"" description?; + @jsondata:Name {value: "trial_end"} + int|"now" trialEnd?; + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start" billingCycleAnchor?; + int iterations?; + boolean trial?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs2 transferData?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig1 automaticTax?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + ConfigurationItemParams[] items; + @jsondata:Name {value: "start_date"} + int|"now" startDate?; +}; + +# +public type PaymentLinksResourceRestrictions record { + @jsondata:Name {value: "completed_sessions"} + PaymentLinksResourceCompletedSessions completedSessions; +}; + +public type TokenstokenBody record {| + # Specifies which fields in the response should be expanded + TokenstokenBodyExpandItemsString[] expand?; + # Specifies which status the token should be updated to + "active"|"deleted"|"suspended" status; +|}; + +public type DiscountParams record { + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "promotion_code"} + string promotionCode?; +}; + +public type Created32RangeQuerySpecs352 int; + +# Represents the Queries record for the operation: GetTaxTransactionsTransaction +public type GetTaxTransactionsTransactionQueries record { + # Specifies which fields in the response should be expanded + GetTaxTransactionsTransactionQueriesExpandItemsString[] expand?; +}; + +# +public type SetupIntentPaymentMethodOptionsCard record { + # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge"? requestThreeDSecure?; + # Configuration options for setting up an eMandate for cards issued in India + @jsondata:Name {value: "mandate_options"} + SetupIntentPaymentMethodOptionsCardMandateOptions? mandateOptions?; + # Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the setup intent. Can be only set confirm-time + "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa"? network?; +}; + +public type SubscriptionBillingCycleAnchor SubscriptionBillingCycleAnchorAnyOf1|SubscriptionBillingCycleAnchorSubscriptionBillingCycleAnchorAnyOf12; + +# Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information +public type RadarOptionsWithHiddenOptions record { + @constraint:String {maxLength: 5000} + string session?; +}; + +# Events are our way of letting you know when something interesting happens in +# your account. When an interesting event occurs, we create a new `Event` +# object. For example, when a charge succeeds, we create a `charge.succeeded` +# event, and when an invoice payment attempt fails, we create an +# `invoice.payment_failed` event. Certain API requests might create multiple +# events. For example, if you create a new subscription for a +# customer, you receive both a `customer.subscription.created` event and a +# `charge.succeeded` event. +# +# Events occur when the state of another API resource changes. The event's data +# field embeds the resource's state at the time of the change. For +# example, a `charge.succeeded` event contains a charge, and an +# `invoice.payment_failed` event contains an invoice. +# +# As with other API resources, you can use endpoints to retrieve an +# [individual event](https://stripe.com/docs/api#retrieve_event) or a [list of events](https://stripe.com/docs/api#list_events) +# from the API. We also have a separate +# [webhooks](http://en.wikipedia.org/wiki/Webhook) system for sending the +# `Event` objects directly to an endpoint on your server. You can manage +# webhooks in your +# [account settings](https://dashboard.stripe.com/account/webhooks). Learn how +# to [listen for events](https://docs.stripe.com/webhooks) +# so that your integration can automatically trigger reactions. +# +# When using [Connect](https://docs.stripe.com/connect), you can also receive event notifications +# that occur in connected accounts. For these events, there's an +# additional `account` attribute in the received `Event` object. +# +# We only guarantee access to events through the [Retrieve Event API](https://stripe.com/docs/api#retrieve_event) +# for 30 days +public type Event record { + # Information on the API request that triggers the event + NotificationEventRequest? request?; + NotificationEventData data; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The Stripe API version used to render `data`. This property is populated only for events on or after October 31, 2014 + @jsondata:Name {value: "api_version"} + string? apiVersion?; + # Description of the event (for example, `invoice.created` or `charge.refunded`) + @constraint:String {maxLength: 5000} + string 'type; + # The connected account that originates the event + @constraint:String {maxLength: 5000} + string account?; + # Number of webhooks that haven't been successfully delivered (for example, to return a 20x response) to the URLs you specify + @jsondata:Name {value: "pending_webhooks"} + int pendingWebhooks; + # String representing the object's type. Objects of the same type share the same value + "event" 'object; +}; + +# Represents the Queries record for the operation: GetTreasuryOutboundTransfersOutboundTransfer +public type GetTreasuryOutboundTransfersOutboundTransferQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryOutboundTransfersOutboundTransferQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodCardWalletApplePay record { +}; + +# When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created +public type SubscriptionDataUpdateParams1 record { + record {|string...;|} metadata?; + @jsondata:Name {value: "effective_date"} + "current_period_end"|int|"" effectiveDate?; + string|"" description?; + @jsondata:Name {value: "trial_period_days"} + int|"" trialPeriodDays?; +}; + +# Represents the Queries record for the operation: GetTaxSettings +public type GetTaxSettingsQueries record { + # Specifies which fields in the response should be expanded + GetTaxSettingsQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxCodesIdQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetTaxIdsId +public type GetTaxIdsIdQueries record { + # Specifies which fields in the response should be expanded + GetTaxIdsIdQueriesExpandItemsString[] expand?; +}; + +public type DocumentsParam12Files FilesAnyOf111|FilesFilesAnyOf1112; + +@constraint:String {maxLength: 5000} +public type RefundsrefundBody1ExpandItemsString string; + +# Shipping cost details to be used for the calculation +public type ShippingCost1 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive" taxBehavior?; + int amount?; + @jsondata:Name {value: "tax_code"} + string taxCode?; + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; +}; + +# +public type InvoicesResourceInvoiceTaxId record { + # The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, or `unknown` + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"unknown"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + # The value of the tax ID + string? value?; +}; + +public type TransferDataParams record { + int amount?; + string destination; +}; + +public type ShippingFailBody record {| + # Specifies which fields in the response should be expanded + ShippingFailBodyExpandItemsString[] expand?; +|}; + +# +public type TreasuryOutboundPaymentsResourceReturnedStatus record { + # Reason for the return + "account_closed"|"account_frozen"|"bank_account_restricted"|"bank_ownership_changed"|"declined"|"incorrect_account_holder_name"|"invalid_account_number"|"invalid_currency"|"no_account"|"other" code; + # The Transaction associated with this object + string|TreasuryTransaction 'transaction; +}; + +public type Created37RangeQuerySpecs402 int; + +# `ExchangeRate` objects allow you to determine the rates that Stripe is currently +# using to convert from one currency to another. Since this number is variable +# throughout the day, there are various reasons why you might want to know the current +# rate (for example, to dynamically price an item for a user with a default +# payment in a foreign currency). +# +# Please refer to our [Exchange Rates API](https://stripe.com/docs/fx-rates) guide for more details. +# +# *[Note: this integration path is supported but no longer recommended]* Additionally, +# you can guarantee that a charge is made with an exchange rate that you expect is +# current. To do so, you must pass in the exchange_rate to charges endpoints. If the +# value is no longer up to date, the charge won't go through. Please refer to our +# [Using with charges](https://stripe.com/docs/exchange-rates) guide for more details. +# +# ----- +# +#   +# +# *This Exchange Rates API is a Beta Service and is subject to Stripe's terms of service. You may use the API solely for the purpose of transacting on Stripe. For example, the API may be queried in order to:* +# +# - *localize prices for processing payments on Stripe* +# - *reconcile Stripe transactions* +# - *determine how much money to send to a connected account* +# - *determine app fees to charge a connected account* +# +# *Using this Exchange Rates API beta for any purpose other than to transact on Stripe is strictly prohibited and constitutes a violation of Stripe's terms of service.* +public type ExchangeRate record { + # Hash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency + record {||} rates; + # Unique identifier for the object. Represented as the three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) in lowercase + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "exchange_rate" 'object; +}; + +public type BillingMeterEventsBody record {| + # A unique identifier for the event. If not provided, one will be generated. We recommend using a globally unique identifier for this. We'll enforce uniqueness within a rolling 24 hour period + @constraint:String {maxLength: 100} + string identifier?; + # Specifies which fields in the response should be expanded + BillingMeterEventsBodyExpandItemsString[] expand?; + # The payload of the event. This must contain the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides) + record {|string...;|} payload; + # The name of the meter event. Corresponds with the `event_name` field on a meter + @jsondata:Name {value: "event_name"} + string eventName; + # The time of the event. Measured in seconds since the Unix epoch. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified + int timestamp?; +|}; + +# +public type PaymentIntentProcessingCustomerNotification record { + # Whether customer approval has been requested for this payment. For payments greater than INR 15000 or mandate amount, the customer must provide explicit approval of the payment with their bank + @jsondata:Name {value: "approval_requested"} + boolean? approvalRequested?; + # If customer approval is required, they need to provide approval before this time + @jsondata:Name {value: "completes_at"} + int? completesAt?; +}; + +# +public type PaymentIntentNextActionSwishQrCode record { + # The image_url_png string used to render QR code + @jsondata:Name {value: "image_url_png"} + string imageUrlPng; + # The raw data string used to generate QR code, it should be used together with QR code library + @constraint:String {maxLength: 5000} + string data; + # The image_url_svg string used to render QR code + @jsondata:Name {value: "image_url_svg"} + string imageUrlSvg; +}; + +# +public type PaymentMethodDetailsCardInstallments record { + # Installment plan selected for the payment + PaymentMethodDetailsCardInstallmentsPlan? plan?; +}; + +# +public type TaxProductRegistrationsResourceCountryOptionsCaProvinceStandard record { + # Two-letter CA province code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)) + @constraint:String {maxLength: 5000} + string province; +}; + +@constraint:String {maxLength: 5000} +public type TokensBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type InboundTransferCancelBodyExpandItemsString string; + +public type IssuingCardAuthorizationControlsAllowedmerchantcountriesItemsString string; + +# Represents the Queries record for the operation: GetRefundsRefund +public type GetRefundsRefundQueries record { + # Specifies which fields in the response should be expanded + GetRefundsRefundQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscountQueriesExpandItemsString string; + +# +public type PaymentMethodUsBankAccount record { + # Last four digits of the bank account number + string? last4?; + # Account type: checkings or savings. Defaults to checking if omitted + @jsondata:Name {value: "account_type"} + "checking"|"savings"? accountType?; + # The ID of the Financial Connections Account used to create the payment method + @jsondata:Name {value: "financial_connections_account"} + string? financialConnectionsAccount?; + # Account holder type: individual or company + @jsondata:Name {value: "account_holder_type"} + "company"|"individual"? accountHolderType?; + # The name of the bank + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Contains information about US bank account networks that can be used + UsBankAccountNetworks? networks?; + # Routing number of the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + # Contains information about the future reusability of this PaymentMethod + @jsondata:Name {value: "status_details"} + PaymentMethodUsBankAccountStatusDetails? statusDetails?; +}; + +# +public type PaymentIntentNextActionKonbiniSeicomart record { + # The confirmation number + @jsondata:Name {value: "confirmation_number"} + string confirmationNumber?; + # The payment code + @jsondata:Name {value: "payment_code"} + string paymentCode; +}; + +public type Created31RangeQuerySpecs342 int; + +# The list of items the customer is purchasing +public type TaxProductResourceTaxCalculationLineItemList1 record { + # Details about each object + TaxCalculationLineItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/tax/calculations/[^/]+/line_items`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig record { + # A File ID representing an image you would like displayed on the reader + string|File splashscreen?; +}; + +# The customer's payment sources, if any +public type ApmsSourcesSourceList1 record { + # Details about each object + Polymorphic1[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type TaxratesItemsString string; + +# Represents the Queries record for the operation: GetTerminalLocationsLocation +public type GetTerminalLocationsLocationQueries record { + # Specifies which fields in the response should be expanded + GetTerminalLocationsLocationQueriesExpandItemsString[] expand?; +}; + +# +public type IssuingNetworkTokenVisa record { + # Degree of risk associated with the token between `01` and `99`, with higher number indicating higher risk. A `00` value indicates the token was not scored by Visa + @jsondata:Name {value: "token_risk_score"} + string tokenRiskScore?; + # A unique reference ID from Visa to represent the card account number + @jsondata:Name {value: "card_reference_id"} + string cardReferenceId; + # The network-unique identifier for the token + @jsondata:Name {value: "token_reference_id"} + string tokenReferenceId; + # The ID of the entity requesting tokenization, specific to Visa + @jsondata:Name {value: "token_requestor_id"} + string tokenRequestorId; +}; + +# Represents the Queries record for the operation: GetApplicationFees +public type GetApplicationFeesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetApplicationFeesQueriesExpandItemsString[] expand?; + # Only return application fees for the charge specified by this charge ID + @constraint:String {maxLength: 5000} + string charge?; + # Only return applications fees that were created during the given date interval + Created1 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type CreditNoteTaxAmount record { + # Whether this tax amount is inclusive or exclusive + boolean inclusive; + # The amount, in cents (or local equivalent), of the tax + int amount; + # The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported + @jsondata:Name {value: "taxability_reason"} + "customer_exempt"|"not_collecting"|"not_subject_to_tax"|"not_supported"|"portion_product_exempt"|"portion_reduced_rated"|"portion_standard_rated"|"product_exempt"|"product_exempt_holiday"|"proportionally_rated"|"reduced_rated"|"reverse_charge"|"standard_rated"|"taxable_basis_reduced"|"zero_rated"? taxabilityReason?; + # The amount on which tax is calculated, in cents (or local equivalent) + @jsondata:Name {value: "taxable_amount"} + int? taxableAmount?; + # The tax rate that was applied to get this tax amount + @jsondata:Name {value: "tax_rate"} + string|TaxRate taxRate; +}; + +public type FilesFilesAnyOf1112 ""; + +public type PaymentsSettingsSpecs record { + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "statement_descriptor_kanji"} + string statementDescriptorKanji?; + @jsondata:Name {value: "statement_descriptor_kana"} + string statementDescriptorKana?; +}; + +# Details provided about the user being verified. These details may be shown to the user +public type ProvidedDetailsParam record { + string phone?; + string email?; +}; + +# +public type IssuingAuthorizationList record { + IssuingAuthorization[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/authorizations`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetTreasuryInboundTransfers +public type GetTreasuryInboundTransfersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryInboundTransfersQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return InboundTransfers that have the given status: `processing`, `succeeded`, `failed` or `canceled` + "canceled"|"failed"|"processing"|"succeeded" status?; +}; + +@constraint:String {maxLength: 5000} +public type PersonalizationDesignRejectBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type CountrySpecVerificationFieldDetailsAdditionalItemsString string; + +# +public type PaymentLinksResourceCompletedSessions record { + # The current number of checkout sessions that have been completed on the payment link which count towards the `completed_sessions` restriction to be met + int count; + # The maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met + int 'limit; +}; + +public type FilesFilesAnyOf1102 ""; + +# Represents the Queries record for the operation: GetTreasuryTransactions +public type GetTreasuryTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryTransactionsQueriesExpandItemsString[] expand?; + # Only return Transactions that were created during the given date interval + Created46 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # The results are in reverse chronological order by `created` or `posted_at`. The default is `created` + @http:Query {name: "order_by"} + "created"|"posted_at" orderBy?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # A filter for the `status_transitions.posted_at` timestamp. When using this filter, `status=posted` and `order_by=posted_at` must also be specified + @http:Query {name: "status_transitions"} + StatusTransitionTimestampSpecs statusTransitions?; + # Only return Transactions that have the given status: `open`, `posted`, or `void` + "open"|"posted"|"void" status?; +}; + +# Iban Records contain E.U. bank account details per the SEPA format +public type FundingInstructionsBankTransferIbanRecord record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName; + # The IBAN of the account + @constraint:String {maxLength: 5000} + string iban; + # The BIC/SWIFT code of the account + @constraint:String {maxLength: 5000} + string bic; +}; + +# Result from an id_number check +public type GelatoIdNumberReport record { + # Type of ID number + @jsondata:Name {value: "id_number_type"} + "br_cpf"|"sg_nric"|"us_ssn"? idNumberType?; + # ID number. When `id_number_type` is `us_ssn`, only the last 4 digits are present + @jsondata:Name {value: "id_number"} + string? idNumber?; + # Date of birth + GelatoDataIdNumberReportDate? dob?; + # Last name + @jsondata:Name {value: "last_name"} + string? lastName?; + # Details on the verification error. Present when status is `unverified` + GelatoIdNumberReportError? 'error?; + # First name + @jsondata:Name {value: "first_name"} + string? firstName?; + # Status of this `id_number` check + "unverified"|"verified" status; +}; + +# +public type PlatformEarningList record { + ApplicationFee[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/application_fees`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetBillingMetersIdEventSummariesQueriesExpandItemsString string; + +public type Created20RangeQuerySpecs222 int; + +# +public type LegalEntityDob record { + # The month of birth, between 1 and 12 + int? month?; + # The four-digit year of birth + int? year?; + # The day of birth, between 1 and 31 + int? day?; +}; + +public type RetentionParam record { + @jsondata:Name {value: "coupon_offer"} + CouponOfferParam couponOffer; + "coupon_offer" 'type; +}; + +# +public type SetupIntentPaymentMethodOptionsMandateOptionsAcssDebit record { + # Payment schedule for the mandate + @jsondata:Name {value: "payment_schedule"} + "combined"|"interval"|"sporadic"? paymentSchedule?; + # List of Stripe products where this mandate can be selected automatically + @jsondata:Name {value: "default_for"} + ("invoice"|"subscription")[] defaultFor?; + # A URL for custom mandate text + @jsondata:Name {value: "custom_mandate_url"} + string customMandateUrl?; + # Transaction type of the mandate + @jsondata:Name {value: "transaction_type"} + "business"|"personal"? transactionType?; + # Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined' + @jsondata:Name {value: "interval_description"} + string? intervalDescription?; +}; + +# Represents the Queries record for the operation: GetSubscriptions +public type GetSubscriptionsQueries record { + # Filter for subscriptions that are associated with the specified test clock. The response will not include subscriptions with test clocks if this and the customer parameter is not set + @http:Query {name: "test_clock"} + string testClock?; + # Only return subscriptions that were created during the given date interval + Created39 created?; + @http:Query {name: "current_period_end"} + CurrentPeriodEnd currentPeriodEnd?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSubscriptionsQueriesExpandItemsString[] expand?; + # Filter subscriptions by their automatic tax settings + @http:Query {name: "automatic_tax"} + AutomaticTaxFilterParams automaticTax?; + # Filter for subscriptions that contain this recurring price ID + @constraint:String {maxLength: 5000} + string price?; + # The collection method of the subscriptions to retrieve. Either `charge_automatically` or `send_invoice` + @http:Query {name: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + @http:Query {name: "current_period_start"} + CurrentPeriodStart currentPeriodStart?; + # The ID of the customer whose subscriptions will be retrieved + @constraint:String {maxLength: 5000} + string customer?; + # The status of the subscriptions to retrieve. Passing in a value of `canceled` will return all canceled subscriptions, including those belonging to deleted customers. Pass `ended` to find subscriptions that are canceled and subscriptions that are expired due to [incomplete payment](https://stripe.com/docs/billing/subscriptions/overview#subscription-statuses). Passing in a value of `all` will return subscriptions of all statuses. If no value is supplied, all subscriptions that have not been canceled are returned + "active"|"all"|"canceled"|"ended"|"incomplete"|"incomplete_expired"|"past_due"|"paused"|"trialing"|"unpaid" status?; +}; + +public type FilesFilesAnyOf1132 ""; + +# Represents the Queries record for the operation: GetIdentityVerificationSessionsSession +public type GetIdentityVerificationSessionsSessionQueries record { + # Specifies which fields in the response should be expanded + GetIdentityVerificationSessionsSessionQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type PersonspersonBodyExpandItemsString string; + +# +public type SubscriptionsResourceBillingCycleAnchorConfig record { + # The hour of the day of the billing_cycle_anchor + int? hour?; + # The month to start full cycle billing periods + int? month?; + # The day of the month of the billing_cycle_anchor + @jsondata:Name {value: "day_of_month"} + int dayOfMonth; + # The minute of the hour of the billing_cycle_anchor + int? minute?; + # The second of the minute of the billing_cycle_anchor + int? second?; +}; + +# Represents the Queries record for the operation: GetPromotionCodesPromotionCode +public type GetPromotionCodesPromotionCodeQueries record { + # Specifies which fields in the response should be expanded + GetPromotionCodesPromotionCodeQueriesExpandItemsString[] expand?; +}; + +# +public type TreasuryReceivedDebitsResourceReceivedDebitList record { + # Details about each object + TreasuryReceivedDebit[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentPagesCheckoutSessionCustomFieldsLabel record { + # Custom text for the label, displayed to the customer. Up to 50 characters + string? custom?; + # The type of the label + "custom" 'type; +}; + +# Represents the Queries record for the operation: GetAccountsAccountPeople +public type GetAccountsAccountPeopleQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetAccountsAccountPeopleQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Filters on the list of people returned based on the person's relationship to the account's company + AllPeopleRelationshipSpecs relationship?; +}; + +# +public type PaymentMethodOptionsCustomerBalance record { + @jsondata:Name {value: "bank_transfer"} + PaymentMethodOptionsCustomerBalanceBankTransfer bankTransfer?; + # The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer` + @jsondata:Name {value: "funding_type"} + "bank_transfer"? fundingType?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type FixedAmount record { + int amount; + string currency; + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption4...;|} currencyOptions?; +}; + +# +public type InternalCard record { + # Two-letter ISO code representing the country of the card + string? country?; + # The last 4 digits of the card + string? last4?; + # Two digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int? expMonth?; + # Two digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int? expYear?; + # Brand of the card used in the transaction + string? brand?; +}; + +# +public type InvoicePaymentMethodOptionsSepaDebit record { +}; + +public type CreditNoteShippingCost1 record { + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; +}; + +public type CreditNoteShippingCost2 record { + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; +}; + +public type FilesFilesAnyOf1122 ""; + +# +public type TaxIDsOwner record { + # The Connect Application being referenced when `type` is `application` + string|Application application?; + # Type of owner referenced + "account"|"application"|"customer"|"self" 'type; + # The account being referenced when `type` is `account` + string|Account account?; + # The customer being referenced when `type` is `customer` + string|Customer customer?; +}; + +public type BillingDetailsInnerParams record { + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + string|"" phone?; + string|"" name?; + string|"" email?; +}; + +# Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods +public type BillingDetailsInnerParams1 record { + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + string|"" phone?; + string|"" name?; + string|"" email?; +}; + +# Some payment methods have no required amount that a customer must send. +# Customers can be instructed to send any amount, and it can be made up of +# multiple transactions. As such, sources can have multiple associated +# transactions +public type SourceTransaction record { + # 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 amount your customer has pushed to the receiver + int amount; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "paper_check"} + SourceTransactionPaperCheckData paperCheck?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The ID of the source this transaction is attached to + @constraint:String {maxLength: 5000} + string 'source; + # The type of source this transaction is attached to + "ach_credit_transfer"|"ach_debit"|"alipay"|"bancontact"|"card"|"card_present"|"eps"|"giropay"|"ideal"|"klarna"|"multibanco"|"p24"|"sepa_debit"|"sofort"|"three_d_secure"|"wechat" 'type; + @jsondata:Name {value: "chf_credit_transfer"} + SourceTransactionChfCreditTransferData chfCreditTransfer?; + @jsondata:Name {value: "sepa_credit_transfer"} + SourceTransactionSepaCreditTransferData sepaCreditTransfer?; + @jsondata:Name {value: "gbp_credit_transfer"} + SourceTransactionGbpCreditTransferData gbpCreditTransfer?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + @jsondata:Name {value: "ach_credit_transfer"} + SourceTransactionAchCreditTransferData achCreditTransfer?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "source_transaction" 'object; + # The status of the transaction, one of `succeeded`, `pending`, or `failed` + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type IssuingAuthorizationFleetTaxData record { + # Amount of national Sales Tax or VAT included in the transaction amount. `null` if not reported by merchant or not subject to tax + @jsondata:Name {value: "national_amount_decimal"} + string? nationalAmountDecimal?; + # Amount of state or provincial Sales Tax included in the transaction amount. `null` if not reported by merchant or not subject to tax + @jsondata:Name {value: "local_amount_decimal"} + string? localAmountDecimal?; +}; + +@constraint:String {maxLength: 5000} +public type InvoiceFinalizeBodyExpandItemsString string; + +# +public type BillingMeterResourceBillingMeterEventSummaryList record { + BillingMeterEventSummary[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/billing/meters/[^/]+/event_summaries`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type AddressValidationParam record { + "disabled"|"normalization_only"|"validation_and_normalization" mode; +}; + +# A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode +public type PaymentIntentDataParams record { + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual" captureMethod?; + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataParams transferData?; + record {|string...;|} metadata?; + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + Shipping1 shipping?; + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "receipt_email"} + string receiptEmail?; + @constraint:String {maxLength: 1000} + string description?; + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session" setupFutureUsage?; + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; +}; + +# +public type SecretServiceResourceScope record { + # The secret scope type + "account"|"user" 'type; + # The user ID, if type is set to "user" + @constraint:String {maxLength: 5000} + string user?; +}; + +# Settings related to subscription trials +public type TrialSettingsConfig1 record { + @jsondata:Name {value: "end_behavior"} + EndBehavior endBehavior; +}; + +public type DisplayPreferenceParam record { + "none"|"off"|"on" preference?; +}; + +@constraint:String {maxLength: 5000} +public type PlansplanBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetIssuingPhysicalBundlesPhysicalBundleQueriesExpandItemsString string; + +# +public type QuotesResourceListLineItems record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type PromotionCodespromotionCodeBody record {| + # Specifies which fields in the response should be expanded + PromotionCodespromotionCodeBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Whether the promotion code is currently active. A promotion code can only be reactivated when the coupon is still valid and the promotion code is otherwise redeemable + boolean active?; + RestrictionsParams2 restrictions?; +|}; + +@constraint:String {maxLength: 5000} +public type TransactionRefundBodyExpandItemsString string; + +public type TransferstransferBody record {| + # Specifies which fields in the response should be expanded + TransferstransferBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; +|}; + +# +public type PaymentMethodDetailsCardPresent record { + # How card details were read in this transaction + @jsondata:Name {value: "read_method"} + "contact_emv"|"contactless_emv"|"contactless_magstripe_mode"|"magnetic_stripe_fallback"|"magnetic_stripe_track2"? readMethod?; + # 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 + string? country?; + # The last four digits of the card + string? last4?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + string? funding?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + # ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod + @jsondata:Name {value: "generated_card"} + string? generatedCard?; + # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay + @jsondata:Name {value: "cardholder_name"} + string? cardholderName?; + # Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support) + @jsondata:Name {value: "incremental_authorization_supported"} + boolean incrementalAuthorizationSupported; + # The authorized amount + @jsondata:Name {value: "amount_authorized"} + int? amountAuthorized?; + # Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? network?; + # Details about payments collected offline + PaymentMethodDetailsCardPresentOffline? offline?; + # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip + @jsondata:Name {value: "preferred_locales"} + PaymentMethodDetailsCardPresentPreferredlocalesItemsString[]? preferredLocales?; + # When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured + @jsondata:Name {value: "capture_before"} + int captureBefore?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # Defines whether the authorized amount can be over-captured or not + @jsondata:Name {value: "overcapture_supported"} + boolean overcaptureSupported; + # A collection of fields required to be displayed on receipts. Only required for EMV transactions + PaymentMethodDetailsCardPresentReceipt? receipt?; + # Authorization response cryptogram + @jsondata:Name {value: "emv_auth_data"} + string? emvAuthData?; + # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? brand?; +}; + +# +public type InvoicePaymentMethodOptionsAcssDebitMandateOptions record { + # Transaction type of the mandate + @jsondata:Name {value: "transaction_type"} + "business"|"personal"? transactionType?; +}; + +public type AutomaticTaxConfig1 record { + Param liability?; + boolean enabled; +}; + +# +public type PaymentLinksResourceListLineItems record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxRatesTaxRateQueriesExpandItemsString string; + +# Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed +public type AutomaticTaxConfig4 record { + Param3 liability?; + boolean enabled; +}; + +public type AutomaticTaxConfig3 record { + Param3 liability?; + boolean enabled; +}; + +public type FilesFilesAnyOf1142 ""; + +public type AutomaticTaxConfig2 record { + Param2 liability?; + boolean enabled; +}; + +# +public type PaymentIntentNextActionWechatPayDisplayQrCode record { + # The image_url_png string used to render QR code + @jsondata:Name {value: "image_url_png"} + string imageUrlPng; + # The data being used to generate QR code + @constraint:String {maxLength: 5000} + string data; + # The URL to the hosted WeChat Pay instructions page, which allows customers to view the WeChat Pay QR code + @jsondata:Name {value: "hosted_instructions_url"} + string hostedInstructionsUrl; + # The base64 image data for a pre-generated QR code + @jsondata:Name {value: "image_data_url"} + string imageDataUrl; + # The image_url_svg string used to render QR code + @jsondata:Name {value: "image_url_svg"} + string imageUrlSvg; +}; + +@constraint:String {maxLength: 5000} +public type GetAppsSecretsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetEntitlementsFeaturesId +public type GetEntitlementsFeaturesIdQueries record { + # Specifies which fields in the response should be expanded + GetEntitlementsFeaturesIdQueriesExpandItemsString[] expand?; +}; + +public type TransactionLineItemReversal record { + @constraint:String {maxLength: 500} + string reference; + int amount; + record {|string...;|} metadata?; + @jsondata:Name {value: "amount_tax"} + int amountTax; + int quantity?; + @jsondata:Name {value: "original_line_item"} + string originalLineItem; +}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf110 string; + +# Represents the Queries record for the operation: GetAccountsAccountPeoplePerson +public type GetAccountsAccountPeoplePersonQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountPeoplePersonQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf111 string; + +@constraint:String {maxLength: 500} +public type FilesAnyOf112 string; + +@constraint:String {maxLength: 500} +public type FilesAnyOf113 string; + +public type AuthorizationIncrementBody record {| + # Specifies which fields in the response should be expanded + AuthorizationIncrementBodyExpandItemsString[] expand?; + # The amount to increment the authorization by. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "increment_amount"} + int incrementAmount; + # If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization + @jsondata:Name {value: "is_amount_controllable"} + boolean isAmountControllable?; +|}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf114 string; + +# `Source` objects allow you to accept a variety of payment methods. They +# represent a customer's payment instrument, and can be used with the Stripe API +# just like a `Card` object: once chargeable, they can be charged, or can be +# attached to customers. +# +# Stripe doesn't recommend using the deprecated [Sources API](https://stripe.com/docs/api/sources). +# We recommend that you adopt the [PaymentMethods API](https://stripe.com/docs/api/payment_methods). +# This newer API provides access to our latest features and payment method types. +# +# Related guides: [Sources API](https://stripe.com/docs/sources) and [Sources & Customers](https://stripe.com/docs/sources/customers) +public type Source record { + # 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 + record {|string...;|}? metadata?; + @jsondata:Name {value: "acss_debit"} + SourceTypeAcssDebit acssDebit?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # 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 + string? usage?; + # 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 + "ach_credit_transfer"|"ach_debit"|"acss_debit"|"alipay"|"au_becs_debit"|"bancontact"|"card"|"card_present"|"eps"|"giropay"|"ideal"|"klarna"|"multibanco"|"p24"|"sepa_debit"|"sofort"|"three_d_secure"|"wechat" 'type; + # Extra information about a source. This will appear on your customer's statement every time you charge the source + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + @jsondata:Name {value: "au_becs_debit"} + SourceTypeAuBecsDebit auBecsDebit?; + # Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. Required for `single_use` sources + string? currency?; + @jsondata:Name {value: "ach_credit_transfer"} + SourceTypeAchCreditTransfer achCreditTransfer?; + # The client secret of the source. Used for client-side retrieval using a publishable key + @jsondata:Name {value: "client_secret"} + string clientSecret; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The authentication `flow` of the source. `flow` is one of `redirect`, `receiver`, `code_verification`, `none` + @constraint:String {maxLength: 5000} + string flow; + SourceTypeGiropay giropay?; + # Information about the owner of the payment instrument that may be used or required by particular source types + SourceOwner? owner?; + SourceRedirectFlow redirect?; + # 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 + int? amount?; + SourceTypeAlipay alipay?; + SourceTypeIdeal ideal?; + @jsondata:Name {value: "ach_debit"} + SourceTypeAchDebit achDebit?; + SourceReceiverFlow receiver?; + @jsondata:Name {value: "code_verification"} + SourceCodeVerificationFlow codeVerification?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + SourceTypeWechat wechat?; + SourceTypeEps eps?; + @jsondata:Name {value: "card_present"} + SourceTypeCardPresent cardPresent?; + SourceTypeSofort sofort?; + SourceTypeBancontact bancontact?; + @jsondata:Name {value: "source_order"} + SourceOrder sourceOrder?; + SourceTypeKlarna klarna?; + SourceTypeP24 p24?; + @jsondata:Name {value: "sepa_debit"} + SourceTypeSepaDebit sepaDebit?; + @jsondata:Name {value: "three_d_secure"} + SourceTypeThreeDSecure threeDSecure?; + SourceTypeCard card?; + # The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer + @constraint:String {maxLength: 5000} + string customer?; + SourceTypeMultibanco multibanco?; + # String representing the object's type. Objects of the same type share the same value + "source" 'object; + # The status of the source, one of `canceled`, `chargeable`, `consumed`, `failed`, or `pending`. Only `chargeable` sources can be used to create a charge + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type ConnectAccountReference record { + # Type of the account referenced + "account"|"self" 'type; + # The connected account being referenced when `type` is `account` + string|Account account?; +}; + +# +public type PaymentMethodDetailsAmazonPay record { +}; + +# +public type MandateSingleUse record { + # The amount of the payment on a single use mandate + int amount; + # The currency of the payment on a single use mandate + string currency; +}; + +# A `Payout` object is created when you receive funds from Stripe, or when you +# initiate a payout to either a bank account or debit card of a [connected +# Stripe account](/docs/connect/bank-debit-card-payouts). You can retrieve individual payouts, +# and list all payouts. Payouts are made on [varying +# schedules](/docs/connect/manage-payout-schedule), depending on your country and +# industry. +# +# Related guide: [Receiving payouts](https://stripe.com/docs/payouts) +public type Payout record { + # If the payout reverses, this is the ID of the payout that reverses this payout + @jsondata:Name {value: "reversed_by"} + string|Payout? reversedBy?; + # ID of the balance transaction that describes the impact of this payout on your account balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # If `completed`, you can use the [Balance Transactions API](https://stripe.com/docs/api/balance_transactions/list#balance_transaction_list-payout) to list all balance transactions that are paid out in this payout + @jsondata:Name {value: "reconciliation_status"} + "completed"|"in_progress"|"not_applicable" reconciliationStatus; + # ID of the bank account or card the payout is sent to + string|BankAccount|Card|DeletedBankAccount|DeletedCard? destination?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Message that provides the reason for a payout failure, if available + @jsondata:Name {value: "failure_message"} + string? failureMessage?; + # Can be `bank_account` or `card` + "bank_account"|"card" 'type; + # Extra information about a payout that displays on the user's bank statement + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # If the payout reverses another, this is the ID of the original payout + @jsondata:Name {value: "original_payout"} + string|Payout? originalPayout?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Date that you can expect the payout to arrive in the bank. This factors in delays to account for weekends or bank holidays + @jsondata:Name {value: "arrival_date"} + int arrivalDate; + # The amount (in cents (or local equivalent)) that transfers to your bank account or debit card + int amount; + # Error code that provides a reason for a payout failure, if available. View our [list of failure codes](https://stripe.com/docs/api#payout_failures) + @jsondata:Name {value: "failure_code"} + string? failureCode?; + # The method used to send this payout, which can be `standard` or `instant`. `instant` is supported for payouts to debit cards and bank accounts in certain countries. Learn more about [bank support for Instant Payouts](https://stripe.com/docs/payouts/instant-payouts-banks) + @constraint:String {maxLength: 5000} + string method; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Returns `true` if the payout is created by an [automated payout schedule](https://stripe.com/docs/payouts#payout-schedule) and `false` if it's [requested manually](https://stripe.com/docs/payouts#manual-payouts) + boolean automatic; + # The source balance this payout came from, which can be one of the following: `card`, `fpx`, or `bank_account` + @jsondata:Name {value: "source_type"} + string sourceType; + # If the payout fails or cancels, this is the ID of the balance transaction that reverses the initial balance transaction and returns the funds from the failed payout back in your balance + @jsondata:Name {value: "failure_balance_transaction"} + string|BalanceTransaction? failureBalanceTransaction?; + # The application fee (if any) for the payout. [See the Connect documentation](https://stripe.com/docs/connect/instant-payouts#monetization-and-fees) for details + @jsondata:Name {value: "application_fee"} + string|ApplicationFee? applicationFee?; + # The amount of the application fee (if any) requested for the payout. [See the Connect documentation](https://stripe.com/docs/connect/instant-payouts#monetization-and-fees) for details + @jsondata:Name {value: "application_fee_amount"} + int? applicationFeeAmount?; + # String representing the object's type. Objects of the same type share the same value + "payout" 'object; + # Current status of the payout: `paid`, `pending`, `in_transit`, `canceled` or `failed`. A payout is `pending` until it's submitted to the bank, when it becomes `in_transit`. The status changes to `paid` if the transaction succeeds, or to `failed` or `canceled` (within 5 business days). Some payouts that fail might initially show as `paid`, then change to `failed` + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type PayoutList record { + Payout[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/payouts`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountCapabilitiesQueriesExpandItemsString string; + +# +public type PaymentMethodLink record { + # Account owner's email address + string? email?; +}; + +@constraint:String {maxLength: 5000} +public type PaymentIntentsBodyExpandItemsString string; + +# ReceivedCredits represent funds sent to a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount +public type TreasuryReceivedCredit record { + # The FinancialAccount that received the funds + @jsondata:Name {value: "financial_account"} + string? financialAccount?; + # Amount (in cents) transferred + int amount; + # Reason for the failure. A ReceivedCredit might fail because the receiving FinancialAccount is closed or frozen + @jsondata:Name {value: "failure_code"} + "account_closed"|"account_frozen"|"other"? failureCode?; + @jsondata:Name {value: "initiating_payment_method_details"} + TreasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails initiatingPaymentMethodDetails; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "linked_flows"} + TreasuryReceivedCreditsResourceLinkedFlows linkedFlows; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description; + # The rails used to send the funds + "ach"|"card"|"stripe"|"us_domestic_wire" network; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Details describing when a ReceivedCredit may be reversed + @jsondata:Name {value: "reversal_details"} + TreasuryReceivedCreditsResourceReversalDetails? reversalDetails?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The Transaction associated with this object + string|TreasuryTransaction? 'transaction?; + # String representing the object's type. Objects of the same type share the same value + "treasury.received_credit" 'object; + # Status of the ReceivedCredit. ReceivedCredits are created either `succeeded` (approved) or `failed` (declined). If a ReceivedCredit is declined, the failure reason can be found in the `failure_code` field + "failed"|"succeeded" status; +}; + +public type SourceAddress record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +@constraint:String {maxLength: 5000} +public type InvoiceVoidBodyExpandItemsString string; + +public type AccountCapabilityRequirementsPendingverificationItemsString string; + +# This hash contains details about the online acceptance +public type ConfirmationTokensResourceMandateDataResourceCustomerAcceptanceResourceOnline record { + # The IP address from which the Mandate was accepted by the customer + @jsondata:Name {value: "ip_address"} + string? ipAddress?; + # The user agent of the browser from which the Mandate was accepted by the customer + @jsondata:Name {value: "user_agent"} + string? userAgent?; +}; + +# The customer's tax IDs +public type TaxIDsList1 record { + # Details about each object + TaxId[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type FeaturesidBodyExpandItemsString string; + +# +public type IssuingCardShipping record { + Address address; + # Address validation details for the shipment + @jsondata:Name {value: "address_validation"} + IssuingCardShippingAddressValidation? addressValidation?; + # Whether a signature is required for card delivery. This feature is only supported for US users. Standard shipping service does not support signature on delivery. The default value for standard shipping service is false and for express and priority services is true + @jsondata:Name {value: "require_signature"} + boolean? requireSignature?; + # Packaging options + "bulk"|"individual" 'type; + # The delivery company that shipped a card + "dhl"|"fedex"|"royal_mail"|"usps"? carrier?; + # A unix timestamp representing a best estimate of when the card will be delivered + int? eta?; + # Shipment service, such as `standard` or `express` + "express"|"priority"|"standard" 'service; + # Additional information that may be required for clearing customs + IssuingCardShippingCustoms? customs?; + # Recipient name + @constraint:String {maxLength: 5000} + string name; + # A tracking number for a card shipment + @jsondata:Name {value: "tracking_number"} + string? trackingNumber?; + # The phone number of the receiver of the shipment. Our courier partners will use this number to contact you in the event of card delivery issues. For individual shipments to the EU/UK, if this field is empty, we will provide them with the phone number provided when the cardholder was initially created + @jsondata:Name {value: "phone_number"} + string? phoneNumber?; + # A link to the shipping carrier's site where you can view detailed information about a card shipment + @jsondata:Name {value: "tracking_url"} + string? trackingUrl?; + # The delivery status of the card + "canceled"|"delivered"|"failure"|"pending"|"returned"|"shipped"? status?; +}; + +public type DiscountsAnyOf16 DiscountsDataParam[]; + +@constraint:String {maxLength: 5000} +public type DiscountsAnyOf15 string; + +@constraint:String {maxLength: 5000} +public type DiscountsAnyOf14 string; + +@constraint:String {maxLength: 5000} +public type DiscountsAnyOf13 string; + +@constraint:String {maxLength: 5000} +public type DiscountsAnyOf11 string; + +public type NetworksUpdateApiParam record { + ""|"cartes_bancaires"|"mastercard"|"visa" preferred?; +}; + +public type RecoveryParams record { + @jsondata:Name {value: "allow_promotion_codes"} + boolean allowPromotionCodes?; + boolean enabled; +}; + +public type SubscriptionItemsitemBody record {| + # Specifies which fields in the response should be expanded + SubscriptionItemsitemBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "price_data"} + RecurringPriceData2 priceData?; + # Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + # + # Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + # + # Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + # + # Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more + @jsondata:Name {value: "payment_behavior"} + "allow_incomplete"|"default_incomplete"|"error_if_incomplete"|"pending_if_incomplete" paymentBehavior?; + # The quantity you'd like to apply to the subscription item you're creating + int quantity?; + # The coupons to redeem into discounts for the subscription item + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # Indicates if a customer is on or off-session while an invoice payment is attempted + @jsondata:Name {value: "off_session"} + boolean offSession?; + # The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided + @constraint:String {maxLength: 5000} + string price?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds + @jsondata:Name {value: "billing_thresholds"} + record {int usage_gte;}|"" billingThresholds?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + # If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint + @jsondata:Name {value: "proration_date"} + int prorationDate?; + # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +|}; + +# +public type PaymentMethodAffirm record { +}; + +public type AfterCompletionHostedConfirmationParam record { + @jsondata:Name {value: "custom_message"} + string customMessage?; +}; + +# +public type SourceReceiverFlow record { + # The total amount that was returned to the customer. The amount returned is expressed in the source's currency + @jsondata:Name {value: "amount_returned"} + int amountReturned; + # The address of the receiver source. This is the value that should be communicated to the customer to send their funds to + string? address?; + # The total amount that was moved to your balance. This is almost always equal to the amount charged. In rare cases when customers deposit excess funds and we are unable to refund those, those funds get moved to your balance and show up in amount_charged as well. The amount charged is expressed in the source's currency + @jsondata:Name {value: "amount_charged"} + int amountCharged; + # Type of refund attribute status, one of `missing`, `requested`, or `available` + @jsondata:Name {value: "refund_attributes_status"} + string refundAttributesStatus; + # The total amount received by the receiver source. `amount_received = amount_returned + amount_charged` should be true for consumed sources unless customers deposit excess funds. The amount received is expressed in the source's currency + @jsondata:Name {value: "amount_received"} + int amountReceived; + # Type of refund attribute method, one of `email`, `manual`, or `none` + @jsondata:Name {value: "refund_attributes_method"} + string refundAttributesMethod; +}; + +# +public type PaymentIntentNextActionWechatPayRedirectToAndroidApp record { + # nonce_str is a random string + @jsondata:Name {value: "nonce_str"} + string nonceStr; + # package is static value + @constraint:String {maxLength: 5000} + string package; + # an unique merchant ID assigned by WeChat Pay + @jsondata:Name {value: "partner_id"} + string partnerId; + # A signature + @constraint:String {maxLength: 5000} + string sign; + # app_id is the APP ID registered on WeChat open platform + @jsondata:Name {value: "app_id"} + string appId; + # an unique trading ID assigned by WeChat Pay + @jsondata:Name {value: "prepay_id"} + string prepayId; + # Specifies the current time in epoch format + @constraint:String {maxLength: 5000} + string timestamp; +}; + +# The business information shown to customers in the portal +public type BusinessProfileUpdateParam record { + @jsondata:Name {value: "privacy_policy_url"} + string|"" privacyPolicyUrl?; + string|"" headline?; + @jsondata:Name {value: "terms_of_service_url"} + string|"" termsOfServiceUrl?; +}; + +@constraint:String {maxLength: 5000} +public type ShippingRatesshippingRateTokenBodyExpandItemsString string; + +# When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created +public type SubscriptionDataCreateParams record { + record {|string...;|} metadata?; + @jsondata:Name {value: "effective_date"} + "current_period_end"|int|"" effectiveDate?; + @constraint:String {maxLength: 500} + string description?; + @jsondata:Name {value: "trial_period_days"} + int|"" trialPeriodDays?; +}; + +public type Created44RangeQuerySpecs532 int; + +# +public type PaymentFlowsInstallmentOptions record { + PaymentMethodDetailsCardInstallmentsPlan plan?; + boolean enabled; +}; + +public type ReversalsidBody record {| + # Specifies which fields in the response should be expanded + ReversalsidBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +# Represents the Queries record for the operation: GetCustomers +public type GetCustomersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersQueriesExpandItemsString[] expand?; + # Provides a list of customers that are associated with the specified test clock. The response will not include customers with test clocks if this parameter is not set + @http:Query {name: "test_clock"} + string testClock?; + # Only return customers that were created during the given date interval + Created8 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # A case-sensitive filter on the list based on the customer's `email` field. The value must be a string + @constraint:String {maxLength: 512} + string email?; +}; + +# +public type GelatoVerificationReportOptions record { + @jsondata:Name {value: "id_number"} + GelatoReportIdNumberOptions idNumber?; + GelatoReportDocumentOptions document?; +}; + +# +public type InvoicePaymentMethodOptionsUsBankAccountLinkedAccountOptionsFilters record { + # The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings` + @jsondata:Name {value: "account_subcategories"} + ("checking"|"savings")[] accountSubcategories?; +}; + +public type AllPeopleRelationshipSpecs record { + boolean owner?; + boolean executive?; + @jsondata:Name {value: "legal_guardian"} + boolean legalGuardian?; + boolean director?; + boolean representative?; +}; + +# Represents the Queries record for the operation: GetBalanceHistoryId +public type GetBalanceHistoryIdQueries record { + # Specifies which fields in the response should be expanded + GetBalanceHistoryIdQueriesExpandItemsString[] expand?; +}; + +public type IdFailBody1 record {| + # Specifies which fields in the response should be expanded + IdFailBody1ExpandItemsString[] expand?; +|}; + +# +public type AccountSepaDebitPaymentsSettings record { + # SEPA creditor identifier that identifies the company making the payment + @jsondata:Name {value: "creditor_id"} + string creditorId?; +}; + +public type LinesDataParam2 record { + int amount?; + record {|string...;|}|"" metadata?; + Period2 period?; + @jsondata:Name {value: "price_data"} + OneTimePriceDataWithProductData priceData?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + @constraint:String {maxLength: 5000} + string description?; + @constraint:String {maxLength: 5000} + string id; + boolean discountable?; + @jsondata:Name {value: "tax_amounts"} + record {int amount; record {string country?; string description?; string display_name; boolean inclusive; string jurisdiction?; decimal percentage; string state?; "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat" tax_type?;} tax_rate_data; int taxable_amount;}[]|"" taxAmounts?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +public type LinesDataParam1 record { + @constraint:String {maxLength: 5000} + string id; + "delete"|"unassign" behavior; +}; + +# +public type TreasuryInboundTransfersResourceInboundTransferList record { + # Details about each object + TreasuryInboundTransfer[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type MandateOptionsParam1 record { + @jsondata:Name {value: "collection_method"} + ""|"paper" collectionMethod?; +}; + +public type SubscriptionUpdateConfirmDiscountParams record { + @constraint:String {maxLength: 5000} + string coupon?; + @jsondata:Name {value: "promotion_code"} + string promotionCode?; +}; + +public type AccountCapabilityFutureRequirementsEventuallydueItemsString string; + +# +public type InvoicePaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer record { + # The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL` + "BE"|"DE"|"ES"|"FR"|"IE"|"NL" country; +}; + +public type PayoutspayoutBody record {| + # Specifies which fields in the response should be expanded + PayoutspayoutBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +# To share the contents of a `File` object with non-Stripe users, you can +# create a `FileLink`. `FileLink`s contain a URL that you can use to +# retrieve the contents of the file without authentication +public type FileLink record { + # 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 + record {|string...;|} metadata; + # Returns if the link is already expired + boolean expired; + # Time that the link expires + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # The file object this link points to + string|File file; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The publicly accessible URL to download the file + string? url?; + # String representing the object's type. Objects of the same type share the same value + "file_link" 'object; +}; + +# +public type SourceOrderItem record { + # The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU) + string? parent?; + # The amount (price) for this order item + int? amount?; + # The quantity of this order item. When type is `sku`, this is the number of instances of the SKU to be ordered + int quantity?; + # Human-readable description for this order item + string? description?; + # This currency of this order item. Required when `amount` is present + string? currency?; + # The type of this order item. Must be `sku`, `tax`, or `shipping` + string? 'type?; +}; + +# Represents the Queries record for the operation: GetTreasuryReceivedDebits +public type GetTreasuryReceivedDebitsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # The FinancialAccount that funds were pulled from + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryReceivedDebitsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return ReceivedDebits that have the given status: `succeeded` or `failed` + "failed"|"succeeded" status?; +}; + +public type InvoicesBodyDefaulttaxratesItemsString string; + +# +public type LegalEntityCompanyVerificationDocument record { + # The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification` + string|File? back?; + # A user-displayable string describing the verification state of this document + string? details?; + # The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification` + string|File? front?; + # One of `document_corrupt`, `document_expired`, `document_failed_copy`, `document_failed_greyscale`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_not_readable`, `document_not_uploaded`, `document_type_not_supported`, or `document_too_large`. A machine-readable code specifying the verification state for this document + @jsondata:Name {value: "details_code"} + string? detailsCode?; +}; + +# +public type InvoiceItemThresholdReason record { + # The quantity threshold boundary that applied to the given line item + @jsondata:Name {value: "usage_gte"} + int usageGte; + # The IDs of the line items that triggered the threshold invoice + @jsondata:Name {value: "line_item_ids"} + InvoiceItemThresholdReasonLineitemidsItemsString[] lineItemIds; +}; + +# Zengin Records contain Japan bank account details per the Zengin format +public type FundingInstructionsBankTransferZenginRecord record { + # The branch code of the account + @jsondata:Name {value: "branch_code"} + string? branchCode?; + # The account number + @jsondata:Name {value: "account_number"} + string? accountNumber?; + # The bank code of the account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # The bank account type. In Japan, this can only be `futsu` or `toza` + @jsondata:Name {value: "account_type"} + string? accountType?; + # The account holder name + @jsondata:Name {value: "account_holder_name"} + string? accountHolderName?; + # The branch name of the account + @jsondata:Name {value: "branch_name"} + string? branchName?; + # The bank name of the account + @jsondata:Name {value: "bank_name"} + string? bankName?; +}; + +public type PaymentsConfigParam record { + PaymentsFeaturesParam features?; + boolean enabled; +}; + +public type CapabilityParam record { + boolean requested?; +}; + +# +public type TransferData record { + # Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99) + int amount?; + # The account (if any) that the payment is attributed to for tax + # reporting, and where funds from the payment are transferred to after + # payment success + string|Account destination; +}; + +@constraint:String {maxLength: 5000} +public type ReaderCancelActionBodyExpandItemsString string; + +# +public type NotificationWebhookEndpointList record { + WebhookEndpoint[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/webhook_endpoints`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# A list of [file links](https://stripe.com/docs/api#file_links) that point at this file +public type FileResourceFileLinkList1 record { + # Details about each object + FileLink[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/file_links`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# This hash contains the features the Payment Element supports +public type CustomerSessionResourceComponentsResourcePaymentElementResourceFeatures record { + # Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled` + @jsondata:Name {value: "payment_method_redisplay"} + "disabled"|"enabled" paymentMethodRedisplay; + # Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `10` + @jsondata:Name {value: "payment_method_redisplay_limit"} + int? paymentMethodRedisplayLimit?; + # When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent. + # + # When using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation + @jsondata:Name {value: "payment_method_save_usage"} + "off_session"|"on_session"? paymentMethodSaveUsage?; + # A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list. + # + # If not specified, defaults to ["always"]. In order to display all saved payment methods, specify ["always", "limited", "unspecified"] + @jsondata:Name {value: "payment_method_allow_redisplay_filters"} + ("always"|"limited"|"unspecified")[] paymentMethodAllowRedisplayFilters; + # Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`. + # + # Allowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods) + @jsondata:Name {value: "payment_method_remove"} + "disabled"|"enabled" paymentMethodRemove; + # Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`. + # + # If a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage` + @jsondata:Name {value: "payment_method_save"} + "disabled"|"enabled" paymentMethodSave; +}; + +# +public type ClimateRemovalsProductsList record { + ClimateProduct[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/climate/products`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type DocumentsParam2 record { + DocumentsParam2Files[] files?; +}; + +public type DocumentsParam1 record { + DocumentsParam1Files[] files?; +}; + +# +public type PaymentMethodConfigResourcePaymentMethodConfigurationsList record { + PaymentMethodConfiguration[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/payment_method_configurations`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type DocumentsParam4 record { + DocumentsParam4Files[] files?; +}; + +public type DocumentsParam3 record { + DocumentsParam3Files[] files?; +}; + +# Controls phone number collection settings for the session. +# +# We recommend that you review your privacy policy and check with your legal contacts +# before using this feature. Learn more about [collecting phone numbers with Checkout](https://stripe.com/docs/payments/checkout/phone-numbers) +public type PhoneNumberCollectionParams record { + boolean enabled; +}; + +# +public type TaxProductResourceTaxSettingsDefaults record { + # Default [tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#tax-behavior) used to specify whether the price is considered inclusive of taxes or exclusive of taxes. If the item's price has a tax behavior set, it will take precedence over the default tax behavior + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"inferred_by_currency"? taxBehavior?; + # Default [tax code](https://stripe.com/docs/tax/tax-categories) used to classify your products and prices + @jsondata:Name {value: "tax_code"} + string? taxCode?; +}; + +# +public type RefundDestinationDetailsCard record { + # Value of the reference number assigned to the refund + @constraint:String {maxLength: 5000} + string reference?; + # Status of the reference number on the refund. This can be `pending`, `available` or `unavailable` + @jsondata:Name {value: "reference_status"} + string referenceStatus?; + # The type of refund. This can be `refund`, `reversal`, or `pending` + "pending"|"refund"|"reversal" 'type; + # Type of the reference number assigned to the refund + @jsondata:Name {value: "reference_type"} + string referenceType?; +}; + +# Business information about the account +public type BusinessProfileSpecs record { + @jsondata:Name {value: "monthly_estimated_revenue"} + MonthlyEstimatedRevenueSpecs monthlyEstimatedRevenue?; + @jsondata:Name {value: "estimated_worker_count"} + int estimatedWorkerCount?; + @jsondata:Name {value: "support_email"} + string supportEmail?; + @jsondata:Name {value: "support_url"} + string|"" supportUrl?; + @jsondata:Name {value: "support_address"} + AddressSpecs supportAddress?; + @jsondata:Name {value: "support_phone"} + string supportPhone?; + @constraint:String {maxLength: 5000} + string name?; + @constraint:String {maxLength: 4} + string mcc?; + @jsondata:Name {value: "product_description"} + string productDescription?; + @jsondata:Name {value: "annual_revenue"} + AnnualRevenueSpecs annualRevenue?; + string url?; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsAlipayDetails record { + # Transaction ID of this particular Alipay transaction + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same + string? fingerprint?; + # Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same + @jsondata:Name {value: "buyer_id"} + string buyerId?; +}; + +# +public type DeletedProduct record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "product" 'object; +}; + +@constraint:String {maxLength: 5000} +public type BillingPortalSessionsBodyExpandItemsString string; + +# You can use Tax `Settings` to manage configurations used by Stripe Tax calculations. +# +# Related guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api) +public type TaxSettings record { + TaxProductResourceTaxSettingsDefaults defaults; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The place where your business is located + @jsondata:Name {value: "head_office"} + TaxProductResourceTaxSettingsHeadOffice? headOffice?; + @jsondata:Name {value: "status_details"} + TaxProductResourceTaxSettingsStatusDetails statusDetails; + # String representing the object's type. Objects of the same type share the same value + "tax.settings" 'object; + # The `active` status indicates you have all required settings to calculate tax. A status can transition out of `active` when new required settings are introduced + "active"|"pending" status; +}; + +public type InvoiceAddLinesBody record {| + # 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` + @jsondata:Name {value: "invoice_metadata"} + record {|string...;|}|"" invoiceMetadata?; + # Specifies which fields in the response should be expanded + InvoiceAddLinesBodyExpandItemsString[] expand?; + # The line items to add + LinesDataParam[] lines; +|}; + +public type PlansplanBody record {| + # Specifies which fields in the response should be expanded + PlansplanBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The product the plan belongs to. This cannot be changed once it has been used in a subscription or subscription schedule + @constraint:String {maxLength: 5000} + string product?; + # A brief description of the plan, hidden from customers + @constraint:String {maxLength: 5000} + string nickname?; + # Whether the plan is currently available for new subscriptions + boolean active?; + # Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan) + @jsondata:Name {value: "trial_period_days"} + int trialPeriodDays?; +|}; + +@constraint:String {maxLength: 5000} +public type OutboundTransfersoutboundTransferBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type PeoplepersonBodyExpandItemsString string; + +# +public type PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown record { + # The aggregated discounts + LineItemsDiscountAmount[] discounts; + # The aggregated tax amounts by rate + LineItemsTaxAmount[] taxes; +}; + +@constraint:String {maxLength: 5000} +public type SourcessourceBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type IntentCancelBody1ExpandItemsString string; + +public type BankTransferParam record { + @jsondata:Name {value: "eu_bank_transfer"} + EuBankTransferParams euBankTransfer?; + @jsondata:Name {value: "requested_address_types"} + ("aba"|"iban"|"sepa"|"sort_code"|"spei"|"swift"|"zengin")[] requestedAddressTypes?; + "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer" 'type; +}; + +# +public type PaymentMethodIdeal record { + # The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe` + "abn_amro"|"asn_bank"|"bunq"|"handelsbanken"|"ing"|"knab"|"moneyou"|"n26"|"nn"|"rabobank"|"regiobank"|"revolut"|"sns_bank"|"triodos_bank"|"van_lanschot"|"yoursafe"? bank?; + # The Bank Identifier Code of the customer's bank, if the bank was provided + "ABNANL2A"|"ASNBNL21"|"BITSNL2A"|"BUNQNL2A"|"FVLBNL22"|"HANDNL2A"|"INGBNL2A"|"KNABNL2H"|"MOYONL21"|"NNBANL2G"|"NTSBDEB1"|"RABONL2U"|"RBRBNL21"|"REVOIE23"|"REVOLT21"|"SNSBNL2A"|"TRIONL2U"? bic?; +}; + +# +public type QuotesResourceRecurring record { + # The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months + @jsondata:Name {value: "interval_count"} + int intervalCount; + @jsondata:Name {value: "total_details"} + QuotesResourceTotalDetails totalDetails; + # Total after discounts and taxes are applied + @jsondata:Name {value: "amount_total"} + int amountTotal; + # The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year` + "day"|"month"|"week"|"year" interval; + # Total before any discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; +}; + +public type SubscriptionItemCreateParams record { + record {|string...;|} metadata?; + @jsondata:Name {value: "price_data"} + RecurringPriceData priceData?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + @jsondata:Name {value: "billing_thresholds"} + record {int usage_gte;}|"" billingThresholds?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type NetworksAvailableItemsString string; + +public type CustomerCashBalanceBody record {| + BalanceSettingsParam1 settings?; + # Specifies which fields in the response should be expanded + CustomerCashBalanceBodyExpandItemsString[] expand?; +|}; + +# +public type IssuingCardholderCardIssuing record { + # Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program + @jsondata:Name {value: "user_terms_acceptance"} + IssuingCardholderUserTermsAcceptance? userTermsAcceptance?; +}; + +# Represents the Queries record for the operation: GetEntitlementsActiveEntitlements +public type GetEntitlementsActiveEntitlementsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetEntitlementsActiveEntitlementsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The ID of the customer + @constraint:String {maxLength: 5000} + string customer; +}; + +@constraint:String {maxLength: 5000} +public type ReaderPresentPaymentMethodBodyExpandItemsString string; + +# +public type IssuingDisputeOtherEvidence record { + # Whether the product was a merchandise or service + @jsondata:Name {value: "product_type"} + "merchandise"|"service"? productType?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; + # Description of the merchandise or service that was purchased + @jsondata:Name {value: "product_description"} + string? productDescription?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerBankAccountsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetBalanceTransactionsQueriesExpandItemsString string; + +# As a [card issuer](https://stripe.com/docs/issuing), you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with. +# +# Related guide: [Issuing disputes](https://stripe.com/docs/issuing/purchases/disputes) +public type IssuingDispute record { + # Disputed amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Usually the amount of the `transaction`, but can differ (usually because of currency fluctuation) + int amount; + # 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 + record {|string...;|} metadata; + IssuingDisputeEvidence evidence; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The enum that describes the dispute loss outcome. If the dispute is not lost, this field will be absent. New enum values may be added in the future, so be sure to handle unknown values + @jsondata:Name {value: "loss_reason"} + "cardholder_authentication_issuer_liability"|"eci5_token_transaction_with_tavv"|"excess_disputes_in_timeframe"|"has_not_met_the_minimum_dispute_amount_requirements"|"invalid_duplicate_dispute"|"invalid_incorrect_amount_dispute"|"invalid_no_authorization"|"invalid_use_of_disputes"|"merchandise_delivered_or_shipped"|"merchandise_or_service_as_described"|"not_cancelled"|"other"|"refund_issued"|"submitted_beyond_allowable_time_limit"|"transaction_3ds_required"|"transaction_approved_after_prior_fraud_dispute"|"transaction_authorized"|"transaction_electronically_read"|"transaction_qualifies_for_visa_easy_payment_service"|"transaction_unattended" lossReason?; + # List of balance transactions associated with the dispute + @jsondata:Name {value: "balance_transactions"} + BalanceTransaction[]? balanceTransactions?; + # [Treasury](https://stripe.com/docs/api/treasury) details related to this dispute if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts + IssuingDisputeTreasury? treasury?; + # The currency the `transaction` was made in + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The transaction being disputed + string|IssuingTransaction 'transaction; + # String representing the object's type. Objects of the same type share the same value + "issuing.dispute" 'object; + # Current status of the dispute + "expired"|"lost"|"submitted"|"unsubmitted"|"won" status; +}; + +# +public type DeletedPerson record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "person" 'object; +}; + +# +public type AccountUnificationAccountControllerFees record { + # A value indicating the responsible payer of a bundle of Stripe fees for pricing-control eligible products on this account. Learn more about [fee behavior on connected accounts](https://docs.stripe.com/connect/direct-charges-fee-payer-behavior) + "account"|"application"|"application_custom"|"application_express" payer; +}; + +public type Created2RangeQuerySpecs22 int; + +# +public type BankConnectionsResourceLinkAccountSessionFilters record { + # Restricts the Session to subcategories of accounts that can be linked. Valid subcategories are: `checking`, `savings`, `mortgage`, `line_of_credit`, `credit_card` + @jsondata:Name {value: "account_subcategories"} + ("checking"|"credit_card"|"line_of_credit"|"mortgage"|"savings")[]? accountSubcategories?; + # List of countries from which to filter accounts + BankConnectionsResourceLinkAccountSessionFiltersCountriesItemsString[]? countries?; +}; + +public type AccountholderParams record { + @constraint:String {maxLength: 5000} + string account?; + @constraint:String {maxLength: 5000} + string customer?; +}; + +# List of subscription items, each with an attached price +public type SubscriptionItemList record { + # Details about each object + SubscriptionItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type InvoiceSettingCustomerRenderingOptions record { + # How line-item prices and amounts will be displayed with respect to tax on invoice PDFs + @jsondata:Name {value: "amount_tax_display"} + string? amountTaxDisplay?; +}; + +# +public type AccountDashboardSettings record { + # The timezone used in the Stripe Dashboard for this account. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones) + string? timezone?; + # The display name for this account. This is used on the Stripe Dashboard to differentiate between accounts + @jsondata:Name {value: "display_name"} + string? displayName?; +}; + +# +public type IssuingTransactionNetworkData record { + # Unique identifier for the authorization assigned by the card network used to match subsequent messages, disputes, and transactions + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # A code created by Stripe which is shared with the merchant to validate the authorization. This field will be populated if the authorization message was approved. The code typically starts with the letter "S", followed by a six-digit number. For example, "S498162". Please note that the code is not guaranteed to be unique across authorizations + @jsondata:Name {value: "authorization_code"} + string? authorizationCode?; + # The date the transaction was processed by the card network. This can be different from the date the seller recorded the transaction depending on when the acquirer submits the transaction to the network + @jsondata:Name {value: "processing_date"} + string? processingDate?; +}; + +public type FullnamealiasesItemsString string; + +public type LegalEntityAndKycAddressSpecs record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 100} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 200} + string line2?; + @constraint:String {maxLength: 200} + string line1?; +}; + +# +public type DeletedAccount record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "account" 'object; +}; + +public type SubscriptionCancelAtSubscriptionCancelAtAnyOf12 ""; + +# +public type IssuingAuthorizationVerificationData record { + # Whether the cardholder provided a CVC and if it matched Stripe’s record + @jsondata:Name {value: "cvc_check"} + "match"|"mismatch"|"not_provided" cvcCheck; + # Whether the cardholder provided an expiry date and if it matched Stripe’s record + @jsondata:Name {value: "expiry_check"} + "match"|"mismatch"|"not_provided" expiryCheck; + # Whether the cardholder provided an address first line and if it matched the cardholder’s `billing.address.line1` + @jsondata:Name {value: "address_line1_check"} + "match"|"mismatch"|"not_provided" addressLine1Check; + # The postal code submitted as part of the authorization used for postal code verification + @jsondata:Name {value: "postal_code"} + string? postalCode?; + # 3D Secure details + @jsondata:Name {value: "three_d_secure"} + IssuingAuthorizationThreeDSecure? threeDSecure?; + # Whether the cardholder provided a postal code and if it matched the cardholder’s `billing.address.postal_code` + @jsondata:Name {value: "address_postal_code_check"} + "match"|"mismatch"|"not_provided" addressPostalCodeCheck; + # The exemption applied to this authorization + @jsondata:Name {value: "authentication_exemption"} + IssuingAuthorizationAuthenticationExemption? authenticationExemption?; +}; + +# Represents the Queries record for the operation: GetPlansPlan +public type GetPlansPlanQueries record { + # Specifies which fields in the response should be expanded + GetPlansPlanQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentIntentPaymentMethodOptionsAcssDebit record { + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + @jsondata:Name {value: "mandate_options"} + PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebit mandateOptions?; +}; + +# +public type ConnectEmbeddedAccountConfigClaim record { + ConnectEmbeddedAccountFeaturesClaim features; + # Whether the embedded component is enabled + boolean enabled; +}; + +# Generate a post-purchase Invoice for one-time payments +public type InvoiceCreationUpdateParams record { + @jsondata:Name {value: "invoice_data"} + InvoiceSettingsParams1 invoiceData?; + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type ApplePayDomainsBodyExpandItemsString string; + +# +public type PaymentMethodDetailsRevolutPay record { +}; + +@constraint:String {maxLength: 5000} +public type FileLinksBodyExpandItemsString string; + +# +public type TreasuryFinancialAccountsResourceStatusDetails record { + # Details related to the closure of this FinancialAccount + TreasuryFinancialAccountsResourceClosedStatusDetails? closed?; +}; + +@constraint:String {maxLength: 5000} +public type GetCreditNotesQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTaxRegistrationsQueriesExpandItemsString string; + +public type CustomerTaxIdsBody record {| + # Specifies which fields in the response should be expanded + CustomerTaxIdsBodyExpandItemsString[] expand?; + # Type of the tax ID, one of `ad_nrt`, `ae_trn`, `ar_cuit`, `au_abn`, `au_arn`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `hk_br`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kr_brn`, `kz_bin`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sv_nit`, `th_vat`, `tr_tin`, `tw_vat`, `ua_vat`, `us_ein`, `uy_ruc`, `ve_rif`, `vn_tin`, or `za_vat` + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + # Value of the tax ID + string value; +|}; + +# +public type TreasuryOutboundTransfersResourceOutboundTransferList record { + # Details about each object + TreasuryOutboundTransfer[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionssubscriptionExposedIdBody1ExpandItemsString string; + +public type AccountConfigParam record { + AccountFeaturesParam features?; + boolean enabled; +}; + +# Controls what fields on Customer can be updated by the Checkout Session. Can only be provided when `customer` is provided +public type CustomerUpdateParams record { + "auto"|"never" address?; + "auto"|"never" shipping?; + "auto"|"never" name?; +}; + +@constraint:String {maxLength: 5000} +public type AccountLinksBodyExpandItemsString string; + +# This is an object representing a capability for a Stripe account. +# +# Related guide: [Account capabilities](https://stripe.com/docs/connect/account-capabilities) +public type Capability record { + # Whether the capability has been requested + boolean requested; + AccountCapabilityRequirements requirements?; + @jsondata:Name {value: "future_requirements"} + AccountCapabilityFutureRequirements futureRequirements?; + # The identifier for the capability + @constraint:String {maxLength: 5000} + string id; + # The account for which the capability enables functionality + string|Account account; + # String representing the object's type. Objects of the same type share the same value + "capability" 'object; + # Time at which the capability was requested. Measured in seconds since the Unix epoch + @jsondata:Name {value: "requested_at"} + int? requestedAt?; + # The status of the capability. Can be `active`, `inactive`, `pending`, or `unrequested` + "active"|"disabled"|"inactive"|"pending"|"unrequested" status; +}; + +# Point in Time +public type GelatoDataDocumentReportExpirationDate record { + # Numerical month between 1 and 12 + int? month?; + # The four-digit year + int? year?; + # Numerical day between 1 and 31 + int? day?; +}; + +# Toggle settings for enabling/disabling an ACH specific feature +public type TreasuryFinancialAccountsResourceAchToggleSettings record { + # Whether the FinancialAccount should have the Feature + boolean requested; + # Additional details; includes at least one entry when the status is not `active` + @jsondata:Name {value: "status_details"} + TreasuryFinancialAccountsResourceTogglesSettingStatusDetails[] statusDetails; + # Whether the Feature is operational + "active"|"pending"|"restricted" status; +}; + +public type CustomerCardsBody record {| + # A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details + @jsondata:Name {value: "alipay_account"} + string alipayAccount?; + # Specifies which fields in the response should be expanded + CustomerCardsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Please refer to full [documentation](https://stripe.com/docs/api) instead + @constraint:String {maxLength: 5000} + string 'source?; + # A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) + record {string address_city?; string address_country?; string address_line1?; string address_line2?; string address_state?; string address_zip?; string cvc?; int exp_month; int exp_year; record {|string...;|} metadata?; string name?; string number; "card" 'object?;}|string card?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; string country; string currency?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; +|}; + +# Represents a per-transaction override of a reader configuration +public type TerminalReaderReaderResourceProcessConfig record { + TerminalReaderReaderResourceTippingConfig tipping?; + # Enable customer initiated cancellation when processing this payment + @jsondata:Name {value: "enable_customer_cancellation"} + boolean enableCustomerCancellation?; + # Override showing a tipping selection screen on this transaction + @jsondata:Name {value: "skip_tipping"} + boolean skipTipping?; +}; + +# Represents the Queries record for the operation: GetTaxRegistrationsId +public type GetTaxRegistrationsIdQueries record { + # Specifies which fields in the response should be expanded + GetTaxRegistrationsIdQueriesExpandItemsString[] expand?; +}; + +# Details of the PaymentMethod collected by Payment Element +public type ConfirmationTokensResourcePaymentMethodPreview record { + PaymentMethodPaynow paynow?; + @jsondata:Name {value: "billing_details"} + BillingDetails billingDetails; + PaymentMethodBlik blik?; + @jsondata:Name {value: "interac_present"} + PaymentMethodInteracPresent interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodAcssDebit acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodBacsDebit bacsDebit?; + PaymentMethodBoleto boleto?; + PaymentMethodLink link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodAmazonPay amazonPay?; + # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"card_present"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"interac_present"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodAuBecsDebit auBecsDebit?; + PaymentMethodOxxo oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodAfterpayClearpay afterpayClearpay?; + PaymentMethodSwish swish?; + PaymentMethodTwint twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodUsBankAccount usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodCustomerBalance customerBalance?; + PaymentMethodCashapp cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodWechatPay wechatPay?; + PaymentMethodPaypal paypal?; + PaymentMethodPix pix?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodRevolutPay revolutPay?; + PaymentMethodGiropay giropay?; + PaymentMethodZip zip?; + PaymentFlowsPrivatePaymentMethodsAlipay alipay?; + PaymentMethodIdeal ideal?; + PaymentMethodEps eps?; + PaymentMethodKonbini konbini?; + @jsondata:Name {value: "card_present"} + PaymentMethodCardPresent cardPresent?; + PaymentMethodSofort sofort?; + PaymentMethodFpx fpx?; + PaymentMethodPromptpay promptpay?; + PaymentMethodAffirm affirm?; + PaymentMethodMobilepay mobilepay?; + PaymentMethodBancontact bancontact?; + PaymentMethodGrabpay grabpay?; + PaymentMethodKlarna klarna?; + PaymentMethodP24 p24?; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodSepaDebit sepaDebit?; + # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified” + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + PaymentMethodCard card?; + PaymentMethodMultibanco multibanco?; +}; + +# +public type SetupAttemptPaymentMethodDetailsAcssDebit record { +}; + +# The line items that will appear on the next invoice after this quote is accepted. This does not include pending invoice items that exist on the customer but may still be included in the next invoice +public type QuotesResourceListLineItems2 record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type CheckoutSwishPaymentMethodOptions record { + # The order reference that will be displayed to customers in the Swish application. Defaults to the `id` of the Payment Intent + string? reference?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerQueriesExpandItemsString string; + +# A list of items the customer is being quoted for +public type QuotesResourceListLineItems1 record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetApplicationFeesQueriesExpandItemsString string; + +# +public type IssuingDisputeDuplicateEvidence record { + # Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one + @jsondata:Name {value: "original_transaction"} + string? originalTransaction?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the card statement showing that the product had already been paid for + @jsondata:Name {value: "card_statement"} + string|File? cardStatement?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Image of the front and back of the check that was used to pay for the product + @jsondata:Name {value: "check_image"} + string|File? checkImage?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the receipt showing that the product had been paid for in cash + @jsondata:Name {value: "cash_receipt"} + string|File? cashReceipt?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; +}; + +# This is an object representing a person associated with a Stripe account. +# +# A platform cannot access a person for an account where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `stripe`, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding. +# +# See the [Standard onboarding](/connect/standard-accounts) or [Express onboarding](/connect/express-accounts) documentation for information about prefilling information and account onboarding steps. Learn more about [handling identity verification with the API](/connect/handling-api-verification#person-information) +public type Person record { + # 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 + record {|string...;|} metadata?; + @jsondata:Name {value: "registered_address"} + Address registeredAddress?; + # The person's gender (International regulations require either "male" or "female") + string? gender?; + @jsondata:Name {value: "address_kana"} + LegalEntityJapanAddress? addressKana?; + # Whether the person's `id_number` was provided. True if either the full ID number was provided or if only the required part of the ID number was provided (ex. last four of an individual's SSN for the US indicated by `ssn_last_4_provided`) + @jsondata:Name {value: "id_number_provided"} + boolean idNumberProvided?; + # A list of alternate names or aliases that the person is known by + @jsondata:Name {value: "full_name_aliases"} + PersonFullnamealiasesItemsString[] fullNameAliases?; + # Whether the person's `id_number_secondary` was provided + @jsondata:Name {value: "id_number_secondary_provided"} + boolean idNumberSecondaryProvided?; + @jsondata:Name {value: "additional_tos_acceptances"} + PersonAdditionalTosAcceptances additionalTosAcceptances?; + @jsondata:Name {value: "address_kanji"} + LegalEntityJapanAddress? addressKanji?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + PersonRelationship relationship?; + # The person's first name + @jsondata:Name {value: "first_name"} + string? firstName?; + # The Kana variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kana"} + string? firstNameKana?; + # The person's email address + string? email?; + # Whether the last four digits of the person's Social Security number have been provided (U.S. only) + @jsondata:Name {value: "ssn_last_4_provided"} + boolean ssnLast4Provided?; + LegalEntityPersonVerification verification?; + # The Kanji variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kanji"} + string? lastNameKanji?; + # The person's maiden name + @jsondata:Name {value: "maiden_name"} + string? maidenName?; + PersonRequirements? requirements?; + Address address?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction + @jsondata:Name {value: "political_exposure"} + "existing"|"none" politicalExposure?; + # The Kanji variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kanji"} + string? firstNameKanji?; + # The person's last name + @jsondata:Name {value: "last_name"} + string? lastName?; + # The country where the person is a national + string? nationality?; + # The person's phone number + string? phone?; + LegalEntityDob dob?; + @jsondata:Name {value: "future_requirements"} + PersonFutureRequirements? futureRequirements?; + # The Kana variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kana"} + string? lastNameKana?; + # The account the person is associated with + @constraint:String {maxLength: 5000} + string account; + # String representing the object's type. Objects of the same type share the same value + "person" 'object; +}; + +# +public type PaymentMethodDetailsBacsDebit record { + # Last four digits of the bank account number + string? last4?; + # ID of the mandate used to make this payment + string? mandate?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Sort code of the bank account. (e.g., `10-20-30`) + @jsondata:Name {value: "sort_code"} + string? sortCode?; +}; + +# Result from a document check +public type GelatoDocumentReport record { + # Document ID number + string? number?; + # Address as it appears in the document + Address? address?; + # Issued date of the document + @jsondata:Name {value: "issued_date"} + GelatoDataDocumentReportIssuedDate? issuedDate?; + # Issuing country of the document + @jsondata:Name {value: "issuing_country"} + string? issuingCountry?; + # Date of birth as it appears in the document + GelatoDataDocumentReportDateOfBirth? dob?; + # Array of [File](https://stripe.com/docs/api/files) ids containing images for this document + GelatoDocumentReportFilesItemsString[]? files?; + # Last name as it appears in the document + @jsondata:Name {value: "last_name"} + string? lastName?; + # Details on the verification error. Present when status is `unverified` + GelatoDocumentReportError? 'error?; + # Expiration date of the document + @jsondata:Name {value: "expiration_date"} + GelatoDataDocumentReportExpirationDate? expirationDate?; + # Type of the document + "driving_license"|"id_card"|"passport"? 'type?; + # First name as it appears in the document + @jsondata:Name {value: "first_name"} + string? firstName?; + # Status of this `document` check + "unverified"|"verified" status; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerCashBalanceTransactionsTransaction +public type GetCustomersCustomerCashBalanceTransactionsTransactionQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerCashBalanceTransactionsTransactionQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type FileLinkslinkBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AccountPersonsBodyExpandItemsString string; + +# +public type TransferList record { + # Details about each object + Transfer[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/transfers`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# An Add Invoice Item describes the prices and quantities that will be added as pending invoice items when entering a phase +public type SubscriptionScheduleAddInvoiceItem record { + # The quantity of the invoice item + int? quantity?; + # The stackable discounts that will be applied to the item + DiscountsResourceStackableDiscount[] discounts; + # ID of the price used to generate the invoice item + string|Price|DeletedPrice price; + # The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item + @jsondata:Name {value: "tax_rates"} + TaxRate[]? taxRates?; +}; + +# Shipping information for this ConfirmationToken +public type RecipientShippingWithOptionalFieldsAddress1 record { + OptionalFieldsAddress address; + string|"" phone?; + @constraint:String {maxLength: 5000} + string name; +}; + +# +public type TerminalConfigurationConfigurationResourceOfflineConfig record { + # Determines whether to allow transactions to be collected while reader is offline. Defaults to false + boolean? enabled?; +}; + +# A Tax Calculation allows you to calculate the tax to collect from your customer. +# +# Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom) +public type TaxCalculation record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The shipping cost details for the calculation + @jsondata:Name {value: "shipping_cost"} + TaxProductResourceTaxCalculationShippingCost? shippingCost?; + # The amount of tax to be collected on top of the line item prices + @jsondata:Name {value: "tax_amount_exclusive"} + int taxAmountExclusive; + # Breakdown of individual tax amounts that add up to the total + @jsondata:Name {value: "tax_breakdown"} + TaxProductResourceTaxBreakdown[] taxBreakdown; + # Total after taxes + @jsondata:Name {value: "amount_total"} + int amountTotal; + # The details of the ship from location, such as the address + @jsondata:Name {value: "ship_from_details"} + TaxProductResourceShipFromDetails? shipFromDetails?; + @jsondata:Name {value: "line_items"} + TaxProductResourceTaxCalculationLineItemList1? lineItems?; + # The amount of tax already included in the line item prices + @jsondata:Name {value: "tax_amount_inclusive"} + int taxAmountInclusive; + # Timestamp of date at which the tax rules and rates in effect applies for the calculation + @jsondata:Name {value: "tax_date"} + int taxDate; + @jsondata:Name {value: "customer_details"} + TaxProductResourceCustomerDetails customerDetails; + # Timestamp of date at which the tax calculation will expire + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + # Unique identifier for the calculation + string? id?; + # The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource + string? customer?; + # String representing the object's type. Objects of the same type share the same value + "tax.calculation" 'object; +}; + +# Configuration for automatic tax collection +public type AutomaticTaxParams1 record { + Param3 liability?; + boolean enabled; +}; + +# This parameter allows you to set some attributes on the payment method created during a Checkout session +public type PaymentMethodDataParam record { + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; +}; + +# +public type InvoiceSettingRenderingOptions record { + # How line-item prices and amounts will be displayed with respect to tax on invoice PDFs + @jsondata:Name {value: "amount_tax_display"} + string? amountTaxDisplay?; +}; + +public type Amount RangeQuerySpecs49|AmountRangeQuerySpecs492; + +# +public type InvoicePaymentMethodOptionsAcssDebit record { + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + @jsondata:Name {value: "mandate_options"} + InvoicePaymentMethodOptionsAcssDebitMandateOptions mandateOptions?; +}; + +# Represents the Queries record for the operation: GetBalanceTransactions +public type GetBalanceTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetBalanceTransactionsQueriesExpandItemsString[] expand?; + # Only return transactions that were created during the given date interval + Created3 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID + @constraint:String {maxLength: 5000} + string payout?; + # Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only returns the original transaction + @constraint:String {maxLength: 5000} + string 'source?; + # Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund` + @constraint:String {maxLength: 5000} + string 'type?; +}; + +@constraint:String {maxLength: 5000} +public type IntentCancelBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TreasuryReceivedCreditsBodyExpandItemsString string; + +# +public type FundingInstructionsBankTransfer record { + # The country of the bank account to fund + @constraint:String {maxLength: 5000} + string country; + # The bank_transfer type + "eu_bank_transfer"|"jp_bank_transfer" 'type; + # A list of financial addresses that can be used to fund a particular balance + @jsondata:Name {value: "financial_addresses"} + FundingInstructionsBankTransferFinancialAddress[] financialAddresses; +}; + +# Configuration overrides +public type RefundPaymentConfig record { + @jsondata:Name {value: "enable_customer_cancellation"} + boolean enableCustomerCancellation?; +}; + +@constraint:String {maxLength: 5000} +public type ChargeRefundsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetCustomersSearchQueriesExpandItemsString string; + +# +public type ClimateRemovalsBeneficiary record { + # Publicly displayable name for the end beneficiary of carbon removal + @jsondata:Name {value: "public_name"} + string publicName; +}; + +# +public type TaxProductResourceTaxTransactionLineItemList record { + # Details about each object + TaxTransactionLineItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/tax/transactions/[^/]+/line_items`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# A hash of configuration describing the account controller's attributes +public type ControllerSpecs record { + @jsondata:Name {value: "stripe_dashboard"} + ControllerDashboardSpecs stripeDashboard?; + ControllerFeesSpecs fees?; + ControllerLossesSpecs losses?; + @jsondata:Name {value: "requirement_collection"} + "application"|"stripe" requirementCollection?; +}; + +public type DocumentsParam9Files FilesAnyOf18|FilesFilesAnyOf182; + +public type BankAccountsidBody1 record {| + Owner owner?; + # 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` + record {|string...;|}|"" metadata?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + # Billing address country, if provided when creating card + @jsondata:Name {value: "address_country"} + string addressCountry?; + # State/County/Province/Region + @jsondata:Name {value: "address_state"} + string addressState?; + # Two digit number representing the card’s expiration month + @jsondata:Name {value: "exp_month"} + string expMonth?; + # Four digit number representing the card’s expiration year + @jsondata:Name {value: "exp_year"} + string expYear?; + # City/District/Suburb/Town/Village + @jsondata:Name {value: "address_city"} + string addressCity?; + # Specifies which fields in the response should be expanded + BankAccountsidBody1ExpandItemsString[] expand?; + # Address line 2 (Apartment/Suite/Unit/Building) + @jsondata:Name {value: "address_line2"} + string addressLine2?; + # Address line 1 (Street address/PO Box/Company name) + @jsondata:Name {value: "address_line1"} + string addressLine1?; + # The type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; + # Cardholder name + @constraint:String {maxLength: 5000} + string name?; + # ZIP or postal code + @jsondata:Name {value: "address_zip"} + string addressZip?; +|}; + +public type BankAccountsidBody2 record {| + # Specifies which fields in the response should be expanded + BankAccountsidBody2ExpandItemsString[] expand?; +|}; + +# Information for the person this token represents +public type PersonTokenSpecs record { + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "registered_address"} + AddressSpecs registeredAddress?; + string gender?; + PersonDocumentsSpecs4 documents?; + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs addressKana?; + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + @jsondata:Name {value: "additional_tos_acceptances"} + PersonAdditionalTosAcceptancesSpecs1 additionalTosAcceptances?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs addressKanji?; + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + RelationshipSpecs1 relationship?; + @jsondata:Name {value: "first_name"} + string firstName?; + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + string email?; + PersonVerificationSpecs verification?; + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; + @jsondata:Name {value: "maiden_name"} + string maidenName?; + @jsondata:Name {value: "id_number"} + string idNumber?; + LegalEntityAndKycAddressSpecs address?; + @jsondata:Name {value: "political_exposure"} + string politicalExposure?; + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + @jsondata:Name {value: "last_name"} + string lastName?; + @constraint:String {maxLength: 5000} + string nationality?; + string phone?; + record {int day; int month; int year;}|"" dob?; + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; +}; + +# +public type PaymentFlowsAutomaticPaymentMethodsPaymentIntent record { + # Controls whether this PaymentIntent will accept redirect-based payment methods. + # + # Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment + @jsondata:Name {value: "allow_redirects"} + "always"|"never" allowRedirects?; + # Automatically calculates compatible payment methods + boolean enabled; +}; + +# Represents the Queries record for the operation: GetSubscriptionItems +public type GetSubscriptionItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSubscriptionItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The ID of the subscription whose items will be retrieved + @constraint:String {maxLength: 5000} + string subscription; +}; + +@constraint:String {maxLength: 5000} +public type TerminalConnectionTokensBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetAccountsAccountCapabilities +public type GetAccountsAccountCapabilitiesQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountCapabilitiesQueriesExpandItemsString[] expand?; +}; + +# This object represents files hosted on Stripe's servers. You can upload +# files with the [create file](https://stripe.com/docs/api#create_file) request +# (for example, when uploading dispute evidence). Stripe also +# creates files independently (for example, the results of a [Sigma scheduled +# query](#scheduled_queries)). +# +# Related guide: [File upload guide](https://stripe.com/docs/file-upload) +public type File record { + # The file expires and isn't available at this time in epoch seconds + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # The suitable name for saving the file to a filesystem + string? filename?; + # The size of the file object in bytes + int size; + # The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file + "account_requirement"|"additional_verification"|"business_icon"|"business_logo"|"customer_signature"|"dispute_evidence"|"document_provider_identity_document"|"finance_report_run"|"identity_document"|"identity_document_downloadable"|"pci_document"|"selfie"|"sigma_scheduled_query"|"tax_document_user_upload"|"terminal_reader_splashscreen" purpose; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + FileResourceFileLinkList1? links?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # A suitable title for the document + string? title?; + # The returned file type (for example, `csv`, `pdf`, `jpg`, or `png`) + string? 'type?; + # Use your live secret API key to download the file from this URL + string? url?; + # String representing the object's type. Objects of the same type share the same value + "file" 'object; +}; + +# +public type ExternalAccountRequirements record { + # Fields that need to be collected to keep the external account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled + @jsondata:Name {value: "currently_due"} + ExternalAccountRequirementsCurrentlydueItemsString[]? currentlyDue?; + # Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the external account + @jsondata:Name {value: "past_due"} + ExternalAccountRequirementsPastdueItemsString[]? pastDue?; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[]? errors?; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + ExternalAccountRequirementsPendingverificationItemsString[]? pendingVerification?; +}; + +# This is an object representing your Stripe balance. You can retrieve it to see +# the balance currently on your Stripe account. +# +# You can also retrieve the balance history, which contains a list of +# [transactions](https://stripe.com/docs/reporting/balance-transaction-types) that contributed to the balance +# (charges, payouts, and so forth). +# +# The available and pending amounts for each currency are broken down further by +# payment source types. +# +# Related guide: [Understanding Connect account balances](https://stripe.com/docs/connect/account-balances) +public type Balance record { + BalanceDetail issuing?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Funds that aren't available in the balance yet. You can find the pending balance for each currency and each payment type in the `source_types` property + BalanceAmount[] pending; + # Available funds that you can transfer or pay out automatically by Stripe or explicitly through the [Transfers API](https://stripe.com/docs/api#transfers) or [Payouts API](https://stripe.com/docs/api#payouts). You can find the available balance for each currency and payment type in the `source_types` property + BalanceAmount[] available; + # Funds held due to negative balances on connected accounts where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. You can find the connect reserve balance for each currency and payment type in the `source_types` property + @jsondata:Name {value: "connect_reserved"} + BalanceAmount[] connectReserved?; + # Funds that you can pay out using Instant Payouts + @jsondata:Name {value: "instant_available"} + BalanceAmountNet[] instantAvailable?; + # String representing the object's type. Objects of the same type share the same value + "balance" 'object; +}; + +# The recurring components of a price such as `interval` and `usage_type` +public type Recurring1 record { + @jsondata:Name {value: "interval_count"} + int intervalCount?; + @jsondata:Name {value: "usage_type"} + "licensed"|"metered" usageType?; + @constraint:String {maxLength: 5000} + string meter?; + @jsondata:Name {value: "aggregate_usage"} + "last_during_period"|"last_ever"|"max"|"sum" aggregateUsage?; + "day"|"month"|"week"|"year" interval; +}; + +# +public type PaymentMethodCardWallet record { + @jsondata:Name {value: "apple_pay"} + PaymentMethodCardWalletApplePay applePay?; + PaymentMethodCardWalletMasterpass masterpass?; + @jsondata:Name {value: "samsung_pay"} + PaymentMethodCardWalletSamsungPay samsungPay?; + @jsondata:Name {value: "google_pay"} + PaymentMethodCardWalletGooglePay googlePay?; + @jsondata:Name {value: "visa_checkout"} + PaymentMethodCardWalletVisaCheckout visaCheckout?; + PaymentMethodCardWalletLink link?; + @jsondata:Name {value: "amex_express_checkout"} + PaymentMethodCardWalletAmexExpressCheckout amexExpressCheckout?; + # (For tokenized numbers only.) The last four digits of the device account number + @jsondata:Name {value: "dynamic_last4"} + string? dynamicLast4?; + # The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type + "amex_express_checkout"|"apple_pay"|"google_pay"|"link"|"masterpass"|"samsung_pay"|"visa_checkout" 'type; +}; + +public type Created29RangeQuerySpecs322 int; + +# +public type InvoicesResourceList record { + Invoice[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/invoices`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetInvoicesUpcomingQueriesExpandItemsString string; + +# Point in Time +public type GelatoDataVerifiedOutputsDate record { + # Numerical month between 1 and 12 + int? month?; + # The four-digit year + int? year?; + # Numerical day between 1 and 31 + int? day?; +}; + +# Pending Updates store the changes pending from a previous update that will be applied +# to the Subscription upon successful payment +public type SubscriptionsResourcePendingUpdate record { + # List of subscription items, each with an attached plan, that will be set if the update is applied + @jsondata:Name {value: "subscription_items"} + SubscriptionItem[]? subscriptionItems?; + # Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_from_plan"} + boolean? trialFromPlan?; + # The point after which the changes reflected by this update will be discarded and no longer applied + @jsondata:Name {value: "expires_at"} + int expiresAt; + # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied + @jsondata:Name {value: "trial_end"} + int? trialEnd?; + # If the update is applied, determines the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. The timestamp is in UTC format + @jsondata:Name {value: "billing_cycle_anchor"} + int? billingCycleAnchor?; +}; + +# Use OutboundTransfers to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account. +# +# Simulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects +public type TreasuryOutboundTransfer record { + # The FinancialAccount that funds were pulled from + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) transferred + int amount; + # 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 + record {|string...;|} metadata; + # Returns `true` if the object can be canceled, and `false` otherwise + boolean cancelable; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Details about network-specific tracking information if available + @jsondata:Name {value: "tracking_details"} + TreasuryOutboundTransfersResourceOutboundTransferResourceTrackingDetails? trackingDetails?; + @jsondata:Name {value: "destination_payment_method_details"} + OutboundTransfersPaymentMethodDetails destinationPaymentMethodDetails; + # The date when funds are expected to arrive in the destination account + @jsondata:Name {value: "expected_arrival_date"} + int expectedArrivalDate; + # Information about the OutboundTransfer to be sent to the recipient account + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Details about a returned OutboundTransfer. Only set when the status is `returned` + @jsondata:Name {value: "returned_details"} + TreasuryOutboundTransfersResourceReturnedDetails? returnedDetails?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + TreasuryOutboundTransfersResourceStatusTransitions statusTransitions; + # The Transaction associated with this object + string|TreasuryTransaction 'transaction; + # The PaymentMethod used as the payment instrument for an OutboundTransfer + @jsondata:Name {value: "destination_payment_method"} + string? destinationPaymentMethod?; + # String representing the object's type. Objects of the same type share the same value + "treasury.outbound_transfer" 'object; + # Current status of the OutboundTransfer: `processing`, `failed`, `canceled`, `posted`, `returned`. An OutboundTransfer is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundTransfer has been "confirmed" and funds have left the account, or to `failed` or `canceled`. If an OutboundTransfer fails to arrive at its destination, its status will change to `returned` + "canceled"|"failed"|"posted"|"processing"|"returned" status; +}; + +# +public type IssuingCardholderAuthorizationControls record { + # Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories` + @jsondata:Name {value: "allowed_categories"} + ("ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards")[]? allowedCategories?; + # Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control + @jsondata:Name {value: "blocked_merchant_countries"} + IssuingCardholderAuthorizationControlsBlockedmerchantcountriesItemsString[]? blockedMerchantCountries?; + # Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories` + @jsondata:Name {value: "blocked_categories"} + ("ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards")[]? blockedCategories?; + # Limit spending with amount-based rules that apply across this cardholder's cards + @jsondata:Name {value: "spending_limits"} + IssuingCardholderSpendingLimit[]? spendingLimits?; + # Currency of the amounts within `spending_limits` + @jsondata:Name {value: "spending_limits_currency"} + string? spendingLimitsCurrency?; + # Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control + @jsondata:Name {value: "allowed_merchant_countries"} + IssuingCardholderAuthorizationControlsAllowedmerchantcountriesItemsString[]? allowedMerchantCountries?; +}; + +public type TopupstopupBody record {| + # Specifies which fields in the response should be expanded + TopupstopupBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; +|}; + +# +public type DeletedWebhookEndpoint record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "webhook_endpoint" 'object; +}; + +@constraint:String {maxLength: 5000} +public type IdentityVerificationSessionsBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetIssuingPersonalizationDesignsPersonalizationDesign +public type GetIssuingPersonalizationDesignsPersonalizationDesignQueries record { + # Specifies which fields in the response should be expanded + GetIssuingPersonalizationDesignsPersonalizationDesignQueriesExpandItemsString[] expand?; +}; + +# +public type IssuingNetworkTokenMastercard record { + # The name of the entity requesting tokenization, if known. This is directly provided from MasterCard + @jsondata:Name {value: "token_requestor_name"} + string tokenRequestorName?; + # A unique reference ID from MasterCard to represent the card account number + @jsondata:Name {value: "card_reference_id"} + string cardReferenceId?; + # The network-unique identifier for the token + @jsondata:Name {value: "token_reference_id"} + string tokenReferenceId; + # The ID of the entity requesting tokenization, specific to MasterCard + @jsondata:Name {value: "token_requestor_id"} + string tokenRequestorId; +}; + +public type SubscriptionBillingCycleAnchor1AnyOf1 "now"|"unchanged"; + +# +public type InvoiceSettingCustomField record { + # The name of the custom field + @constraint:String {maxLength: 5000} + string name; + # The value of the custom field + @constraint:String {maxLength: 5000} + string value; +}; + +public type TaxCalculationsBody record {| + # Timestamp of date at which the tax rules and rates in effect applies for the calculation. Measured in seconds since the Unix epoch. Can be up to 48 hours in the past, and up to 48 hours in the future + @jsondata:Name {value: "tax_date"} + int taxDate?; + @jsondata:Name {value: "customer_details"} + CustomerDetails customerDetails?; + # Specifies which fields in the response should be expanded + TaxCalculationsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "shipping_cost"} + ShippingCost1 shippingCost?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + @jsondata:Name {value: "ship_from_details"} + ShipFromDetails shipFromDetails?; + # A list of items the customer is purchasing + @jsondata:Name {value: "line_items"} + CalculationLineItem[] lineItems; + # The ID of an existing customer to use for this calculation. If provided, the customer's address and tax IDs are copied to `customer_details` + @constraint:String {maxLength: 5000} + string customer?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTerminalReadersQueriesExpandItemsString string; + +# +public type AccountPayoutSettings record { + # A Boolean indicating if Stripe should try to reclaim negative balances from an attached bank account. See [Understanding Connect account balances](/connect/account-balances) for details. The default value is `false` when [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, otherwise `true` + @jsondata:Name {value: "debit_negative_balances"} + boolean debitNegativeBalances; + # The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + TransferSchedule schedule; +}; + +# Represents the Queries record for the operation: GetShippingRatesShippingRateToken +public type GetShippingRatesShippingRateTokenQueries record { + # Specifies which fields in the response should be expanded + GetShippingRatesShippingRateTokenQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodDetailsUsBankAccount record { + # Last four digits of the bank account number + string? last4?; + # Account type: checkings or savings. Defaults to checking if omitted + @jsondata:Name {value: "account_type"} + "checking"|"savings"? accountType?; + # ID of the mandate used to make this payment + string|Mandate mandate?; + # Account holder type: individual or company + @jsondata:Name {value: "account_holder_type"} + "company"|"individual"? accountHolderType?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Reference number to locate ACH payments with customer's bank + @jsondata:Name {value: "payment_reference"} + string? paymentReference?; + # Routing number of the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; +}; + +# +public type PaymentMethodDetailsCardWalletGooglePay record { +}; + +public type LinkedAccountOptionsFiltersParam record { + @jsondata:Name {value: "account_subcategories"} + (LinkedAccountOptionsFiltersParamAccountsubcategoriesItemsString)[] accountSubcategories?; +}; + +# +public type PaymentIntentNextActionCashappQrCode record { + # The image_url_png string used to render QR code + @jsondata:Name {value: "image_url_png"} + string imageUrlPng; + # The date (unix timestamp) when the QR code expires + @jsondata:Name {value: "expires_at"} + int expiresAt; + # The image_url_svg string used to render QR code + @jsondata:Name {value: "image_url_svg"} + string imageUrlSvg; +}; + +# +public type TaxProductRegistrationsResourceCountryOptionsSimplified record { + # Type of registration in `country` + "simplified" 'type; +}; + +# +public type PaymentIntentPaymentMethodOptionsEps record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type GetTopupsQueriesExpandItemsString string; + +# Contains Features that add FinancialAddresses to the FinancialAccount +public type FinancialAddresses1 record { + AbaAccess aba?; +}; + +# The shipping cost to reverse +public type TransactionShippingCostReversal record { + int amount; + @jsondata:Name {value: "amount_tax"} + int amountTax; +}; + +@constraint:String {maxLength: 5000} +public type GetPaymentLinksQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetApplePayDomainsDomainQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetCountrySpecsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetFileLinksQueriesExpandItemsString string; + +# +public type PaymentMethodDetailsKonbiniStore record { + # The name of the convenience store chain where the payment was completed + "familymart"|"lawson"|"ministop"|"seicomart"? chain?; +}; + +# Documents that may be submitted to satisfy various informational requests +public type DocumentsSpecs record { + @jsondata:Name {value: "proof_of_registration"} + DocumentsParam proofOfRegistration?; + @jsondata:Name {value: "company_memorandum_of_association"} + DocumentsParam companyMemorandumOfAssociation?; + @jsondata:Name {value: "company_license"} + DocumentsParam companyLicense?; + @jsondata:Name {value: "company_ministerial_decree"} + DocumentsParam companyMinisterialDecree?; + @jsondata:Name {value: "company_tax_id_verification"} + DocumentsParam companyTaxIdVerification?; + @jsondata:Name {value: "bank_account_ownership_verification"} + DocumentsParam bankAccountOwnershipVerification?; + @jsondata:Name {value: "company_registration_verification"} + DocumentsParam companyRegistrationVerification?; +}; + +# +public type EphemeralKey record { + # Time at which the key will expire. Measured in seconds since the Unix epoch + int expires; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The key's secret. You can use this value to make authorized requests to the Stripe API + @constraint:String {maxLength: 5000} + string secret?; + # String representing the object's type. Objects of the same type share the same value + "ephemeral_key" 'object; +}; + +public type UsBankAccountSourceParams record { + @jsondata:Name {value: "account_number"} + string accountNumber?; + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + @jsondata:Name {value: "routing_number"} + string routingNumber?; +}; + +# +public type PaymentMethodPromptpay record { +}; + +# +public type PaymentMethodDetailsPaypal record { + # A unique ID generated by PayPal for this transaction + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # The level of protection offered as defined by PayPal Seller Protection for Merchants, for this transaction + @jsondata:Name {value: "seller_protection"} + PaypalSellerProtection? sellerProtection?; + # Owner's email. Values are provided by PayPal directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "payer_email"} + string? payerEmail?; + # PayPal account PayerID. This identifier uniquely identifies the PayPal customer + @jsondata:Name {value: "payer_id"} + string? payerId?; + # Owner's full name. Values provided by PayPal directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "payer_name"} + string? payerName?; +}; + +public type SourcesBody record {| + Owner1 owner?; + RedirectParams redirect?; + # Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources. Not supported for `receiver` type sources, where charge amount may not be specified until funds land + int amount?; + MandateParams mandate?; + record {|string...;|} metadata?; + ReceiverParams receiver?; + "reusable"|"single_use" usage?; + # The `type` of the source to create. Required unless `customer` and `original_source` are specified (see the [Cloning card Sources](https://stripe.com/docs/sources/connect#cloning-card-sources) guide) + @constraint:String {maxLength: 5000} + string 'type?; + # The source to share + @jsondata:Name {value: "original_source"} + string originalSource?; + # An optional token used to create the source. When passed, token properties will override source parameters + @constraint:String {maxLength: 5000} + string token?; + # An arbitrary string to be displayed on your customer's statement. As an example, if your website is `RunClub` and the item you're charging for is a race ticket, you may want to specify a `statement_descriptor` of `RunClub 5K race ticket.` While many payment types will display this information, some may not display it at all + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # Specifies which fields in the response should be expanded + SourcesBodyExpandItemsString[] expand?; + @jsondata:Name {value: "source_order"} + ShallowOrderSpecs sourceOrder?; + # Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready + string currency?; + # The authentication `flow` of the source to create. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`. It is generally inferred unless a type supports multiple flows + "code_verification"|"none"|"receiver"|"redirect" flow?; + # The `Customer` to whom the original source is attached to. Must be set when the original source is not a `Source` (e.g., `Card`) + @constraint:String {maxLength: 500} + string customer?; +|}; + +@constraint:String {maxLength: 5000} +public type InvoicesinvoiceBodyExpandItemsString string; + +public type IssuingCardAuthorizationControlsBlockedmerchantcountriesItemsString string; + +public type Created17RangeQuerySpecs192 int; + +public type PayoutSettingsSpecs record { + @jsondata:Name {value: "debit_negative_balances"} + boolean debitNegativeBalances?; + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + TransferScheduleSpecs schedule?; +}; + +# +public type IssuingDisputeTreasury record { + # The Treasury [DebitReversal](https://stripe.com/docs/api/treasury/debit_reversals) representing this Issuing dispute + @jsondata:Name {value: "debit_reversal"} + string? debitReversal?; + # The Treasury [ReceivedDebit](https://stripe.com/docs/api/treasury/received_debits) that is being disputed + @jsondata:Name {value: "received_debit"} + string receivedDebit; +}; + +@constraint:String {maxLength: 5000} +public type CustomerBalanceTransactionsBodyExpandItemsString string; + +# +public type PackageDimensions record { + # Length, in inches + decimal length; + # Width, in inches + decimal width; + # Weight, in ounces + decimal weight; + # Height, in inches + decimal height; +}; + +public type LinkAccountSessionsBody record {| + # Specifies which fields in the response should be expanded + LinkAccountSessionsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "account_holder"} + AccountholderParams1 accountHolder; + # List of data features that you would like to request access to. + # + # Possible values are `balances`, `transactions`, `ownership`, and `payment_method` + (LinkAccountSessionsBodyPermissionsItemsString)[] permissions; + # List of data features that you would like to retrieve upon account creation + ("balances"|"ownership"|"transactions")[] prefetch?; + # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app + @jsondata:Name {value: "return_url"} + string returnUrl?; + FiltersParams filters?; +|}; + +# +public type ApmsSourcesSourceList record { + # Details about each object + Polymorphic1[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetReviewsReview +public type GetReviewsReviewQueries record { + # Specifies which fields in the response should be expanded + GetReviewsReviewQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetProductsSearchQueriesExpandItemsString string; + +# +public type PaymentMethodSwish record { +}; + +# +public type PaymentPagesCheckoutSessionInvoiceCreation record { + @jsondata:Name {value: "invoice_data"} + PaymentPagesCheckoutSessionInvoiceSettings invoiceData; + # Indicates whether invoice creation is enabled for the Checkout Session + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetTerminalConfigurationsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPaymentMethodConfigurationsConfigurationQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetIssuingPersonalizationDesignsQueriesExpandItemsString string; + +public type PaymentLinksResourceInvoiceSettingsAccountTaxIds AccountTaxIdsAnyOf13|TaxId|DeletedTaxId; + +# +public type TaxProductResourceTaxCodeList record { + TaxCode[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerCashBalanceQueriesExpandItemsString string; + +# Configure fields to gather active consent from customers +public type ConsentCollectionParams1 record { + "auto"|"none" promotions?; + @jsondata:Name {value: "payment_method_reuse_agreement"} + PaymentMethodReuseAgreementParams paymentMethodReuseAgreement?; + @jsondata:Name {value: "terms_of_service"} + "none"|"required" termsOfService?; +}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf18 string; + +# +public type PaymentLinksResourceCustomFieldsDropdownOption record { + # The label for the option, displayed to the customer. Up to 100 characters + @constraint:String {maxLength: 5000} + string label; + # The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters + @constraint:String {maxLength: 5000} + string value; +}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf17 string; + +@constraint:String {maxLength: 500} +public type FilesAnyOf16 string; + +public type DocumentsParam11Files FilesAnyOf110|FilesFilesAnyOf1102; + +@constraint:String {maxLength: 500} +public type FilesAnyOf15 string; + +# +public type PaymentMethodOptionsPaypal record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID + string? reference?; + # Preferred locale of the PayPal checkout page that the customer is redirected to + @jsondata:Name {value: "preferred_locale"} + string? preferredLocale?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf19 string; + +@constraint:String {maxLength: 5000} +public type GetIssuingDisputesQueriesExpandItemsString string; + +# Represents a reader action to refund a payment +public type TerminalReaderReaderResourceRefundPaymentAction record { + # The reason for the refund + "duplicate"|"fraudulent"|"requested_by_customer" reason?; + # The amount being refunded + int amount?; + # 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 + record {|string...;|} metadata?; + # Charge that is being refunded + string|Charge charge?; + # Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge + @jsondata:Name {value: "refund_application_fee"} + boolean refundApplicationFee?; + # Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). A transfer can be reversed only by the application that created the charge + @jsondata:Name {value: "reverse_transfer"} + boolean reverseTransfer?; + # Payment intent that is being refunded + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent paymentIntent?; + @jsondata:Name {value: "refund_payment_config"} + TerminalReaderReaderResourceRefundPaymentConfig refundPaymentConfig?; + # Unique identifier for the refund object + string|Refund refund?; +}; + +# +public type AccountAnnualRevenue record { + # A non-negative integer representing the amount in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal) + int? amount?; + # The close-out date of the preceding fiscal year in ISO 8601 format. E.g. 2023-12-31 for the 31st of December, 2023 + @jsondata:Name {value: "fiscal_year_end"} + string? fiscalYearEnd?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string? currency?; +}; + +# Represents the Queries record for the operation: GetBalanceHistory +public type GetBalanceHistoryQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetBalanceHistoryQueriesExpandItemsString[] expand?; + # Only return transactions that were created during the given date interval + Created2 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID + @constraint:String {maxLength: 5000} + string payout?; + # Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only returns the original transaction + @constraint:String {maxLength: 5000} + string 'source?; + # Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund` + @constraint:String {maxLength: 5000} + string 'type?; +}; + +public type CouponOfferParam record { + @constraint:String {maxLength: 5000} + string coupon; +}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf14 string; + +@constraint:String {maxLength: 500} +public type FilesAnyOf13 string; + +@constraint:String {maxLength: 500} +public type FilesAnyOf12 string; + +@constraint:String {maxLength: 500} +public type FilesAnyOf11 string; + +public type InvoiceMarkUncollectibleBody record {| + # Specifies which fields in the response should be expanded + InvoiceMarkUncollectibleBodyExpandItemsString[] expand?; +|}; + +# +public type IssuingTransactionAmountDetails record { + # The amount of cash requested by the cardholder + @jsondata:Name {value: "cashback_amount"} + int? cashbackAmount?; + # The fee charged by the ATM for the cash withdrawal + @jsondata:Name {value: "atm_fee"} + int? atmFee?; +}; + +# +public type FinancialReportingFinanceReportRunList record { + ReportingReportRun[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/reporting/report_runs`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type LineItemsDiscountAmount record { + # The amount discounted + int amount; + Discount discount; +}; + +# +public type CheckoutBancontactPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type GetBillingMetersQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetChargesSearch +public type GetChargesSearchQueries record { + # Specifies which fields in the response should be expanded + GetChargesSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for charges](https://stripe.com/docs/search#query-fields-for-charges) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +# The accounts that were collected as part of this Session +public type BankConnectionsResourceLinkedAccountList1 record { + # Details about each object + FinancialConnectionsAccount[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/financial_connections/accounts`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type ReaderProcessPaymentIntentBodyExpandItemsString string; + +public type RefundsrefundBody1 record {| + # Specifies which fields in the response should be expanded + RefundsrefundBody1ExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +# Represents the Queries record for the operation: GetTreasuryFinancialAccountsFinancialAccount +public type GetTreasuryFinancialAccountsFinancialAccountQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryFinancialAccountsFinancialAccountQueriesExpandItemsString[] expand?; +}; + +public type CustomersBodyPreferredlocalesItemsString string; + +@constraint:String {maxLength: 5000} +public type RefundsrefundBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetClimateSuppliersSupplier +public type GetClimateSuppliersSupplierQueries record { + # Specifies which fields in the response should be expanded + GetClimateSuppliersSupplierQueriesExpandItemsString[] expand?; +}; + +public type IdReturnBody1 record {| + # Specifies which fields in the response should be expanded + IdReturnBody1ExpandItemsString[] expand?; + @jsondata:Name {value: "returned_details"} + ReturnedDetailsParams returnedDetails?; +|}; + +# +public type PaymentMethodDetailsSepaDebit record { + # Branch code of bank associated with the bank account + @jsondata:Name {value: "branch_code"} + string? branchCode?; + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Two-letter ISO code representing the country the bank account is located in + string? country?; + # Last four characters of the IBAN + string? last4?; + # Find the ID of the mandate used for this payment under the [payment_method_details.sepa_debit.mandate](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate) property on the Charge. Use this mandate ID to [retrieve the Mandate](https://stripe.com/docs/api/mandates/retrieve) + string? mandate?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; +}; + +# Simulated data for the interac_present payment method +public type InteracPresent record { + @constraint:String {maxLength: 5000} + string number?; +}; + +public type IdReactivateBody record {| + # Specifies which fields in the response should be expanded + IdReactivateBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type CouponscouponBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetCustomersCustomer +public type GetCustomersCustomerQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodAfterpayClearpay record { +}; + +public type PersonalizationDesignActivateBody record {| + # Specifies which fields in the response should be expanded + PersonalizationDesignActivateBodyExpandItemsString[] expand?; +|}; + +# +public type PaymentPagesCheckoutSessionShippingOption record { + # A non-negative integer in cents representing how much to charge + @jsondata:Name {value: "shipping_amount"} + int shippingAmount; + # The shipping rate + @jsondata:Name {value: "shipping_rate"} + string|ShippingRate shippingRate; +}; + +# +public type PaymentMethodDetailsKlarna record { + # Preferred language of the Klarna authorization page that the customer is redirected to. + # Can be one of `de-AT`, `en-AT`, `nl-BE`, `fr-BE`, `en-BE`, `de-DE`, `en-DE`, `da-DK`, `en-DK`, `es-ES`, `en-ES`, `fi-FI`, `sv-FI`, `en-FI`, `en-GB`, `en-IE`, `it-IT`, `en-IT`, `nl-NL`, `en-NL`, `nb-NO`, `en-NO`, `sv-SE`, `en-SE`, `en-US`, `es-US`, `fr-FR`, `en-FR`, `cs-CZ`, `en-CZ`, `ro-RO`, `en-RO`, `el-GR`, `en-GR`, `en-AU`, `en-NZ`, `en-CA`, `fr-CA`, `pl-PL`, `en-PL`, `pt-PT`, `en-PT`, `de-CH`, `fr-CH`, `it-CH`, or `en-CH` + @jsondata:Name {value: "preferred_locale"} + string? preferredLocale?; + # The Klarna payment method used for this transaction. + # Can be one of `pay_later`, `pay_now`, `pay_with_financing`, or `pay_in_installments` + @jsondata:Name {value: "payment_method_category"} + string? paymentMethodCategory?; +}; + +# +public type PortalFlowsFlowSubscriptionCancel record { + # The ID of the subscription to be canceled + @constraint:String {maxLength: 5000} + string subscription; + # Specify a retention strategy to be used in the cancellation flow + PortalFlowsRetention? retention?; +}; + +# +public type DeletedInvoice record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "invoice" 'object; +}; + +public type EffectiveAt RangeQuerySpecs55|EffectiveAtRangeQuerySpecs552; + +# Represents the Queries record for the operation: GetIssuingCardholders +public type GetIssuingCardholdersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingCardholdersQueriesExpandItemsString[] expand?; + # Only return cardholders that were created during the given date interval + Created18 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return cardholders that have the given phone number + @http:Query {name: "phone_number"} + string phoneNumber?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return cardholders that have the given type. One of `individual` or `company` + "company"|"individual" 'type?; + # Only return cardholders that have the given email address + string email?; + # Only return cardholders that have the given status. One of `active`, `inactive`, or `blocked` + "active"|"blocked"|"inactive" status?; +}; + +# +public type PaymentMethodDetailsCard record { + # 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 + string? country?; + # The last four digits of the card + string? last4?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + string? funding?; + # ID of the mandate used to make this payment or created by it + string? mandate?; + # If this Card is part of a card wallet, this contains the details of the card wallet + PaymentMethodDetailsCardWallet? wallet?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesOvercaptureOvercapture overcapture?; + # The authorized amount + @jsondata:Name {value: "amount_authorized"} + int? amountAuthorized?; + # Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? network?; + # If this card has network token credentials, this contains the details of the network token credentials + @jsondata:Name {value: "network_token"} + PaymentMethodDetailsCardNetworkToken? networkToken?; + @jsondata:Name {value: "incremental_authorization"} + PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesIncrementalAuthorizationIncrementalAuthorization incrementalAuthorization?; + # Check results by Card networks on Card address and CVC at time of payment + PaymentMethodDetailsCardChecks? checks?; + @jsondata:Name {value: "extended_authorization"} + PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesExtendedAuthorizationExtendedAuthorization extendedAuthorization?; + # Installment details for this payment (Mexico only). + # + # For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments) + PaymentMethodDetailsCardInstallments? installments?; + # When using manual capture, a future timestamp at which the charge will be automatically refunded if uncaptured + @jsondata:Name {value: "capture_before"} + int captureBefore?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # Populated if this transaction used 3D Secure authentication + @jsondata:Name {value: "three_d_secure"} + ThreeDSecureDetailsCharge? threeDSecure?; + # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? brand?; + PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceMulticapture multicapture?; +}; + +public type AccountCapabilityFutureRequirementsPastdueItemsString string; + +# +public type PortalFlowsFlowSubscriptionUpdate record { + # The ID of the subscription to be updated + @constraint:String {maxLength: 5000} + string subscription; +}; + +# A Quote is a way to model prices that you'd like to provide to a customer. +# Once accepted, it will automatically create an invoice, subscription or subscription schedule +public type Quote record { + # 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 + record {|string...;|} metadata; + QuotesResourceComputed computed; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # A footer that will be displayed on the quote PDF + string? footer?; + # Total after discounts and taxes are applied + @jsondata:Name {value: "amount_total"} + int amountTotal; + # A description that will be displayed on the quote PDF + string? description?; + @jsondata:Name {value: "line_items"} + QuotesResourceListLineItems1 lineItems?; + # The subscription that was created or updated from this quote + string|Subscription? subscription?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. Only applicable if there are line items with recurring prices on the quote + @jsondata:Name {value: "application_fee_percent"} + decimal? applicationFeePercent?; + # The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices + @jsondata:Name {value: "transfer_data"} + QuotesResourceTransferData? transferData?; + # A unique number that identifies this particular quote. This number is assigned once the quote is [finalized](https://stripe.com/docs/quotes/overview#finalize) + string? number?; + # The date on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch + @jsondata:Name {value: "expires_at"} + int expiresAt; + @jsondata:Name {value: "subscription_data"} + QuotesResourceSubscriptionDataSubscriptionData subscriptionData; + # The discounts applied to this quote + QuoteDiscounts[] discounts; + # Details of the quote that was cloned. See the [cloning documentation](https://stripe.com/docs/quotes/clone) for more details + @jsondata:Name {value: "from_quote"} + QuotesResourceFromQuote? fromQuote?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string? currency?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingQuoteSetting invoiceSettings; + # The tax rates applied to this quote + @jsondata:Name {value: "default_tax_rates"} + QuoteDefaultTaxRates[] defaultTaxRates?; + # The subscription schedule that was created or updated from this quote + @jsondata:Name {value: "subscription_schedule"} + string|SubscriptionSchedule? subscriptionSchedule?; + # ID of the test clock this quote belongs to + @jsondata:Name {value: "test_clock"} + string|TestHelpersTestClock? testClock?; + # The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "total_details"} + QuotesResourceTotalDetails totalDetails; + @jsondata:Name {value: "automatic_tax"} + QuotesResourceAutomaticTax automaticTax; + # ID of the Connect Application that created the quote + string|Application|DeletedApplication? application?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod; + # A header that will be displayed on the quote PDF + string? header?; + # The invoice that was created from this quote + string|Invoice|DeletedInvoice? invoice?; + @jsondata:Name {value: "status_transitions"} + QuotesResourceStatusTransitions statusTransitions; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Only applicable if there are no line items with recurring prices on the quote + @jsondata:Name {value: "application_fee_amount"} + int? applicationFeeAmount?; + # Total before any discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; + # The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "quote" 'object; + # The status of the quote + "accepted"|"canceled"|"draft"|"open" status; +}; + +public type FlowDataSubscriptionUpdateParam record { + @constraint:String {maxLength: 5000} + string subscription; +}; + +# Represents the Queries record for the operation: GetCreditNotesPreviewLines +public type GetCreditNotesPreviewLinesQueries record { + # Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + "duplicate"|"fraudulent"|"order_change"|"product_unsatisfactory" reason?; + # The integer amount in cents (or local equivalent) representing the total amount of the credit note + int amount?; + # 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` + record {|string...;|} metadata?; + # Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note` + @http:Query {name: "email_type"} + "credit_note"|"none" emailType?; + # When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note + @http:Query {name: "shipping_cost"} + CreditNoteShippingCost2 shippingCost?; + # The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice + @http:Query {name: "credit_amount"} + int creditAmount?; + # The credit note's memo appears on the credit note PDF + @constraint:String {maxLength: 5000} + string memo?; + # The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe + @http:Query {name: "out_of_band_amount"} + int outOfBandAmount?; + # The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF + @http:Query {name: "effective_at"} + int effectiveAt?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCreditNotesPreviewLinesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice + @http:Query {name: "refund_amount"} + int refundAmount?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # ID of the invoice + @constraint:String {maxLength: 5000} + string invoice; + # Line items that make up the credit note + CreditNoteLineItemParams[] lines?; + # ID of an existing refund to link this credit note to + string refund?; +}; + +# +public type PaymentMethodOptionsAmazonPay record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type GetClimateOrdersOrderQueriesExpandItemsString string; + +# +public type PaymentLinksResourcePaymentIntentData record { + # Indicates when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual"? captureMethod?; + # Extra information about the payment. This will appear on your customer's statement when this payment succeeds in creating a charge + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on [Payment Intents](https://stripe.com/docs/api/payment_intents) generated from this payment link + record {|string...;|} metadata; + # A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details + @jsondata:Name {value: "transfer_group"} + string? transferGroup?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Indicates that you intend to make future payments with the payment method collected during checkout + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session"? setupFutureUsage?; + # Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor + @jsondata:Name {value: "statement_descriptor_suffix"} + string? statementDescriptorSuffix?; +}; + +# +public type BillingMeterResourceBillingMeterList record { + BillingMeter[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/billing/meters`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodOptionsTwint record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type AccountCapabilityRequirementsPastdueItemsString string; + +# +public type SetupIntentPaymentMethodOptionsLink record { +}; + +# Represents the Queries record for the operation: GetTestHelpersTestClocksTestClock +public type GetTestHelpersTestClocksTestClockQueries record { + # Specifies which fields in the response should be expanded + GetTestHelpersTestClocksTestClockQueriesExpandItemsString[] expand?; +}; + +# +public type IssuingTransactionFleetNonFuelPriceData record { + # Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes + @jsondata:Name {value: "gross_amount_decimal"} + string? grossAmountDecimal?; +}; + +public type InvoiceItemThresholdReasonLineitemidsItemsString string; + +public type TransactionstransactionBody record {| + # Specifies which fields in the response should be expanded + TransactionstransactionBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +@constraint:String {maxLength: 5000} +public type CustomerCashBalanceBodyExpandItemsString string; + +# +public type SetupAttemptPaymentMethodDetailsLink record { +}; + +public type CustomerBankAccountsBody record {| + # A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details + @jsondata:Name {value: "alipay_account"} + string alipayAccount?; + # Specifies which fields in the response should be expanded + CustomerBankAccountsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Please refer to full [documentation](https://stripe.com/docs/api) instead + @constraint:String {maxLength: 5000} + string 'source?; + # A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) + record {string address_city?; string address_country?; string address_line1?; string address_line2?; string address_state?; string address_zip?; string cvc?; int exp_month; int exp_year; record {|string...;|} metadata?; string name?; string number; "card" 'object?;}|string card?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; string country; string currency?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; +|}; + +public type CustomsParam record { + @jsondata:Name {value: "eori_number"} + string eoriNumber?; +}; + +# +public type PortalFlowsSubscriptionUpdateConfirmItem record { + # [Quantity](https://stripe.com/docs/subscriptions/quantities) for this item that the customer should subscribe to through this flow + int quantity?; + # The price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products) + string? price?; + # The ID of the [subscription item](https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id) to be updated + string? id?; +}; + +# +public type Rule record { + # The predicate to evaluate the payment against + @constraint:String {maxLength: 5000} + string predicate; + # The action taken on the payment + @constraint:String {maxLength: 5000} + string action; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; +}; + +# +public type PersonAdditionalTosAcceptances record { + PersonAdditionalTosAcceptance account; +}; + +# Represents the Queries record for the operation: GetCountrySpecs +public type GetCountrySpecsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCountrySpecsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type PaymentIntentsBody record {| + # The ID of the payment method configuration to use with this PaymentIntent + @jsondata:Name {value: "payment_method_configuration"} + string paymentMethodConfiguration?; + # ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm) + @constraint:String {maxLength: 5000} + string mandate?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions2 radarOptions?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 1000} + string description?; + # ID of the ConfirmationToken used to confirm this PaymentIntent. + # + # If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence + @jsondata:Name {value: "confirmation_token"} + string confirmationToken?; + # For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataCreationParams transferData?; + OptionalFieldsShipping1 shipping?; + @jsondata:Name {value: "automatic_payment_methods"} + AutomaticPaymentMethodsParam automaticPaymentMethods?; + # Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm) + @jsondata:Name {value: "off_session"} + boolean|"one_off"|"recurring" offSession?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams paymentMethodData?; + # The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm) + @jsondata:Name {value: "return_url"} + string returnUrl?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam14 paymentMethodOptions?; + # Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. Use this parameter for simpler integrations that don't handle customer actions, such as [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm) + @jsondata:Name {value: "error_on_requires_action"} + boolean errorOnRequiresAction?; + # ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent. + # + # If you omit this parameter with `confirm=true`, `customer.default_source` attaches as this PaymentIntent's payment instrument to improve migration for users of the Charges API. We recommend that you explicitly provide the `payment_method` moving forward + @jsondata:Name {value: "payment_method"} + string paymentMethod?; + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual" captureMethod?; + # Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99) + int amount; + # A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + # The Stripe account ID that these funds are intended for. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + # The list of payment method types (for example, a card) that this PaymentIntent can use. If you don't provide this, it defaults to ["card"]. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) + @jsondata:Name {value: "payment_method_types"} + PaymentIntentsBodyPaymentmethodtypesItemsString[] paymentMethodTypes?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session" setupFutureUsage?; + # Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment + @jsondata:Name {value: "confirmation_method"} + "automatic"|"manual" confirmationMethod?; + # Set to `true` to attempt to [confirm this PaymentIntent](https://stripe.com/docs/api/payment_intents/confirm) immediately. This parameter defaults to `false`. When creating and confirming a PaymentIntent at the same time, you can also provide the parameters available in the [Confirm API](https://stripe.com/docs/api/payment_intents/confirm) + boolean confirm?; + # Specifies which fields in the response should be expanded + PaymentIntentsBodyExpandItemsString[] expand?; + # Email address to send the receipt to. If you specify `receipt_email` for a payment in live mode, you send a receipt regardless of your [email settings](https://dashboard.stripe.com/account/emails) + @jsondata:Name {value: "receipt_email"} + string receiptEmail?; + # Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. The concatenated descriptor must contain 1-22 characters + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; + # This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm) + @jsondata:Name {value: "mandate_data"} + record {record {int accepted_at?; record {} offline?; record {string ip_address; string user_agent;} online?; "offline"|"online" 'type;} customer_acceptance;}|"" mandateData?; + # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions + @jsondata:Name {value: "use_stripe_sdk"} + boolean useStripeSdk?; + # ID of the Customer this PaymentIntent belongs to, if one exists. + # + # Payment methods attached to other Customers cannot be used with this PaymentIntent. + # + # If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete + @constraint:String {maxLength: 5000} + string customer?; +|}; + +@constraint:String {maxLength: 5000} +public type IdReturnBody1ExpandItemsString string; + +# Customers with certain payments enabled have a cash balance, representing funds that were paid +# by the customer to a merchant, but have not yet been allocated to a payment. Cash Balance Transactions +# represent when funds are moved into or out of this balance. This includes funding by the customer, allocation +# to payments, and refunds to the customer +public type CustomerCashBalanceTransactionList record { + # Details about each object + CustomerCashBalanceTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodOptionsOxxo record { + # The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time + @jsondata:Name {value: "expires_after_days"} + int expiresAfterDays; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# Represents the Queries record for the operation: GetCreditNotesPreview +public type GetCreditNotesPreviewQueries record { + # Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + "duplicate"|"fraudulent"|"order_change"|"product_unsatisfactory" reason?; + # The integer amount in cents (or local equivalent) representing the total amount of the credit note + int amount?; + # 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` + record {|string...;|} metadata?; + # Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note` + @http:Query {name: "email_type"} + "credit_note"|"none" emailType?; + # When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note + @http:Query {name: "shipping_cost"} + CreditNoteShippingCost1 shippingCost?; + # The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice + @http:Query {name: "credit_amount"} + int creditAmount?; + # The credit note's memo appears on the credit note PDF + @constraint:String {maxLength: 5000} + string memo?; + # The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe + @http:Query {name: "out_of_band_amount"} + int outOfBandAmount?; + # The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF + @http:Query {name: "effective_at"} + int effectiveAt?; + # Specifies which fields in the response should be expanded + GetCreditNotesPreviewQueriesExpandItemsString[] expand?; + # The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice + @http:Query {name: "refund_amount"} + int refundAmount?; + # ID of the invoice + @constraint:String {maxLength: 5000} + string invoice; + # Line items that make up the credit note + CreditNoteLineItemParams[] lines?; + # ID of an existing refund to link this credit note to + string refund?; +}; + +public type Created13RangeQuerySpecs142 int; + +# +public type RadarEarlyFraudWarningList record { + RadarEarlyFraudWarning[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/radar/early_fraud_warnings`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type PaymentIntentsintentBody record {| + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual" captureMethod?; + # The ID of the payment method configuration to use with this PaymentIntent + @jsondata:Name {value: "payment_method_configuration"} + string paymentMethodConfiguration?; + # Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99) + int amount?; + # 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` + record {|string...;|}|"" metadata?; + # A string that identifies the resulting payment as part of a group. You can only provide `transfer_group` if it hasn't been set. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + # The list of payment method types (for example, card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) + @jsondata:Name {value: "payment_method_types"} + PaymentIntentsintentBodyPaymentmethodtypesItemsString[] paymentMethodTypes?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 1000} + string description?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). + # + # If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session` + @jsondata:Name {value: "setup_future_usage"} + ""|"off_session"|"on_session" setupFutureUsage?; + # For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataUpdateParams transferData?; + # Specifies which fields in the response should be expanded + PaymentIntentsintentBodyExpandItemsString[] expand?; + # Shipping information for this PaymentIntent + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string carrier?; string name; string phone?; string tracking_number?;}|"" shipping?; + # Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails) + @jsondata:Name {value: "receipt_email"} + string|"" receiptEmail?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams paymentMethodData?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam15 paymentMethodOptions?; + # Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "application_fee_amount"} + int|"" applicationFeeAmount?; + # ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent + @jsondata:Name {value: "payment_method"} + string paymentMethod?; + # ID of the Customer this PaymentIntent belongs to, if one exists. + # + # Payment methods attached to other Customers cannot be used with this PaymentIntent. + # + # If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete + @constraint:String {maxLength: 5000} + string customer?; +|}; + +@constraint:String {maxLength: 5000} +public type ReversalsidBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetClimateSuppliersQueriesExpandItemsString string; + +public type Param9 record { + "abn_amro"|"asn_bank"|"bunq"|"handelsbanken"|"ing"|"knab"|"moneyou"|"n26"|"nn"|"rabobank"|"regiobank"|"revolut"|"sns_bank"|"triodos_bank"|"van_lanschot"|"yoursafe" bank?; +}; + +# Options for customizing how the account functions within Stripe +public type SettingsSpecs record { + PayoutSettingsSpecs payouts?; + @jsondata:Name {value: "card_issuing"} + CardIssuingSettingsSpecs cardIssuing?; + TreasurySettingsSpecs treasury?; + BrandingSettingsSpecs branding?; + PaymentsSettingsSpecs payments?; + @jsondata:Name {value: "bacs_debit_payments"} + BacsDebitPaymentsSpecs bacsDebitPayments?; + @jsondata:Name {value: "card_payments"} + CardPaymentsSettingsSpecs cardPayments?; +}; + +public type Param8 record { + "affin_bank"|"agrobank"|"alliance_bank"|"ambank"|"bank_islam"|"bank_muamalat"|"bank_of_china"|"bank_rakyat"|"bsn"|"cimb"|"deutsche_bank"|"hong_leong_bank"|"hsbc"|"kfh"|"maybank2e"|"maybank2u"|"ocbc"|"pb_enterprise"|"public_bank"|"rhb"|"standard_chartered"|"uob" bank; +}; + +public type Param7 record { + "arzte_und_apotheker_bank"|"austrian_anadi_bank_ag"|"bank_austria"|"bankhaus_carl_spangler"|"bankhaus_schelhammer_und_schattera_ag"|"bawag_psk_ag"|"bks_bank_ag"|"brull_kallmus_bank_ag"|"btv_vier_lander_bank"|"capital_bank_grawe_gruppe_ag"|"deutsche_bank_ag"|"dolomitenbank"|"easybank_ag"|"erste_bank_und_sparkassen"|"hypo_alpeadriabank_international_ag"|"hypo_bank_burgenland_aktiengesellschaft"|"hypo_noe_lb_fur_niederosterreich_u_wien"|"hypo_oberosterreich_salzburg_steiermark"|"hypo_tirol_bank_ag"|"hypo_vorarlberg_bank_ag"|"marchfelder_bank"|"oberbank_ag"|"raiffeisen_bankengruppe_osterreich"|"schoellerbank_ag"|"sparda_bank_wien"|"volksbank_gruppe"|"volkskreditbank_ag"|"vr_bank_braunau" bank?; +}; + +public type RefundCancelBody record {| + # Specifies which fields in the response should be expanded + RefundCancelBodyExpandItemsString[] expand?; +|}; + +public type Param6 record { + @jsondata:Name {value: "tax_id"} + string taxId; +}; + +public type Param5 record { + @jsondata:Name {value: "account_number"} + string accountNumber?; + @jsondata:Name {value: "sort_code"} + string sortCode?; +}; + +public type Param4 record { + @jsondata:Name {value: "bsb_number"} + string bsbNumber; + @jsondata:Name {value: "account_number"} + string accountNumber; +}; + +public type Param3 record { + "account"|"self" 'type; + string account?; +}; + +public type Param2 record { + "account"|"self" 'type; + string account?; +}; + +# +public type CheckoutSofortPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account +public type Param1 record { + "account"|"self" 'type; + string account?; +}; + +@constraint:String {maxLength: 5000} +public type GetRadarEarlyFraudWarningsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetSourcesSourceSourceTransactionsSourceTransaction +public type GetSourcesSourceSourceTransactionsSourceTransactionQueries record { + # Specifies which fields in the response should be expanded + GetSourcesSourceSourceTransactionsSourceTransactionQueriesExpandItemsString[] expand?; +}; + +# Fields that specify how to map a meter event to a customer +public type CustomerMappingParam record { + @jsondata:Name {value: "event_payload_key"} + string eventPayloadKey; + "by_id" 'type; +}; + +@constraint:String {maxLength: 5000} +public type GetPayoutsPayoutQueriesExpandItemsString string; + +public type CustomFieldDropdownParam1 record { + CustomFieldOptionParam[] options; +}; + +public type TaxSettingsBody record {| + # Specifies which fields in the response should be expanded + TaxSettingsBodyExpandItemsString[] expand?; + DefaultsParam defaults?; + @jsondata:Name {value: "head_office"} + HeadOfficeParam headOffice?; +|}; + +@constraint:String {maxLength: 5000} +public type ShippingDeliverBodyExpandItemsString string; + +public type InvoiceSettings record { + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + Param issuer?; +}; + +# Represents a per-transaction override of a reader configuration +public type TerminalReaderReaderResourceRefundPaymentConfig record { + # Enable customer initiated cancellation when refunding this payment + @jsondata:Name {value: "enable_customer_cancellation"} + boolean enableCustomerCancellation?; +}; + +public type Created40RangeQuerySpecs482 int; + +@constraint:String {maxLength: 5000} +public type LineslineItemIdBodyExpandItemsString string; + +public type DocumentsParam9 record { + DocumentsParam9Files[] files?; +}; + +@constraint:String {maxLength: 5000} +public type CustomerSubscriptionsBodyExpandItemsString string; + +# +public type PaymentIntentPaymentMethodOptionsBlik record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type DocumentsParam6 record { + DocumentsParam6Files[] files?; +}; + +public type DocumentsParam5 record { + DocumentsParam5Files[] files?; +}; + +# +public type PaymentIntentProcessing record { + # Type of the payment method for which payment is in `processing` state, one of `card` + "card" 'type; + PaymentIntentCardProcessing card?; +}; + +public type DocumentsParam8 record { + DocumentsParam8Files[] files?; +}; + +public type DocumentsParam7 record { + DocumentsParam7Files[] files?; +}; + +public type BaseConfigParam record { + record {} features?; + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type AccountTaxIdsAnyOf14 string; + +@constraint:String {maxLength: 5000} +public type AccountTaxIdsAnyOf15 string; + +@constraint:String {maxLength: 5000} +public type GetProductsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AccountTaxIdsAnyOf11 string; + +@constraint:String {maxLength: 5000} +public type AccountTaxIdsAnyOf12 string; + +@constraint:String {maxLength: 5000} +public type AccountTaxIdsAnyOf13 string; + +@constraint:String {maxLength: 5000} +public type TreasuryReceivedDebitsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetRadarValueListItemsItemQueriesExpandItemsString string; + +public type LineItemParams record { + @jsondata:Name {value: "price_data"} + PriceDataWithProductData priceData?; + int quantity?; + @jsondata:Name {value: "adjustable_quantity"} + AdjustableQuantityParams adjustableQuantity?; + @constraint:String {maxLength: 5000} + string price?; + @jsondata:Name {value: "dynamic_tax_rates"} + LineItemParamsDynamictaxratesItemsString[] dynamicTaxRates?; + @jsondata:Name {value: "tax_rates"} + LineItemParamsTaxratesItemsString[] taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationExpireBodyExpandItemsString string; + +# +public type IssuingCardShippingAddressValidation record { + # The address validation capabilities to use + "disabled"|"normalization_only"|"validation_and_normalization" mode; + # The validation result for the shipping address + "indeterminate"|"likely_deliverable"|"likely_undeliverable"? result?; + # The normalized shipping address + @jsondata:Name {value: "normalized_address"} + Address? normalizedAddress?; +}; + +# Behavior after the purchase is complete +public type AfterCompletionParams record { + AfterCompletionRedirectParams redirect?; + @jsondata:Name {value: "hosted_confirmation"} + AfterCompletionConfirmationPageParams hostedConfirmation?; + "hosted_confirmation"|"redirect" 'type; +}; + +# Each customer has a [Balance](https://stripe.com/docs/api/customers/object#customer_object-balance) value, +# which denotes a debit or credit that's automatically applied to their next invoice upon finalization. +# You may modify the value directly by using the [update customer API](https://stripe.com/docs/api/customers/update), +# or by creating a Customer Balance Transaction, which increments or decrements the customer's `balance` by the specified `amount`. +# +# Related guide: [Customer balance](https://stripe.com/docs/billing/customer/balance) +public type CustomerBalanceTransaction record { + # The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's `balance` + int amount; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # The customer's `balance` after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice + @jsondata:Name {value: "ending_balance"} + int endingBalance; + # Transaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_overpaid`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, or `unapplied_from_invoice`. See the [Customer Balance page](https://stripe.com/docs/billing/customer/balance#types) to learn more about transaction types + "adjustment"|"applied_to_invoice"|"credit_note"|"initial"|"invoice_overpaid"|"invoice_too_large"|"invoice_too_small"|"migration"|"unapplied_from_invoice"|"unspent_receiver_credit" 'type; + # The ID of the credit note (if any) related to the transaction + @jsondata:Name {value: "credit_note"} + string|CreditNote? creditNote?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The ID of the invoice (if any) related to the transaction + string|Invoice? invoice?; + # The ID of the customer the transaction belongs to + string|Customer customer; + # String representing the object's type. Objects of the same type share the same value + "customer_balance_transaction" 'object; +}; + +public type Created19RangeQuerySpecs212 int; + +public type ClimateOrdersBody record {| + # Requested amount of carbon removal units. Either this or `metric_tons` must be specified + int amount?; + # Specifies which fields in the response should be expanded + ClimateOrdersBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Unique identifier of the Climate product + @constraint:String {maxLength: 5000} + string product; + BeneficiaryParams beneficiary?; + # Request currency for the order as a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a supported [settlement currency for your account](https://stripe.com/docs/currencies). If omitted, the account's default currency will be used + @constraint:String {maxLength: 5000} + string currency?; + # Requested number of tons for the order. Either this or `amount` must be specified + @jsondata:Name {value: "metric_tons"} + string metricTons?; +|}; + +# +public type TreasuryReceivedDebitsResourceDebitReversalList record { + # Details about each object + TreasuryDebitReversal[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type RadarReviewResourceLocation record { + # Two-letter ISO code representing the country where the payment originated + string? country?; + # The city where the payment originated + string? city?; + # The geographic latitude where the payment originated + decimal? latitude?; + # The state/county/province/region where the payment originated + string? region?; + # The geographic longitude where the payment originated + decimal? longitude?; +}; + +# +public type PaymentMethodDetails record { + PaymentMethodDetailsPaynow paynow?; + PaymentMethodDetailsBlik blik?; + @jsondata:Name {value: "interac_present"} + PaymentMethodDetailsInteracPresent interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodDetailsAcssDebit acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodDetailsBacsDebit bacsDebit?; + PaymentMethodDetailsBoleto boleto?; + PaymentMethodDetailsLink link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodDetailsAmazonPay amazonPay?; + # The type of transaction-specific details of the payment method used in the payment, one of `ach_credit_transfer`, `ach_debit`, `acss_debit`, `alipay`, `au_becs_debit`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `klarna`, `multibanco`, `p24`, `sepa_debit`, `sofort`, `stripe_account`, or `wechat`. + # An additional hash is included on `payment_method_details` with a name matching this value. + # It contains information specific to the payment method + @constraint:String {maxLength: 5000} + string 'type; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodDetailsAuBecsDebit auBecsDebit?; + PaymentMethodDetailsOxxo oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodDetailsAfterpayClearpay afterpayClearpay?; + @jsondata:Name {value: "stripe_account"} + PaymentMethodDetailsStripeAccount stripeAccount?; + PaymentMethodDetailsSwish swish?; + PaymentMethodDetailsTwint twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodDetailsUsBankAccount usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodDetailsCustomerBalance customerBalance?; + PaymentMethodDetailsCashapp cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodDetailsWechatPay wechatPay?; + @jsondata:Name {value: "ach_credit_transfer"} + PaymentMethodDetailsAchCreditTransfer achCreditTransfer?; + PaymentMethodDetailsPaypal paypal?; + PaymentMethodDetailsPix pix?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodDetailsRevolutPay revolutPay?; + PaymentMethodDetailsGiropay giropay?; + PaymentMethodDetailsZip zip?; + PaymentFlowsPrivatePaymentMethodsAlipayDetails alipay?; + PaymentMethodDetailsIdeal ideal?; + @jsondata:Name {value: "ach_debit"} + PaymentMethodDetailsAchDebit achDebit?; + PaymentMethodDetailsWechat wechat?; + PaymentMethodDetailsEps eps?; + PaymentMethodDetailsKonbini konbini?; + @jsondata:Name {value: "card_present"} + PaymentMethodDetailsCardPresent cardPresent?; + PaymentMethodDetailsSofort sofort?; + PaymentMethodDetailsFpx fpx?; + PaymentMethodDetailsPromptpay promptpay?; + PaymentMethodDetailsAffirm affirm?; + PaymentMethodDetailsMobilepay mobilepay?; + PaymentMethodDetailsBancontact bancontact?; + PaymentMethodDetailsGrabpay grabpay?; + PaymentMethodDetailsKlarna klarna?; + PaymentMethodDetailsP24 p24?; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodDetailsSepaDebit sepaDebit?; + PaymentMethodDetailsCard card?; + PaymentMethodDetailsMultibanco multibanco?; +}; + +public type RenderingPdfParam record { + @jsondata:Name {value: "page_size"} + "a4"|"auto"|"letter" pageSize?; +}; + +public type ShippingOptionParams record { + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; + @jsondata:Name {value: "shipping_rate_data"} + MethodParams shippingRateData?; +}; + +# A billing meter event adjustment is a resource that allows you to cancel a meter event. For example, you might create a billing meter event adjustment to cancel a meter event that was created in error or attached to the wrong customer +public type BillingMeterEventAdjustment record { + # Specifies which event to cancel + BillingMeterResourceBillingMeterEventAdjustmentCancel? cancel?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The name of the meter event. Corresponds with the `event_name` field on a meter + @jsondata:Name {value: "event_name"} + string eventName; + # Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet + "cancel" 'type; + # String representing the object's type. Objects of the same type share the same value + "billing.meter_event_adjustment" 'object; + # The meter event adjustment's status + "complete"|"pending" status; +}; + +# Represents the Queries record for the operation: GetBillingPortalConfigurationsConfiguration +public type GetBillingPortalConfigurationsConfigurationQueries record { + # Specifies which fields in the response should be expanded + GetBillingPortalConfigurationsConfigurationQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type ShippingFailBodyExpandItemsString string; + +# [Tax codes](https://stripe.com/docs/tax/tax-categories) classify goods and services for tax purposes +public type TaxCode record { + # A short name for the tax code + @constraint:String {maxLength: 5000} + string name; + # A detailed description of which types of products the tax code represents + @constraint:String {maxLength: 5000} + string description; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "tax_code" 'object; +}; + +# Restrictions that a Connect Platform has placed on this FinancialAccount +public type TreasuryFinancialAccountsResourcePlatformRestrictions record { + # Restricts all inbound money movement + @jsondata:Name {value: "inbound_flows"} + "restricted"|"unrestricted"? inboundFlows?; + # Restricts all outbound money movement + @jsondata:Name {value: "outbound_flows"} + "restricted"|"unrestricted"? outboundFlows?; +}; + +# Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened +public type MerchantDataSpecs record { + @constraint:String {maxLength: 5000} + string country?; + @jsondata:Name {value: "network_id"} + string networkId?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string name?; + @constraint:String {maxLength: 5000} + string state?; + "ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards" category?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @jsondata:Name {value: "terminal_id"} + string terminalId?; + @constraint:String {maxLength: 5000} + string url?; +}; + +@constraint:String {maxLength: 5000} +public type RefundCancelBodyExpandItemsString string; + +# +public type DisputePaymentMethodDetailsCard record { + # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + @constraint:String {maxLength: 5000} + string brand; + # The card network's specific dispute reason code, which maps to one of Stripe's primary dispute categories to simplify response guidance. The [Network code map](https://stripe.com/docs/disputes/categories#network-code-map) lists all available dispute reason codes by network + @jsondata:Name {value: "network_reason_code"} + string? networkReasonCode?; +}; + +# Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money +public type OutboundPayments1 record { + AccessWithAchDetails ach?; + @jsondata:Name {value: "us_domestic_wire"} + Access usDomesticWire?; +}; + +# An active entitlement describes access to a feature for a customer +public type EntitlementsActiveEntitlement record { + # The [Feature](https://stripe.com/docs/api/entitlements/feature) that the customer is entitled to + string|EntitlementsFeature feature; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # A unique key you provide as your own system identifier. This may be up to 80 characters + @jsondata:Name {value: "lookup_key"} + string lookupKey; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "entitlements.active_entitlement" 'object; +}; + +# +public type GelatoSelfieReportError record { + # A human-readable message giving the reason for the failure. These messages can be shown to your users + string? reason?; + # A short machine-readable string giving the reason for the verification failure + "selfie_document_missing_photo"|"selfie_face_mismatch"|"selfie_manipulated"|"selfie_unverified_other"? code?; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationIncrementBodyExpandItemsString string; + +# +public type PaymentMethodDetailsFpx record { + # Unique transaction id generated by FPX for every request from the merchant + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # The customer's bank. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china` + "affin_bank"|"agrobank"|"alliance_bank"|"ambank"|"bank_islam"|"bank_muamalat"|"bank_of_china"|"bank_rakyat"|"bsn"|"cimb"|"deutsche_bank"|"hong_leong_bank"|"hsbc"|"kfh"|"maybank2e"|"maybank2u"|"ocbc"|"pb_enterprise"|"public_bank"|"rhb"|"standard_chartered"|"uob" bank; +}; + +# +public type PlanTier record { + # Price for the entire tier + @jsondata:Name {value: "flat_amount"} + int? flatAmount?; + # Same as `unit_amount`, but contains a decimal value with at most 12 decimal places + @jsondata:Name {value: "unit_amount_decimal"} + string? unitAmountDecimal?; + # Up to and including to this quantity will be contained in the tier + @jsondata:Name {value: "up_to"} + int? upTo?; + # Per unit price for units relevant to the tier + @jsondata:Name {value: "unit_amount"} + int? unitAmount?; + # Same as `flat_amount`, but contains a decimal value with at most 12 decimal places + @jsondata:Name {value: "flat_amount_decimal"} + string? flatAmountDecimal?; +}; + +@constraint:String {maxLength: 5000} +public type GetFilesQueriesExpandItemsString string; + +public type CapabilitiescapabilityBody record {| + # Specifies which fields in the response should be expanded + CapabilitiescapabilityBodyExpandItemsString[] expand?; + # To request a new capability for an account, pass true. There can be a delay before the requested capability becomes active. If the capability has any activation requirements, the response includes them in the `requirements` arrays. + # + # If a capability isn't permanent, you can remove it from the account by passing false. Some capabilities are permanent after they've been requested. Attempting to remove a permanent capability returns an error + boolean requested?; +|}; + +public type SubscriptionBillingCycleAnchorAnyOf1 "now"|"unchanged"; + +# +public type CheckoutFpxPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type PersonAdditionalTosAcceptance record { + # The Unix timestamp marking when the legal guardian accepted the service agreement + int? date?; + # The IP address from which the legal guardian accepted the service agreement + string? ip?; + # The user agent of the browser from which the legal guardian accepted the service agreement + @jsondata:Name {value: "user_agent"} + string? userAgent?; +}; + +public type IdReturnBody record {| + # Specifies which fields in the response should be expanded + IdReturnBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type GetPaymentLinksPaymentLinkQueriesExpandItemsString string; + +public type IdDeactivateBody record {| + # Specifies which fields in the response should be expanded + IdDeactivateBodyExpandItemsString[] expand?; +|}; + +# +public type TreasuryTransactionsResourceAbstractTransactionResourceStatusTransitions record { + # Timestamp describing when the Transaction changed status to `void` + @jsondata:Name {value: "void_at"} + int? voidAt?; + # Timestamp describing when the Transaction changed status to `posted` + @jsondata:Name {value: "posted_at"} + int? postedAt?; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionDefaultTaxRates1AnyOf1ItemsString string; + +public type InvoicesinvoiceBody record {| + # 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` + record {|string...;|}|"" metadata?; + # Footer to be displayed on the invoice + @constraint:String {maxLength: 5000} + string footer?; + # Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer + @jsondata:Name {value: "shipping_details"} + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string name; string|"" phone?;}|"" shippingDetails?; + # The number of days from which the invoice is created until it is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + # An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard + @constraint:String {maxLength: 1500} + string description?; + Param1 issuer?; + # Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor` + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge. This will be unset if you POST an empty value + @jsondata:Name {value: "transfer_data"} + record {int amount?; string destination;}|"" transferData?; + # Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically + string|"" number?; + # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice + @jsondata:Name {value: "auto_advance"} + boolean autoAdvance?; + # The discounts that will apply to the invoice. Pass an empty string to remove previously-defined discounts + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "payment_settings"} + PaymentSettings1 paymentSettings?; + # The tax rates that will apply to any line item that does not have `tax_rates` set. Pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source + @jsondata:Name {value: "default_source"} + string|"" defaultSource?; + # The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + # Settings for the cost of shipping for this invoice + @jsondata:Name {value: "shipping_cost"} + record {string shipping_rate?; record {record {record {"business_day"|"day"|"hour"|"month"|"week" unit; int value;} maximum?; record {"business_day"|"day"|"hour"|"month"|"week" unit; int value;} minimum?;} delivery_estimate?; string display_name; record {int amount; string currency; record {|record {int amount; "exclusive"|"inclusive"|"unspecified" tax_behavior?;}...;|} currency_options?;} fixed_amount?; record {|string...;|} metadata?; "exclusive"|"inclusive"|"unspecified" tax_behavior?; string tax_code?; "fixed_amount" 'type?;} shipping_rate_data?;}|"" shippingCost?; + # A list of up to 4 custom fields to be displayed on the invoice. If a value for `custom_fields` is specified, the list specified will replace the existing custom field list on this invoice. Pass an empty string to remove previously-defined fields + @jsondata:Name {value: "custom_fields"} + record {string name; string value;}[]|"" customFields?; + # ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + # The date on which payment for this invoice is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices + @jsondata:Name {value: "due_date"} + int dueDate?; + RenderingParam rendering?; + # The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt + @jsondata:Name {value: "effective_at"} + int|"" effectiveAt?; + # Specifies which fields in the response should be expanded + InvoicesinvoiceBodyExpandItemsString[] expand?; + # The account tax IDs associated with the invoice. Only editable when the invoice is a draft + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParam4 automaticTax?; + # Either `charge_automatically` or `send_invoice`. This field can be updated only on `draft` invoices + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees) + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; +|}; + +public type CustomerUpdateUpdatingParam record { + boolean enabled?; + @jsondata:Name {value: "allowed_updates"} + ("address"|"email"|"name"|"phone"|"shipping"|"tax_id")[]|"" allowedUpdates?; +}; + +# +public type IssuingCardholderVerification record { + # An identifying document, either a passport or local ID card + IssuingCardholderIdDocument? document?; +}; + +# Line items that make up the credit note +public type CreditNoteLinesList1 record { + # Details about each object + CreditNoteLineItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetBalanceHistoryQueriesExpandItemsString string; + +# Represents a reader action to process a setup intent +public type TerminalReaderReaderResourceProcessSetupIntentAction record { + # Most recent SetupIntent processed by the reader + @jsondata:Name {value: "setup_intent"} + string|SetupIntent setupIntent; + @jsondata:Name {value: "process_config"} + TerminalReaderReaderResourceProcessSetupConfig processConfig?; + # ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod + @jsondata:Name {value: "generated_card"} + string generatedCard?; +}; + +# Represents the Queries record for the operation: GetInvoiceitemsInvoiceitem +public type GetInvoiceitemsInvoiceitemQueries record { + # Specifies which fields in the response should be expanded + GetInvoiceitemsInvoiceitemQueriesExpandItemsString[] expand?; +}; + +# Settings related to Outbound Payments features on a Financial Account +public type TreasuryFinancialAccountsResourceOutboundPayments record { + TreasuryFinancialAccountsResourceAchToggleSettings ach?; + @jsondata:Name {value: "us_domestic_wire"} + TreasuryFinancialAccountsResourceToggleSettings usDomesticWire?; +}; + +# +public type PaymentIntentNextActionPromptpayDisplayQrCode record { + # The PNG path used to render the QR code, can be used as the source in an HTML img tag + @jsondata:Name {value: "image_url_png"} + string imageUrlPng; + # The raw data string used to generate QR code, it should be used together with QR code library + @constraint:String {maxLength: 5000} + string data; + # The URL to the hosted PromptPay instructions page, which allows customers to view the PromptPay QR code + @jsondata:Name {value: "hosted_instructions_url"} + string hostedInstructionsUrl; + # The SVG path used to render the QR code, can be used as the source in an HTML img tag + @jsondata:Name {value: "image_url_svg"} + string imageUrlSvg; +}; + +@constraint:String {maxLength: 5000} +public type AccountDisconnectBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetQuotesQuoteLineItemsQueriesExpandItemsString string; + +# Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) +public type AmountDetailsSpecs record { + @jsondata:Name {value: "cashback_amount"} + int cashbackAmount?; + @jsondata:Name {value: "atm_fee"} + int atmFee?; +}; + +# SPEI Records contain Mexico bank account details per the SPEI format +public type FundingInstructionsBankTransferSpeiRecord record { + # The three-digit bank code + @jsondata:Name {value: "bank_code"} + string bankCode; + # The short banking institution name + @jsondata:Name {value: "bank_name"} + string bankName; + # The CLABE number + @constraint:String {maxLength: 5000} + string clabe; +}; + +public type CompanyOwnershipDeclaration record { + int date?; + string ip?; + @jsondata:Name {value: "user_agent"} + string userAgent?; +}; + +public type AuthorizationControlsParamV2AllowedcategoriesItemsString "ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards"; + +public type PayoutCancelBody record {| + # Specifies which fields in the response should be expanded + PayoutCancelBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type FinancialAccountFeaturesBodyExpandItemsString string; + +# +public type PaymentMethodDetailsP24 record { + # Unique reference for this Przelewy24 payment + string? reference?; + # The customer's bank. Can be one of `ing`, `citi_handlowy`, `tmobile_usbugi_bankowe`, `plus_bank`, `etransfer_pocztowy24`, `banki_spbdzielcze`, `bank_nowy_bfg_sa`, `getin_bank`, `velobank`, `blik`, `noble_pay`, `ideabank`, `envelobank`, `santander_przelew24`, `nest_przelew`, `mbank_mtransfer`, `inteligo`, `pbac_z_ipko`, `bnp_paribas`, `credit_agricole`, `toyota_bank`, `bank_pekao_sa`, `volkswagen_bank`, `bank_millennium`, `alior_bank`, or `boz` + "alior_bank"|"bank_millennium"|"bank_nowy_bfg_sa"|"bank_pekao_sa"|"banki_spbdzielcze"|"blik"|"bnp_paribas"|"boz"|"citi_handlowy"|"credit_agricole"|"envelobank"|"etransfer_pocztowy24"|"getin_bank"|"ideabank"|"ing"|"inteligo"|"mbank_mtransfer"|"nest_przelew"|"noble_pay"|"pbac_z_ipko"|"plus_bank"|"santander_przelew24"|"tmobile_usbugi_bankowe"|"toyota_bank"|"velobank"|"volkswagen_bank"? bank?; + # Owner's verified full name. Values are verified or provided by Przelewy24 directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated. + # Przelewy24 rarely provides this information so the attribute is usually empty + @jsondata:Name {value: "verified_name"} + string? verifiedName?; +}; + +@constraint:String {maxLength: 5000} +public type FinancialAccountsfinancialAccountBodyExpandItemsString string; + +public type SubscriptionssubscriptionExposedIdBody2 record {| + # 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` + record {|string...;|}|"" metadata?; + # Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + # + # Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + # + # Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + # + # Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more + @jsondata:Name {value: "payment_behavior"} + "allow_incomplete"|"default_incomplete"|"error_if_incomplete"|"pending_if_incomplete" paymentBehavior?; + # Boolean indicating whether this subscription should cancel at the end of the current period + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + # Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice` + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + string|"" description?; + @jsondata:Name {value: "cancellation_details"} + CancellationDetailsParam cancellationDetails?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions) + @jsondata:Name {value: "application_fee_percent"} + decimal|"" applicationFeePercent?; + # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](/billing/subscriptions/pause-payment) + @jsondata:Name {value: "pause_collection"} + record {"keep_as_draft"|"mark_uncollectible"|"void" behavior; int resumes_at?;}|"" pauseCollection?; + # If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value + @jsondata:Name {value: "transfer_data"} + record {decimal amount_percent?; string destination;}|"" transferData?; + # The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + # Indicates if a customer is on or off-session while an invoice payment is attempted + @jsondata:Name {value: "off_session"} + boolean offSession?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingsParam1 invoiceSettings?; + @jsondata:Name {value: "payment_settings"} + PaymentSettings paymentSettings?; + # The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. Pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_source"} + string|"" defaultSource?; + # The account on behalf of which to charge, for each of the subscription's invoices + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + # The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + # ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor` + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + # Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval + @jsondata:Name {value: "pending_invoice_item_interval"} + record {"day"|"month"|"week"|"year" interval; int interval_count?;}|"" pendingInvoiceItemInterval?; + @jsondata:Name {value: "trial_settings"} + TrialSettingsConfig1 trialSettings?; + # Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle) + @jsondata:Name {value: "billing_cycle_anchor"} + "now"|"unchanged" billingCycleAnchor?; + # Specifies which fields in the response should be expanded + SubscriptionssubscriptionExposedIdBody2ExpandItemsString[] expand?; + # Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_from_plan"} + boolean trialFromPlan?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig4 automaticTax?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + # A list of up to 20 subscription items, each with an attached price + SubscriptionItemUpdateParams[] items?; + # If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#upcoming_invoice) endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations + @jsondata:Name {value: "proration_date"} + int prorationDate?; + # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period + @jsondata:Name {value: "cancel_at"} + int|"" cancelAt?; +|}; + +public type SubscriptionssubscriptionExposedIdBody3 record {| + # Specifies which fields in the response should be expanded + SubscriptionssubscriptionExposedIdBody3ExpandItemsString[] expand?; + # Will generate a final invoice that invoices for any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true` + @jsondata:Name {value: "invoice_now"} + boolean invoiceNow?; + @jsondata:Name {value: "cancellation_details"} + CancellationDetailsParam cancellationDetails?; + # Will generate a proration invoice item that credits remaining unused time until the subscription period end. Defaults to `false` + boolean prorate?; +|}; + +# A `Transfer` object is created when you move funds between Stripe accounts as +# part of Connect. +# +# Before April 6, 2017, transfers also represented movement of funds from a +# Stripe account to a card or bank account. This behavior has since been split +# out into a [Payout](https://stripe.com/docs/api#payout_object) object, with corresponding payout endpoints. For more +# information, read about the +# [transfer/payout split](https://stripe.com/docs/transfer-payout-split). +# +# Related guide: [Creating separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers) +public type Transfer record { + TransferReversalList1 reversals; + # Balance transaction that describes the impact of this transfer on your account balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # Amount in cents (or local equivalent) to be transferred + int amount; + # 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 + record {|string...;|} metadata; + # A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details + @jsondata:Name {value: "transfer_group"} + string? transferGroup?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time that this record of the transfer was first created + int created; + # ID of the Stripe account the transfer was sent to + string|Account? destination?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance + @jsondata:Name {value: "source_transaction"} + string|Charge? sourceTransaction?; + # The source balance this transfer came from. One of `card`, `fpx`, or `bank_account` + @jsondata:Name {value: "source_type"} + string sourceType?; + # Amount in cents (or local equivalent) reversed (can be less than the amount attribute on the transfer if a partial reversal was issued) + @jsondata:Name {value: "amount_reversed"} + int amountReversed; + # If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer + @jsondata:Name {value: "destination_payment"} + string|Charge destinationPayment?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false + boolean reversed; + # String representing the object's type. Objects of the same type share the same value + "transfer" 'object; +}; + +public type SubscriptionssubscriptionExposedIdBody1 record {| + # Specifies which fields in the response should be expanded + SubscriptionssubscriptionExposedIdBody1ExpandItemsString[] expand?; + # Can be set to `true` if `at_period_end` is not set to `true`. Will generate a final invoice that invoices for any un-invoiced metered usage and new/pending proration invoice items + @jsondata:Name {value: "invoice_now"} + boolean invoiceNow?; + # Can be set to `true` if `at_period_end` is not set to `true`. Will generate a proration invoice item that credits remaining unused time until the subscription period end + boolean prorate?; +|}; + +@constraint:String {maxLength: 5000} +public type InvoicePayBodyExpandItemsString string; + +# A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes. +# +# Related guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules) +public type SubscriptionSchedule record { + # 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 + record {|string...;|}? metadata?; + # ID of the test clock this subscription schedule belongs to + @jsondata:Name {value: "test_clock"} + string|TestHelpersTestClock? testClock?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Object representing the start and end dates for the current phase of the subscription schedule, if it is `active` + @jsondata:Name {value: "current_phase"} + SubscriptionScheduleCurrentPhase? currentPhase?; + # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription + @jsondata:Name {value: "end_behavior"} + "cancel"|"none"|"release"|"renew" endBehavior; + @jsondata:Name {value: "default_settings"} + SubscriptionSchedulesResourceDefaultSettings defaultSettings; + # Time at which the subscription schedule was released. Measured in seconds since the Unix epoch + @jsondata:Name {value: "released_at"} + int? releasedAt?; + # ID of the subscription managed by the subscription schedule + string|Subscription? subscription?; + # ID of the subscription once managed by the subscription schedule (if it is released) + @jsondata:Name {value: "released_subscription"} + string? releasedSubscription?; + # Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch + @jsondata:Name {value: "completed_at"} + int? completedAt?; + # ID of the Connect Application that created the schedule + string|Application|DeletedApplication? application?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Configuration for the subscription schedule's phases + SubscriptionSchedulePhaseConfiguration[] phases; + # ID of the customer who owns the subscription schedule + string|Customer|DeletedCustomer customer; + # String representing the object's type. Objects of the same type share the same value + "subscription_schedule" 'object; + # The present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our [behavior guide](https://stripe.com/docs/billing/subscriptions/subscription-schedules) + "active"|"canceled"|"completed"|"not_started"|"released" status; +}; + +# +public type CheckoutGiropayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type IdSucceedBodyExpandItemsString string; + +# +public type IssuingCardAuthorizationControls record { + # Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories` + @jsondata:Name {value: "allowed_categories"} + ("ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards")[]? allowedCategories?; + # Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control + @jsondata:Name {value: "blocked_merchant_countries"} + IssuingCardAuthorizationControlsBlockedmerchantcountriesItemsString[]? blockedMerchantCountries?; + # Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories` + @jsondata:Name {value: "blocked_categories"} + ("ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards")[]? blockedCategories?; + # Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and _that_ card's `replacement_for` card, up the chain) + @jsondata:Name {value: "spending_limits"} + IssuingCardSpendingLimit[]? spendingLimits?; + # Currency of the amounts within `spending_limits`. Always the same as the currency of the card + @jsondata:Name {value: "spending_limits_currency"} + string? spendingLimitsCurrency?; + # Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control + @jsondata:Name {value: "allowed_merchant_countries"} + IssuingCardAuthorizationControlsAllowedmerchantcountriesItemsString[]? allowedMerchantCountries?; +}; + +# Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information +public type RadarRadarOptions record { + # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments + @constraint:String {maxLength: 5000} + string session?; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationCaptureBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetMandatesMandate +public type GetMandatesMandateQueries record { + # Specifies which fields in the response should be expanded + GetMandatesMandateQueriesExpandItemsString[] expand?; +}; + +public type MerchantPostalAddress record { + @constraint:String {maxLength: 5000} + string country; + string|"" city?; + string|"" state?; + @jsondata:Name {value: "postal_code"} + string|"" postalCode?; + string|"" line2?; + string|"" line1?; +}; + +# +public type PaypalSellerProtection record { + # An array of conditions that are covered for the transaction, if applicable + @jsondata:Name {value: "dispute_categories"} + ("fraudulent"|"product_not_received")[]? disputeCategories?; + # Indicates whether the transaction is eligible for PayPal's seller protection + "eligible"|"not_eligible"|"partially_eligible" status; +}; + +# +public type BillingMeterResourceBillingMeterValue record { + # The key in the meter event payload to use as the value for this meter + @jsondata:Name {value: "event_payload_key"} + string eventPayloadKey; +}; + +# A Configurations object represents how features should be configured for terminal readers +public type TerminalConfiguration record { + # Whether this Configuration is the default for your account + @jsondata:Name {value: "is_account_default"} + boolean? isAccountDefault?; + TerminalConfigurationConfigurationResourceOfflineConfig offline?; + TerminalConfigurationConfigurationResourceTipping tipping?; + @jsondata:Name {value: "verifone_p400"} + TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig verifoneP400?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "bbpos_wisepos_e"} + TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig bbposWiseposE?; + # String indicating the name of the Configuration object, set by the user + string? name?; + @jsondata:Name {value: "reboot_window"} + TerminalConfigurationConfigurationResourceRebootWindow rebootWindow?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "stripe_s700"} + TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig stripeS700?; + # String representing the object's type. Objects of the same type share the same value + "terminal.configuration" 'object; +}; + +# +public type QuotesResourceFromQuote record { + # The quote that was cloned + string|Quote quote; + # Whether this quote is a revision of a different quote + @jsondata:Name {value: "is_revision"} + boolean isRevision; +}; + +# When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links +public type CustomUnitAmount1 record { + int maximum?; + int preset?; + int minimum?; + boolean enabled; +}; + +public type CustomUnitAmount2 record { + int maximum?; + int preset?; + int minimum?; + boolean enabled; +}; + +# Represents the Queries record for the operation: GetIssuingSettlementsSettlement +public type GetIssuingSettlementsSettlementQueries record { + # Specifies which fields in the response should be expanded + GetIssuingSettlementsSettlementQueriesExpandItemsString[] expand?; +}; + +public type OrderItemSpecs record { + @constraint:String {maxLength: 5000} + string parent?; + int amount?; + int quantity?; + @constraint:String {maxLength: 1000} + string description?; + string currency?; + "discount"|"shipping"|"sku"|"tax" 'type?; +}; + +@constraint:String {maxLength: 5000} +public type IntentConfirmBodyExpandItemsString string; + +# +public type MandateAcssDebit record { + # Payment schedule for the mandate + @jsondata:Name {value: "payment_schedule"} + "combined"|"interval"|"sporadic" paymentSchedule; + # List of Stripe products where this mandate can be selected automatically + @jsondata:Name {value: "default_for"} + ("invoice"|"subscription")[] defaultFor?; + # Transaction type of the mandate + @jsondata:Name {value: "transaction_type"} + "business"|"personal" transactionType; + # Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined' + @jsondata:Name {value: "interval_description"} + string? intervalDescription?; +}; + +# +public type DeletedCustomer record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "customer" 'object; +}; + +public type PaymentMethodConfigurationsconfigurationBody record {| + PaymentMethodParam32 paynow?; + PaymentMethodParam12 blik?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodParam2 acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodParam10 bacsDebit?; + PaymentMethodParam13 boleto?; + PaymentMethodParam24 jcb?; + PaymentMethodParam27 link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodParam6 amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodParam9 auBecsDebit?; + PaymentMethodParam30 oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodParam4 afterpayClearpay?; + PaymentMethodParam38 swish?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam39 usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodParam17 customerBalance?; + PaymentMethodParam16 cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodParam40 wechatPay?; + PaymentMethodParam33 paypal?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodParam35 revolutPay?; + PaymentMethodParam20 giropay?; + PaymentMethodParam41 zip?; + PaymentMethodParam5 alipay?; + PaymentMethodParam23 ideal?; + @jsondata:Name {value: "google_pay"} + PaymentMethodParam21 googlePay?; + # Whether the configuration can be used for new payments + boolean active?; + PaymentMethodParam18 eps?; + @jsondata:Name {value: "apple_pay_later"} + PaymentMethodParam8 applePayLater?; + PaymentMethodParam26 konbini?; + PaymentMethodParam37 sofort?; + PaymentMethodParam19 fpx?; + PaymentMethodParam34 promptpay?; + PaymentMethodParam3 affirm?; + @jsondata:Name {value: "apple_pay"} + PaymentMethodParam7 applePay?; + PaymentMethodParam28 mobilepay?; + PaymentMethodParam11 bancontact?; + # Specifies which fields in the response should be expanded + PaymentMethodConfigurationsconfigurationBodyExpandItemsString[] expand?; + PaymentMethodParam22 grabpay?; + PaymentMethodParam25 klarna?; + PaymentMethodParam31 p24?; + # Configuration name + @constraint:String {maxLength: 100} + string name?; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodParam36 sepaDebit?; + PaymentMethodParam14 card?; + @jsondata:Name {value: "cartes_bancaires"} + PaymentMethodParam15 cartesBancaires?; + PaymentMethodParam29 multibanco?; +|}; + +# +public type PaymentMethodDetailsInteracPresent record { + # How card details were read in this transaction + @jsondata:Name {value: "read_method"} + "contact_emv"|"contactless_emv"|"contactless_magstripe_mode"|"magnetic_stripe_fallback"|"magnetic_stripe_track2"? readMethod?; + # 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 + string? country?; + # The last four digits of the card + string? last4?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + string? funding?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + # ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod + @jsondata:Name {value: "generated_card"} + string? generatedCard?; + # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay + @jsondata:Name {value: "cardholder_name"} + string? cardholderName?; + # Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? network?; + # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip + @jsondata:Name {value: "preferred_locales"} + PaymentMethodDetailsInteracPresentPreferredlocalesItemsString[]? preferredLocales?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # A collection of fields required to be displayed on receipts. Only required for EMV transactions + PaymentMethodDetailsInteracPresentReceipt? receipt?; + # Authorization response cryptogram + @jsondata:Name {value: "emv_auth_data"} + string? emvAuthData?; + # Card brand. Can be `interac`, `mastercard` or `visa` + string? brand?; +}; + +# +public type PaymentIntentPaymentMethodOptionsLink record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +# Represents the Queries record for the operation: GetAppsSecretsFind +public type GetAppsSecretsFindQueries record { + # Specifies which fields in the response should be expanded + GetAppsSecretsFindQueriesExpandItemsString[] expand?; + # Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user + ScopeParam2 scope; + # A name for the secret that's unique within the scope + @constraint:String {maxLength: 5000} + string name; +}; + +# The line items representing what is being sold +public type PaymentLinksResourceListLineItems1 record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type LocalLeaseTax record { + @constraint:String {maxLength: 5000} + string jurisdiction; +}; + +# A payment link is a shareable URL that will take your customers to a hosted payment page. A payment link can be shared and used multiple times. +# +# When a customer opens a payment link it will open a new [checkout session](https://stripe.com/docs/api/checkout/sessions) to render the payment page. You can use [checkout session events](https://stripe.com/docs/api/events/types#event_types-checkout.session.completed) to track payments through payment links. +# +# Related guide: [Payment Links API](https://stripe.com/docs/payment-links) +public type PaymentLink record { + # Configuration for collecting a payment method during checkout. Defaults to `always` + @jsondata:Name {value: "payment_method_collection"} + "always"|"if_required" paymentMethodCollection; + # The custom message to be displayed to a customer when a payment link is no longer active + @jsondata:Name {value: "inactive_message"} + string? inactiveMessage?; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "after_completion"} + PaymentLinksResourceAfterCompletion afterCompletion; + @jsondata:Name {value: "line_items"} + PaymentLinksResourceListLineItems1 lineItems?; + # This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account + @jsondata:Name {value: "application_fee_percent"} + decimal? applicationFeePercent?; + # The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to + @jsondata:Name {value: "transfer_data"} + PaymentLinksResourceTransferData? transferData?; + # When set, provides configuration to gather active consent from customers + @jsondata:Name {value: "consent_collection"} + PaymentLinksResourceConsentCollection? consentCollection?; + # When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data` + @jsondata:Name {value: "subscription_data"} + PaymentLinksResourceSubscriptionData? subscriptionData?; + # Whether user redeemable promotion codes are enabled + @jsondata:Name {value: "allow_promotion_codes"} + boolean allowPromotionCodes; + # Configuration for Customer creation during checkout + @jsondata:Name {value: "customer_creation"} + "always"|"if_required" customerCreation; + @jsondata:Name {value: "phone_number_collection"} + PaymentLinksResourcePhoneNumberCollection phoneNumberCollection; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Configuration for collecting the customer's billing address. Defaults to `auto` + @jsondata:Name {value: "billing_address_collection"} + "auto"|"required" billingAddressCollection; + # Configuration for creating invoice for payment mode payment links + @jsondata:Name {value: "invoice_creation"} + PaymentLinksResourceInvoiceCreation? invoiceCreation?; + # The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Configuration for collecting the customer's shipping address + @jsondata:Name {value: "shipping_address_collection"} + PaymentLinksResourceShippingAddressCollection? shippingAddressCollection?; + # Collect additional information from your customer using custom fields. Up to 3 fields are supported + @jsondata:Name {value: "custom_fields"} + PaymentLinksResourceCustomFields[] customFields; + # The list of payment method types that customers can use. When `null`, Stripe will dynamically show relevant payment methods you've enabled in your [payment method settings](https://dashboard.stripe.com/settings/payment_methods) + @jsondata:Name {value: "payment_method_types"} + ("affirm"|"afterpay_clearpay"|"alipay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip")[]? paymentMethodTypes?; + # Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated + boolean active; + # Indicates the parameters to be passed to PaymentIntent creation during checkout + @jsondata:Name {value: "payment_intent_data"} + PaymentLinksResourcePaymentIntentData? paymentIntentData?; + # Settings that restrict the usage of a payment link + PaymentLinksResourceRestrictions? restrictions?; + # The shipping rate options applied to the session + @jsondata:Name {value: "shipping_options"} + PaymentLinksResourceShippingOption[] shippingOptions; + # The public URL that can be shared with customers + @constraint:String {maxLength: 5000} + string url; + # Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button + @jsondata:Name {value: "submit_type"} + "auto"|"book"|"donate"|"pay" submitType; + @jsondata:Name {value: "automatic_tax"} + PaymentLinksResourceAutomaticTax automaticTax; + # The ID of the Connect application that created the Payment Link + string|Application|DeletedApplication? application?; + @jsondata:Name {value: "tax_id_collection"} + PaymentLinksResourceTaxIdCollection taxIdCollection; + @jsondata:Name {value: "custom_text"} + PaymentLinksResourceCustomText customText; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account + @jsondata:Name {value: "application_fee_amount"} + int? applicationFeeAmount?; + # String representing the object's type. Objects of the same type share the same value + "payment_link" 'object; +}; + +public type AuthorizationFinalizeAmountBody record {| + FleetSpecs fleet?; + # Specifies which fields in the response should be expanded + AuthorizationFinalizeAmountBodyExpandItemsString[] expand?; + FuelSpecs fuel?; + # The final authorization amount that will be captured by the merchant. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "final_amount"} + int finalAmount; +|}; + +# +public type CheckoutOxxoPaymentMethodOptions record { + # The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time + @jsondata:Name {value: "expires_after_days"} + int expiresAfterDays; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type EuBankTransferParams record { + @constraint:String {maxLength: 5000} + string country; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingTokensQueriesExpandItemsString string; + +# Configuration overrides +public type ProcessConfig record { + TippingConfig tipping?; + @jsondata:Name {value: "enable_customer_cancellation"} + boolean enableCustomerCancellation?; + @jsondata:Name {value: "skip_tipping"} + boolean skipTipping?; +}; + +# +public type BalanceDetail record { + # Funds that are available for use + BalanceAmount[] available; +}; + +@constraint:String {maxLength: 5000} +public type CustomersBodyExpandItemsString string; + +public type ConnectJsAccountTokenCompanySpecs record { + LegalEntityAndKycAddressSpecs address?; + @jsondata:Name {value: "name_kanji"} + string nameKanji?; + @jsondata:Name {value: "ownership_declaration"} + CompanyOwnershipDeclaration ownershipDeclaration?; + @jsondata:Name {value: "registration_number"} + string registrationNumber?; + @jsondata:Name {value: "executives_provided"} + boolean executivesProvided?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs addressKana?; + @jsondata:Name {value: "export_purpose_code"} + string exportPurposeCode?; + @jsondata:Name {value: "ownership_declaration_shown_and_signed"} + boolean ownershipDeclarationShownAndSigned?; + @jsondata:Name {value: "directors_provided"} + boolean directorsProvided?; + ""|"free_zone_establishment"|"free_zone_llc"|"government_instrumentality"|"governmental_unit"|"incorporated_non_profit"|"incorporated_partnership"|"limited_liability_partnership"|"llc"|"multi_member_llc"|"private_company"|"private_corporation"|"private_partnership"|"public_company"|"public_corporation"|"public_partnership"|"registered_charity"|"single_member_llc"|"sole_establishment"|"sole_proprietorship"|"tax_exempt_government_instrumentality"|"unincorporated_association"|"unincorporated_non_profit"|"unincorporated_partnership" structure?; + @jsondata:Name {value: "tax_id"} + string taxId?; + @jsondata:Name {value: "tax_id_registrar"} + string taxIdRegistrar?; + @constraint:String {maxLength: 5000} + string phone?; + @jsondata:Name {value: "export_license_id"} + string exportLicenseId?; + @constraint:String {maxLength: 100} + string name?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs addressKanji?; + @jsondata:Name {value: "vat_id"} + string vatId?; + @jsondata:Name {value: "name_kana"} + string nameKana?; + VerificationSpecs verification?; + @jsondata:Name {value: "owners_provided"} + boolean ownersProvided?; +}; + +@constraint:String {maxLength: 5000} +public type TransactionsCreateUnlinkedRefundBodyExpandItemsString string; + +# +public type CheckoutMultibancoPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type CheckoutPaypalPaymentMethodOptions record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID + string? reference?; + # Preferred locale of the PayPal checkout page that the customer is redirected to + @jsondata:Name {value: "preferred_locale"} + string? preferredLocale?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +# Represents the Queries record for the operation: GetCoupons +public type GetCouponsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCouponsQueriesExpandItemsString[] expand?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created6 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Represents the Queries record for the operation: GetCreditNotesId +public type GetCreditNotesIdQueries record { + # Specifies which fields in the response should be expanded + GetCreditNotesIdQueriesExpandItemsString[] expand?; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceFundedTransaction record { + @jsondata:Name {value: "bank_transfer"} + CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransfer bankTransfer; +}; + +public type PaymentPagesCheckoutSessionInvoiceSettingsAccountTaxIds AccountTaxIdsAnyOf14|TaxId|DeletedTaxId; + +# +public type PaymentMethodDetailsStripeAccount record { +}; + +# +public type DestinationDetailsUnimplemented record { +}; + +# Tax rates can be applied to [invoices](https://stripe.com/docs/billing/invoices/tax-rates), [subscriptions](https://stripe.com/docs/billing/subscriptions/taxes) and [Checkout Sessions](https://stripe.com/docs/payments/checkout/set-up-a-subscription#tax-rates) to collect tax. +# +# Related guide: [Tax rates](https://stripe.com/docs/billing/taxes/tax-rates) +public type TaxRate record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + string? country?; + # This specifies if the tax rate is inclusive or exclusive + boolean inclusive; + # 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 + record {|string...;|}? metadata?; + # The level of the jurisdiction that imposes this tax rate. Will be `null` for manually defined tax rates + @jsondata:Name {value: "jurisdiction_level"} + "city"|"country"|"county"|"district"|"multiple"|"state"? jurisdictionLevel?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, + # this percentage reflects the rate actually used to calculate tax based on the product's taxability + # and whether the user is registered to collect taxes in the corresponding jurisdiction + @jsondata:Name {value: "effective_percentage"} + decimal? effectivePercentage?; + # The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice + string? jurisdiction?; + # Defaults to `true`. When set to `false`, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set + boolean active; + # An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers + string? description?; + # The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page + @jsondata:Name {value: "display_name"} + string displayName; + # The high-level tax type, such as `vat` or `sales_tax` + @jsondata:Name {value: "tax_type"} + "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat"? taxType?; + # Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions + decimal percentage; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States + string? state?; + # String representing the object's type. Objects of the same type share the same value + "tax_rate" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetProductsQueriesIdsItemsString string; + +public type CustomerSessionsBody record {| + Components components; + # Specifies which fields in the response should be expanded + CustomerSessionsBodyExpandItemsString[] expand?; + # The ID of an existing customer for which to create the Customer Session + @constraint:String {maxLength: 5000} + string customer; +|}; + +# Represents the Queries record for the operation: GetPaymentMethodConfigurationsConfiguration +public type GetPaymentMethodConfigurationsConfigurationQueries record { + # Specifies which fields in the response should be expanded + GetPaymentMethodConfigurationsConfigurationQueriesExpandItemsString[] expand?; +}; + +public type AppsSecretsBody record {| + # Specifies which fields in the response should be expanded + AppsSecretsBodyExpandItemsString[] expand?; + # The Unix timestamp for the expiry time of the secret, after which the secret deletes + @jsondata:Name {value: "expires_at"} + int expiresAt?; + # The plaintext secret value to be stored + @constraint:String {maxLength: 5000} + string payload; + ScopeParam1 scope; + # A name for the secret that's unique within the scope + @constraint:String {maxLength: 5000} + string name; +|}; + +public type CurrencyOptionUpdate record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + int amount?; +}; + +public type AllPeopleRelationshipSpecs1 record { + boolean owner?; + boolean executive?; + @jsondata:Name {value: "legal_guardian"} + boolean legalGuardian?; + boolean director?; + boolean representative?; +}; + +@constraint:String {maxLength: 5000} +public type GetReportingReportRunsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTreasuryCreditReversalsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type SubscriptionssubscriptionExposedIdBody2ExpandItemsString string; + +public type Param record { + "account"|"self" 'type; + string account?; +}; + +@constraint:String {maxLength: 5000} +public type AccountExternalAccountsBodyExpandItemsString string; + +# +public type PaymentMethodDetailsAfterpayClearpay record { + # Order identifier shown to the merchant in Afterpay’s online portal + string? reference?; + # The Afterpay order ID associated with this payment intent + @jsondata:Name {value: "order_id"} + string? orderId?; +}; + +public type DocumentsParam5Files FilesAnyOf14|FilesFilesAnyOf142; + +# +public type ClimateRemovalsOrdersList record { + ClimateOrder[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/climate/orders`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SigmaScheduledQueryRunError record { + # Information about the run failure + @constraint:String {maxLength: 5000} + string message; +}; + +# +public type Address record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + string? country?; + # City, district, suburb, town, or village + string? city?; + # State, county, province, or region + string? state?; + # ZIP or postal code + @jsondata:Name {value: "postal_code"} + string? postalCode?; + # Address line 2 (e.g., apartment, suite, unit, or building) + string? line2?; + # Address line 1 (e.g., street, PO Box, or company name) + string? line1?; +}; + +# Tokenization is the process Stripe uses to collect sensitive card or bank +# account details, or personally identifiable information (PII), directly from +# your customers in a secure manner. A token representing this information is +# returned to your server to use. Use our +# [recommended payments integrations](https://stripe.com/docs/payments) to perform this process +# on the client-side. This guarantees that no sensitive card data touches your server, +# and allows your integration to operate in a PCI-compliant way. +# +# If you can't use client-side tokenization, you can also create tokens using +# the API with either your publishable or secret API key. If +# your integration uses this method, you're responsible for any PCI compliance +# that it might require, and you must keep your secret API key safe. Unlike with +# client-side tokenization, your customer's information isn't sent directly to +# Stripe, so we can't determine how it's handled or stored. +# +# You can't store or use tokens more than once. To store card or bank account +# information for later use, create [Customer](https://stripe.com/docs/api#customers) +# objects or [External accounts](/api#external_accounts). +# [Radar](https://stripe.com/docs/radar), our integrated solution for automatic fraud protection, +# performs best with integrations that use client-side tokenization +public type Token record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # IP address of the client that generates the token + @jsondata:Name {value: "client_ip"} + string? clientIp?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Determines if you have already used this token (you can only use tokens once) + boolean used; + # Type of the token: `account`, `bank_account`, `card`, or `pii` + @constraint:String {maxLength: 5000} + string 'type; + Card card?; + @jsondata:Name {value: "bank_account"} + BankAccount bankAccount?; + # String representing the object's type. Objects of the same type share the same value + "token" 'object; +}; + +@constraint:String {maxLength: 5000} +public type TreasuryFinancialAccountsBodyExpandItemsString string; + +# +public type IssuingDisputeEvidence record { + IssuingDisputeCanceledEvidence canceled?; + # The reason for filing the dispute. Its value will match the field containing the evidence + "canceled"|"duplicate"|"fraudulent"|"merchandise_not_as_described"|"no_valid_authorization"|"not_received"|"other"|"service_not_as_described" reason; + IssuingDisputeOtherEvidence other?; + @jsondata:Name {value: "service_not_as_described"} + IssuingDisputeServiceNotAsDescribedEvidence serviceNotAsDescribed?; + @jsondata:Name {value: "no_valid_authorization"} + IssuingDisputeNoValidAuthorizationEvidence noValidAuthorization?; + IssuingDisputeDuplicateEvidence duplicate?; + @jsondata:Name {value: "not_received"} + IssuingDisputeNotReceivedEvidence notReceived?; + @jsondata:Name {value: "merchandise_not_as_described"} + IssuingDisputeMerchandiseNotAsDescribedEvidence merchandiseNotAsDescribed?; + IssuingDisputeFraudulentEvidence fraudulent?; +}; + +@constraint:String {maxLength: 5000} +public type GetFinancialConnectionsAccountsAccountOwnersQueriesExpandItemsString string; + +public type AuthorizationExpireBody record {| + # Specifies which fields in the response should be expanded + AuthorizationExpireBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type AppsSecretsBodyExpandItemsString string; + +public type BillingPortalConfigurationsBody record {| + FeaturesCreationParam features; + # The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session + @jsondata:Name {value: "default_return_url"} + string|"" defaultReturnUrl?; + # Specifies which fields in the response should be expanded + BillingPortalConfigurationsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "login_page"} + LoginPageCreateParam loginPage?; + @jsondata:Name {value: "business_profile"} + BusinessProfileCreateParam businessProfile; +|}; + +@constraint:String {maxLength: 5000} +public type GetIssuingCardsCardQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type CustomerFundCashBalanceBodyExpandItemsString string; + +# +public type PaymentLinksResourceShippingAddressCollection record { + # An array of two-letter ISO country codes representing which countries Checkout should provide as options for shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI` + @jsondata:Name {value: "allowed_countries"} + ("AC"|"AD"|"AE"|"AF"|"AG"|"AI"|"AL"|"AM"|"AO"|"AQ"|"AR"|"AT"|"AU"|"AW"|"AX"|"AZ"|"BA"|"BB"|"BD"|"BE"|"BF"|"BG"|"BH"|"BI"|"BJ"|"BL"|"BM"|"BN"|"BO"|"BQ"|"BR"|"BS"|"BT"|"BV"|"BW"|"BY"|"BZ"|"CA"|"CD"|"CF"|"CG"|"CH"|"CI"|"CK"|"CL"|"CM"|"CN"|"CO"|"CR"|"CV"|"CW"|"CY"|"CZ"|"DE"|"DJ"|"DK"|"DM"|"DO"|"DZ"|"EC"|"EE"|"EG"|"EH"|"ER"|"ES"|"ET"|"FI"|"FJ"|"FK"|"FO"|"FR"|"GA"|"GB"|"GD"|"GE"|"GF"|"GG"|"GH"|"GI"|"GL"|"GM"|"GN"|"GP"|"GQ"|"GR"|"GS"|"GT"|"GU"|"GW"|"GY"|"HK"|"HN"|"HR"|"HT"|"HU"|"ID"|"IE"|"IL"|"IM"|"IN"|"IO"|"IQ"|"IS"|"IT"|"JE"|"JM"|"JO"|"JP"|"KE"|"KG"|"KH"|"KI"|"KM"|"KN"|"KR"|"KW"|"KY"|"KZ"|"LA"|"LB"|"LC"|"LI"|"LK"|"LR"|"LS"|"LT"|"LU"|"LV"|"LY"|"MA"|"MC"|"MD"|"ME"|"MF"|"MG"|"MK"|"ML"|"MM"|"MN"|"MO"|"MQ"|"MR"|"MS"|"MT"|"MU"|"MV"|"MW"|"MX"|"MY"|"MZ"|"NA"|"NC"|"NE"|"NG"|"NI"|"NL"|"NO"|"NP"|"NR"|"NU"|"NZ"|"OM"|"PA"|"PE"|"PF"|"PG"|"PH"|"PK"|"PL"|"PM"|"PN"|"PR"|"PS"|"PT"|"PY"|"QA"|"RE"|"RO"|"RS"|"RU"|"RW"|"SA"|"SB"|"SC"|"SE"|"SG"|"SH"|"SI"|"SJ"|"SK"|"SL"|"SM"|"SN"|"SO"|"SR"|"SS"|"ST"|"SV"|"SX"|"SZ"|"TA"|"TC"|"TD"|"TF"|"TG"|"TH"|"TJ"|"TK"|"TL"|"TM"|"TN"|"TO"|"TR"|"TT"|"TV"|"TW"|"TZ"|"UA"|"UG"|"US"|"UY"|"UZ"|"VA"|"VC"|"VE"|"VG"|"VN"|"VU"|"WF"|"WS"|"XK"|"YE"|"YT"|"ZA"|"ZM"|"ZW"|"ZZ")[] allowedCountries; +}; + +@constraint:String {maxLength: 5000} +public type DefaultAccountTaxIdsAnyOf1 string; + +# A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access +public type FinancialConnectionsAccount record { + # The last 4 digits of the account number. If present, this will be 4 numeric characters + string? last4?; + # The list of data refresh subscriptions requested on this account + ("transactions")[]? subscriptions?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # A human-readable name that has been assigned to this account, either by the account holder or by the institution + @jsondata:Name {value: "display_name"} + string? displayName?; + # The name of the institution that holds this account + @jsondata:Name {value: "institution_name"} + string institutionName; + # The [PaymentMethod type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)(s) that can be created from this account + @jsondata:Name {value: "supported_payment_method_types"} + ("link"|"us_bank_account")[] supportedPaymentMethodTypes; + # The state of the most recent attempt to refresh the account transactions + @jsondata:Name {value: "transaction_refresh"} + BankConnectionsResourceTransactionRefresh? transactionRefresh?; + # The most recent information about the account's balance + BankConnectionsResourceBalance? balance?; + # The state of the most recent attempt to refresh the account balance + @jsondata:Name {value: "balance_refresh"} + BankConnectionsResourceBalanceRefresh? balanceRefresh?; + # The most recent information about the account's owners + string|FinancialConnectionsAccountOwnership? ownership?; + # The state of the most recent attempt to refresh the account owners + @jsondata:Name {value: "ownership_refresh"} + BankConnectionsResourceOwnershipRefresh? ownershipRefresh?; + # The account holder that this account belongs to + @jsondata:Name {value: "account_holder"} + BankConnectionsResourceAccountholder? accountHolder?; + # The list of permissions granted by this account + ("balances"|"ownership"|"payment_method"|"transactions")[]? permissions?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The type of the account. Account category is further divided in `subcategory` + "cash"|"credit"|"investment"|"other" category; + # If `category` is `cash`, one of: + # + # - `checking` + # - `savings` + # - `other` + # + # If `category` is `credit`, one of: + # + # - `mortgage` + # - `line_of_credit` + # - `credit_card` + # - `other` + # + # If `category` is `investment` or `other`, this will be `other` + "checking"|"credit_card"|"line_of_credit"|"mortgage"|"other"|"savings" subcategory; + # String representing the object's type. Objects of the same type share the same value + "financial_connections.account" 'object; + # The status of the link to the account + "active"|"disconnected"|"inactive" status; +}; + +@constraint:String {maxLength: 5000} +public type PaymentMethodDomainValidateBodyExpandItemsString string; + +# +public type IssuingCardholderIdDocument record { + # The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document` + string|File? back?; + # The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document` + string|File? front?; +}; + +@constraint:String {maxLength: 5000} +public type TaxRatesBodyExpandItemsString string; + +# +public type Application record { + # The name of the application + string? name?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "application" 'object; +}; + +# An object containing device type specific settings for BBPOS WisePOS E readers +public type BbposWisePose record { + string|"" splashscreen?; +}; + +public type Polymorphic BankAccount|Card; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionsSearchQueriesExpandItemsString string; + +# +public type SubscriptionsResourceSubscriptionInvoiceSettings record { + # The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription + @jsondata:Name {value: "account_tax_ids"} + SubscriptionsResourceSubscriptionInvoiceSettingsAccountTaxIds[]? accountTaxIds?; + ConnectAccountReference issuer; +}; + +# +public type PaymentLinksResourceShippingOption record { + # A non-negative integer in cents representing how much to charge + @jsondata:Name {value: "shipping_amount"} + int shippingAmount; + # The ID of the Shipping Rate to use for this shipping option + @jsondata:Name {value: "shipping_rate"} + string|ShippingRate shippingRate; +}; + +# A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes). +# It contains information about when the discount began, when it will end, and what it is applied to. +# +# Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) +public type Discount record { + Coupon coupon; + # The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item + @jsondata:Name {value: "invoice_item"} + string? invoiceItem?; + # The promotion code applied to create this discount + @jsondata:Name {value: "promotion_code"} + string|PromotionCode? promotionCode?; + # The subscription item that this coupon is applied to, if it is applied to a particular subscription item + @jsondata:Name {value: "subscription_item"} + string? subscriptionItem?; + # Date that the coupon was applied + int 'start; + # The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode + @jsondata:Name {value: "checkout_session"} + string? checkoutSession?; + # If the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null + int? end?; + # The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array + @constraint:String {maxLength: 5000} + string id; + # The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice + string? invoice?; + # The subscription that this coupon is applied to, if it is applied to a particular subscription + string? subscription?; + # The ID of the customer associated with this discount + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "discount" 'object; +}; + +@constraint:String {maxLength: 5000} +public type InvoiceUpdateLinesBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetSourcesSourceMandateNotificationsMandateNotificationQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetTreasuryOutboundTransfers +public type GetTreasuryOutboundTransfersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryOutboundTransfersQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return OutboundTransfers that have the given status: `processing`, `canceled`, `failed`, `posted`, or `returned` + "canceled"|"failed"|"posted"|"processing"|"returned" status?; +}; + +@constraint:String {maxLength: 5000} +public type InvoicesBodyExpandItemsString string; + +# +public type ConfirmationTokensResourceShipping record { + Address address; + # Recipient phone (including extension) + string? phone?; + # Recipient name + @constraint:String {maxLength: 5000} + string name; +}; + +public type DocumentsParam4Files FilesAnyOf13|FilesFilesAnyOf132; + +# +public type CheckoutAcssDebitMandateOptions record { + # Payment schedule for the mandate + @jsondata:Name {value: "payment_schedule"} + "combined"|"interval"|"sporadic"? paymentSchedule?; + # List of Stripe products where this mandate can be selected automatically. Returned when the Session is in `setup` mode + @jsondata:Name {value: "default_for"} + ("invoice"|"subscription")[] defaultFor?; + # A URL for custom mandate text + @jsondata:Name {value: "custom_mandate_url"} + string customMandateUrl?; + # Transaction type of the mandate + @jsondata:Name {value: "transaction_type"} + "business"|"personal"? transactionType?; + # Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined' + @jsondata:Name {value: "interval_description"} + string? intervalDescription?; +}; + +public type FleetSpecs1 record { + @jsondata:Name {value: "purchase_type"} + "fuel_and_non_fuel_purchase"|"fuel_purchase"|"non_fuel_purchase" purchaseType?; + @jsondata:Name {value: "cardholder_prompt_data"} + FleetCardholderPromptDataSpecs cardholderPromptData?; + @jsondata:Name {value: "service_type"} + "full_service"|"non_fuel_transaction"|"self_service" serviceType?; + @jsondata:Name {value: "reported_breakdown"} + FleetReportedBreakdownSpecs reportedBreakdown?; +}; + +@constraint:String {maxLength: 5000} +public type GetSetupAttemptsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetBillingMetersId +public type GetBillingMetersIdQueries record { + # Specifies which fields in the response should be expanded + GetBillingMetersIdQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetEntitlementsActiveEntitlementsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetChargesChargeDispute +public type GetChargesChargeDisputeQueries record { + # Specifies which fields in the response should be expanded + GetChargesChargeDisputeQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetIssuingTokens +public type GetIssuingTokensQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingTokensQueriesExpandItemsString[] expand?; + # Only return Issuing tokens that were created during the given date interval + Created21 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The Issuing card identifier to list tokens for + @constraint:String {maxLength: 5000} + string card; + # Select Issuing tokens with the given status + "active"|"deleted"|"requested"|"suspended" status?; +}; + +# +public type SetupIntentPaymentMethodOptionsCardMandateOptions record { + # End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date + @jsondata:Name {value: "end_date"} + int? endDate?; + # Unique identifier for the mandate or subscription + @constraint:String {maxLength: 80} + string reference; + # The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic` + @jsondata:Name {value: "interval_count"} + int? intervalCount?; + # Amount to be charged for future payments + int amount; + # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param + @jsondata:Name {value: "amount_type"} + "fixed"|"maximum" amountType; + # A description of the mandate or subscription that is meant to be displayed to the customer + string? description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic` + "day"|"month"|"sporadic"|"week"|"year" interval; + # Specifies the type of mandates supported. Possible values are `india` + @jsondata:Name {value: "supported_types"} + ("india")[]? supportedTypes?; + # Start date of the mandate or subscription. Start date should not be lesser than yesterday + @jsondata:Name {value: "start_date"} + int startDate; +}; + +# Represents the Queries record for the operation: GetPaymentMethodDomainsPaymentMethodDomain +public type GetPaymentMethodDomainsPaymentMethodDomainQueries record { + # Specifies which fields in the response should be expanded + GetPaymentMethodDomainsPaymentMethodDomainQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodDetailsAchDebit record { + # Two-letter ISO code representing the country the bank account is located in + string? country?; + # Last four digits of the bank account number + string? last4?; + # Type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + "company"|"individual"? accountHolderType?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Routing transit number of the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; +}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionsQueriesExpandItemsString string; + +# +public type SetupIntentNextActionRedirectToUrl record { + # If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion + @jsondata:Name {value: "return_url"} + string? returnUrl?; + # The URL you must redirect your customer to in order to authenticate + string? url?; +}; + +# Represents the Queries record for the operation: GetInvoicesInvoice +public type GetInvoicesInvoiceQueries record { + # Specifies which fields in the response should be expanded + GetInvoicesInvoiceQueriesExpandItemsString[] expand?; +}; + +public type FilesFilesAnyOf12 ""; + +public type AccountRequirementsAlternativeAlternativefieldsdueItemsString string; + +# `Application Fee Refund` objects allow you to refund an application fee that +# has previously been created but not yet refunded. Funds will be refunded to +# the Stripe account from which the fee was originally collected. +# +# Related guide: [Refunding application fees](https://stripe.com/docs/connect/destination-charges#refunding-app-fee) +public type FeeRefund record { + # Balance transaction that describes the impact on your account balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # Amount, in cents (or local equivalent) + int amount; + # 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 + record {|string...;|}? metadata?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # ID of the application fee that was refunded + string|ApplicationFee fee; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "fee_refund" 'object; +}; + +public type ArrivalDate RangeQuerySpecs26|ArrivalDateRangeQuerySpecs262; + +# +public type PaymentMethodOxxo record { +}; + +# Use [InboundTransfers](https://stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit +public type TreasuryInboundTransfer record { + # The FinancialAccount that received the funds + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) transferred + int amount; + # 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 + record {|string...;|} metadata; + # Returns `true` if the InboundTransfer is able to be canceled + boolean cancelable; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "linked_flows"} + TreasuryInboundTransfersResourceInboundTransferResourceLinkedFlows linkedFlows; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Details about this InboundTransfer's failure. Only set when status is `failed` + @jsondata:Name {value: "failure_details"} + TreasuryInboundTransfersResourceFailureDetails? failureDetails?; + # Statement descriptor shown when funds are debited from the source. Not all payment networks support `statement_descriptor` + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor; + # The origin payment method to be debited for an InboundTransfer + @jsondata:Name {value: "origin_payment_method"} + string originPaymentMethod; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Details about the PaymentMethod for an InboundTransfer + @jsondata:Name {value: "origin_payment_method_details"} + InboundTransfers2? originPaymentMethodDetails?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + TreasuryInboundTransfersResourceInboundTransferResourceStatusTransitions statusTransitions; + # Returns `true` if the funds for an InboundTransfer were returned after the InboundTransfer went to the `succeeded` state + boolean? returned?; + # The Transaction associated with this object + string|TreasuryTransaction? 'transaction?; + # String representing the object's type. Objects of the same type share the same value + "treasury.inbound_transfer" 'object; + # Status of the InboundTransfer: `processing`, `succeeded`, `failed`, and `canceled`. An InboundTransfer is `processing` if it is created and pending. The status changes to `succeeded` once the funds have been "confirmed" and a `transaction` is created and posted. The status changes to `failed` if the transfer fails + "canceled"|"failed"|"processing"|"succeeded" status; +}; + +# If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method +public type UpdateParam record { + @jsondata:Name {value: "account_type"} + "checking"|"savings" accountType?; + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; +}; + +public type InvoiceitemsBody record {| + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + # The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. Passing in a negative `amount` will reduce the `amount_due` on the invoice + int amount?; + # 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` + record {|string...;|}|"" metadata?; + Period1 period?; + @jsondata:Name {value: "price_data"} + OneTimePriceData priceData?; + # Non-negative integer. The quantity of units for the invoice item + int quantity?; + # An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking + @constraint:String {maxLength: 5000} + string description?; + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + # The ID of a subscription to add this invoice item to. When left blank, the invoice item is added to the next upcoming scheduled invoice. When set, scheduled invoices for subscriptions other than the specified subscription will ignore the invoice item. Use this when you want to express that an invoice item has been accrued within the context of a particular subscription + @constraint:String {maxLength: 5000} + string subscription?; + # The integer unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This `unit_amount` will be multiplied by the quantity to get the full amount. Passing in a negative `unit_amount` will reduce the `amount_due` on the invoice + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + # The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item + @jsondata:Name {value: "tax_rates"} + InvoiceitemsBodyTaxratesItemsString[] taxRates?; + # Specifies which fields in the response should be expanded + InvoiceitemsBodyExpandItemsString[] expand?; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID + @jsondata:Name {value: "tax_code"} + string|"" taxCode?; + # The coupons and promotion codes to redeem into discounts for the invoice item or invoice line item + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # The ID of the price object. One of `price` or `price_data` is required + @constraint:String {maxLength: 5000} + string price?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # The ID of an existing invoice to add this invoice item to. When left blank, the invoice item will be added to the next upcoming scheduled invoice. This is useful when adding invoice items in response to an invoice.created webhook. You can only add invoice items to draft invoices and there is a maximum of 250 items per invoice + @constraint:String {maxLength: 5000} + string invoice?; + # Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items + boolean discountable?; + # The ID of the customer who will be billed when this invoice item is billed + @constraint:String {maxLength: 5000} + string customer; +|}; + +# A phase item describes the price and quantity of a phase +public type SubscriptionScheduleConfigurationItem record { + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an item. Metadata on this item will update the underlying subscription item's `metadata` when the phase is entered + record {|string...;|}? metadata?; + # Quantity of the plan to which the customer should be subscribed + int quantity?; + # The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount + DiscountsResourceStackableDiscount[] discounts; + # ID of the price to which the customer should be subscribed + string|Price|DeletedPrice price; + # Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period + @jsondata:Name {value: "billing_thresholds"} + SubscriptionItemBillingThresholds? billingThresholds?; + # The tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item` + @jsondata:Name {value: "tax_rates"} + TaxRate[]? taxRates?; +}; + +# +public type TaxTransactionLineItem record { + # Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive" taxBehavior; + # The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount + int amount; + # 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 + record {|string...;|}? metadata?; + # The ID of an existing [Product](https://stripe.com/docs/api/products/object) + string? product?; + # The number of units of the item being purchased. For reversals, this is the quantity reversed + int quantity; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # If `reversal`, this line item reverses an earlier transaction + "reversal"|"transaction" 'type; + # A custom identifier for this line item in the transaction + @constraint:String {maxLength: 5000} + string reference; + # If `type=reversal`, contains information about what was reversed + TaxProductResourceTaxTransactionLineItemResourceReversal? reversal?; + # The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource + @jsondata:Name {value: "tax_code"} + string taxCode; + # The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_tax"} + int amountTax; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "tax.transaction_line_item" 'object; +}; + +# +public type SubscriptionAutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # Whether Stripe automatically computes tax on this subscription + boolean enabled; +}; + +# +public type TerminalConfigurationConfigurationResourceCurrencySpecificConfig record { + # Fixed amounts displayed when collecting a tip + @jsondata:Name {value: "fixed_amounts"} + int[]? fixedAmounts?; + # Percentages displayed when collecting a tip + int[]? percentages?; + # Below this amount, fixed amounts will be displayed; above it, percentages will be displayed + @jsondata:Name {value: "smart_tip_threshold"} + int smartTipThreshold?; +}; + +# +public type ShippingRateCurrencyOption record { + # Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified` + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior; + # A non-negative integer in cents representing how much to charge + int amount; +}; + +public type ScheduleCancelBody record {| + # Specifies which fields in the response should be expanded + ScheduleCancelBodyExpandItemsString[] expand?; + # If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true` + @jsondata:Name {value: "invoice_now"} + boolean invoiceNow?; + # If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true` + boolean prorate?; +|}; + +public type PersonalizationDesignDeactivateBody record {| + # Specifies which fields in the response should be expanded + PersonalizationDesignDeactivateBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTerminalLocationsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPaymentMethodsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetCouponsQueriesExpandItemsString string; + +# +public type CustomerResourceCustomerList record { + Customer[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/customers`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerBalanceTransactionsTransactionQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetClimateProductsQueriesExpandItemsString string; + +public type InvoiceitemsinvoiceitemBody record {| + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + # The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount + int amount?; + # 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` + record {|string...;|}|"" metadata?; + Period1 period?; + @jsondata:Name {value: "price_data"} + OneTimePriceData priceData?; + # Non-negative integer. The quantity of units for the invoice item + int quantity?; + # An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking + @constraint:String {maxLength: 5000} + string description?; + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + # The integer unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This unit_amount will be multiplied by the quantity to get the full amount. If you want to apply a credit to the customer's account, pass a negative unit_amount + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + # The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item. Pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; + # Specifies which fields in the response should be expanded + InvoiceitemsinvoiceitemBodyExpandItemsString[] expand?; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID + @jsondata:Name {value: "tax_code"} + string|"" taxCode?; + # The coupons, promotion codes & existing discounts which apply to the invoice item or invoice line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # The ID of the price object. One of `price` or `price_data` is required + @constraint:String {maxLength: 5000} + string price?; + # Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items. Cannot be set to true for prorations + boolean discountable?; +|}; + +@constraint:String {maxLength: 5000} +public type GetInvoiceitemsQueriesExpandItemsString string; + +public type AccountExternalAccountsBody record {| + # Specifies which fields in the response should be expanded + AccountExternalAccountsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Please refer to full [documentation](https://stripe.com/docs/api) instead + @jsondata:Name {value: "external_account"} + string externalAccount?; + # When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency + @jsondata:Name {value: "default_for_currency"} + boolean defaultForCurrency?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; "checking"|"futsu"|"savings"|"toza" account_type?; string country; string currency?; record {record {bank_account_ownership_verificationFilesItemsString[] files?;} bank_account_ownership_verification?;} documents?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; +|}; + +public type PricesBody record {| + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + # 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` + record {|string...;|} metadata?; + # The ID of the product that this price will belong to + @constraint:String {maxLength: 5000} + string product?; + # Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme` + Tier[] tiers?; + Recurring1 recurring?; + # Whether the price can be used for new purchases. Defaults to `true` + boolean active?; + # Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + # Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes + @jsondata:Name {value: "billing_scheme"} + "per_unit"|"tiered" billingScheme?; + @jsondata:Name {value: "product_data"} + InlineProductParams productData?; + # A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. One of `unit_amount`, `unit_amount_decimal`, or `custom_unit_amount` is required, unless `billing_scheme=tiered` + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + # Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption2...;|} currencyOptions?; + @jsondata:Name {value: "transform_quantity"} + TransformUsageParam transformQuantity?; + # Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows + @jsondata:Name {value: "tiers_mode"} + "graduated"|"volume" tiersMode?; + # Specifies which fields in the response should be expanded + PricesBodyExpandItemsString[] expand?; + # A brief description of the price, hidden from customers + @constraint:String {maxLength: 5000} + string nickname?; + # A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters + @jsondata:Name {value: "lookup_key"} + string lookupKey?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + @jsondata:Name {value: "custom_unit_amount"} + CustomUnitAmount1 customUnitAmount?; + # If set to true, will atomically remove the lookup key from the existing price, and assign it to this price + @jsondata:Name {value: "transfer_lookup_key"} + boolean transferLookupKey?; +|}; + +public type VerificationDocumentSpecs record { + @constraint:String {maxLength: 500} + string back?; + @constraint:String {maxLength: 500} + string front?; +}; + +public type AfterCompletionRedirectParam record { + @jsondata:Name {value: "return_url"} + string returnUrl; +}; + +public type AccountFutureRequirementsCurrentlydueItemsString string; + +public type DisputeSubmitBody record {| + # Specifies which fields in the response should be expanded + DisputeSubmitBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +# Tax details about the customer +public type TaxParam record { + @jsondata:Name {value: "validate_location"} + "deferred"|"immediately" validateLocation?; + @jsondata:Name {value: "ip_address"} + string|"" ipAddress?; +}; + +# +public type TreasuryOutboundTransfersResourceStatusTransitions record { + # Timestamp describing when an OutboundTransfer changed status to `returned` + @jsondata:Name {value: "returned_at"} + int? returnedAt?; + # Timestamp describing when an OutboundTransfer changed status to `canceled` + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Timestamp describing when an OutboundTransfer changed status to `failed` + @jsondata:Name {value: "failed_at"} + int? failedAt?; + # Timestamp describing when an OutboundTransfer changed status to `posted` + @jsondata:Name {value: "posted_at"} + int? postedAt?; +}; + +@constraint:String {maxLength: 5000} +public type TaxCalculationsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetLinkedAccountsAccountQueriesExpandItemsString string; + +public type PersonRequirementsEventuallydueItemsString string; + +public type TestHelpersTestClocksBody record {| + # Specifies which fields in the response should be expanded + TestHelpersTestClocksBodyExpandItemsString[] expand?; + # The initial frozen time for this test clock + @jsondata:Name {value: "frozen_time"} + int frozenTime; + # The name for this test clock + @constraint:String {maxLength: 300} + string name?; +|}; + +public type TreasuryInboundTransfersBody record {| + # The complete description that appears on your customers' statements. Maximum 10 characters + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # The FinancialAccount to send funds to + @jsondata:Name {value: "financial_account"} + string financialAccount; + # The origin payment method to be debited for the InboundTransfer + @jsondata:Name {value: "origin_payment_method"} + string originPaymentMethod; + # Amount (in cents) to be transferred + int amount; + # Specifies which fields in the response should be expanded + TreasuryInboundTransfersBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; +|}; + +# +public type TreasuryReceivedCreditsResourceCreditReversalList record { + # Details about each object + TreasuryCreditReversal[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type ApmsSourcesSourceTransactionList record { + SourceTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type CreditNoteLinesList record { + # Details about each object + CreditNoteLineItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type PersonRequirementsPastdueItemsString string; + +public type SettlementssettlementBody record {| + # Specifies which fields in the response should be expanded + SettlementssettlementBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; +|}; + +# The PII this token represents +public type PiiTokenSpecs record { + @jsondata:Name {value: "id_number"} + string idNumber?; +}; + +# +public type PaymentPagesCheckoutSessionShippingCost record { + # Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0 + @jsondata:Name {value: "amount_tax"} + int amountTax; + # The ID of the ShippingRate for this order + @jsondata:Name {value: "shipping_rate"} + string|ShippingRate? shippingRate?; + # Total shipping cost after discounts and taxes are applied + @jsondata:Name {value: "amount_total"} + int amountTotal; + # The taxes applied to the shipping rate + LineItemsTaxAmount[] taxes?; + # Total shipping cost before any discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; +}; + +@constraint:String {maxLength: 5000} +public type RefundsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountQueriesExpandItemsString string; + +public type Created6RangeQuerySpecs62 int; + +@constraint:String {maxLength: 5000} +public type GetExchangeRatesQueriesExpandItemsString string; + +public type IntentCancelBody1 record {| + # Specifies which fields in the response should be expanded + IntentCancelBody1ExpandItemsString[] expand?; + # Reason for canceling this SetupIntent. Possible values are: `abandoned`, `requested_by_customer`, or `duplicate` + @jsondata:Name {value: "cancellation_reason"} + "abandoned"|"duplicate"|"requested_by_customer" cancellationReason?; +|}; + +# +public type AccountSettings record { + AccountPayoutSettings payouts?; + AccountInvoicesSettings invoices?; + @jsondata:Name {value: "card_issuing"} + AccountCardIssuingSettings cardIssuing?; + AccountTreasurySettings treasury?; + AccountBrandingSettings branding; + AccountPaymentsSettings payments; + @jsondata:Name {value: "sepa_debit_payments"} + AccountSepaDebitPaymentsSettings sepaDebitPayments?; + @jsondata:Name {value: "bacs_debit_payments"} + AccountBacsDebitPaymentsSettings bacsDebitPayments?; + @jsondata:Name {value: "card_payments"} + AccountCardPaymentsSettings cardPayments; + AccountDashboardSettings dashboard; +}; + +# Data used for generating a Mandate +public type ConfirmationTokensResourceMandateData record { + @jsondata:Name {value: "customer_acceptance"} + ConfirmationTokensResourceMandateDataResourceCustomerAcceptance customerAcceptance; +}; + +public type AuthorizationReverseBody record {| + # The amount to reverse from the authorization. If not provided, the full amount of the authorization will be reversed. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "reverse_amount"} + int reverseAmount?; + # Specifies which fields in the response should be expanded + AuthorizationReverseBodyExpandItemsString[] expand?; +|}; + +# +public type TransformQuantity record { + # After division, either round the result `up` or `down` + "down"|"up" round; + # Divide usage by this number + @jsondata:Name {value: "divide_by"} + int divideBy; +}; + +# +public type PaymentMethodCardChecks record { + # If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "cvc_check"} + string? cvcCheck?; + # If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_line1_check"} + string? addressLine1Check?; + # If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_postal_code_check"} + string? addressPostalCodeCheck?; +}; + +# +public type PaymentLinksResourceInvoiceSettings record { + # 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 + record {|string...;|}? metadata?; + # The account tax IDs associated with the invoice + @jsondata:Name {value: "account_tax_ids"} + PaymentLinksResourceInvoiceSettingsAccountTaxIds[]? accountTaxIds?; + # Footer to be displayed on the invoice + string? footer?; + # A list of up to 4 custom fields to be displayed on the invoice + @jsondata:Name {value: "custom_fields"} + InvoiceSettingCustomField[]? customFields?; + # Options for invoice PDF rendering + @jsondata:Name {value: "rendering_options"} + InvoiceSettingRenderingOptions? renderingOptions?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account + ConnectAccountReference? issuer?; +}; + +# +public type LegalEntityPersonVerificationDocument record { + # The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document` + string|File? back?; + # A user-displayable string describing the verification state of this document. For example, if a document is uploaded and the picture is too fuzzy, this may say "Identity document is too unclear to read" + string? details?; + # The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document` + string|File? front?; + # One of `document_corrupt`, `document_country_not_supported`, `document_expired`, `document_failed_copy`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_failed_greyscale`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_missing_back`, `document_missing_front`, `document_not_readable`, `document_not_uploaded`, `document_photo_mismatch`, `document_too_large`, or `document_type_not_supported`. A machine-readable code specifying the verification state for this document + @jsondata:Name {value: "details_code"} + string? detailsCode?; +}; + +# Secret Store is an API that allows Stripe Apps developers to securely persist secrets for use by UI Extensions and app backends. +# +# The primary resource in Secret Store is a `secret`. Other apps can't view secrets created by an app. Additionally, secrets are scoped to provide further permission control. +# +# All Dashboard users and the app backend share `account` scoped secrets. Use the `account` scope for secrets that don't change per-user, like a third-party API key. +# +# A `user` scoped secret is accessible by the app backend and one specific Dashboard user. Use the `user` scope for per-user secrets like per-user OAuth tokens, where different users might have different permissions. +# +# Related guide: [Store data between page reloads](https://stripe.com/docs/stripe-apps/store-auth-data-custom-objects) +public type AppsSecret record { + # If true, indicates that this secret has been deleted + boolean deleted?; + # The Unix timestamp for the expiry time of the secret, after which the secret deletes + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The plaintext secret value to be stored + string? payload?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + SecretServiceResourceScope scope; + # A name for the secret that's unique within the scope + @constraint:String {maxLength: 5000} + string name; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "apps.secret" 'object; +}; + +public type CustomerFundCashBalanceBody record {| + # A description of the test funding. This simulates free-text references supplied by customers when making bank transfers to their cash balance. You can use this to test how Stripe's [reconciliation algorithm](https://stripe.com/docs/payments/customer-balance/reconciliation) applies to different user inputs + @constraint:String {maxLength: 5000} + string reference?; + # Amount to be used for this test cash balance transaction. A positive integer representing how much to fund in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to fund $1.00 or 100 to fund ¥100, a zero-decimal currency) + int amount; + # Specifies which fields in the response should be expanded + CustomerFundCashBalanceBodyExpandItemsString[] expand?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; +|}; + +@constraint:String {maxLength: 5000} +public type CardscardBodyExpandItemsString string; + +# +public type SubscriptionBillingThresholds record { + # Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever` + @jsondata:Name {value: "reset_billing_cycle_anchor"} + boolean? resetBillingCycleAnchor?; + # Monetary threshold that triggers the subscription to create an invoice + @jsondata:Name {value: "amount_gte"} + int? amountGte?; +}; + +# Represents the Queries record for the operation: GetExchangeRates +public type GetExchangeRatesQueries record { + # A cursor for use in pagination. `ending_before` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with the exchange rate for currency X your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetExchangeRatesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and total number of supported payout currencies, and the default is the max + int 'limit?; + # A cursor for use in pagination. `starting_after` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with the exchange rate for currency X, your subsequent call can include `starting_after=X` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type ChargeCaptureBodyExpandItemsString string; + +# +public type PaymentPagesCheckoutSessionPaymentMethodReuseAgreement record { + # Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used. + # + # When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI + "auto"|"hidden" position; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerTaxIdsIdQueriesExpandItemsString string; + +public type SetupIntentMandateOptionsParam record { + @jsondata:Name {value: "end_date"} + int endDate?; + @constraint:String {maxLength: 80} + string reference; + @jsondata:Name {value: "interval_count"} + int intervalCount?; + int amount; + @jsondata:Name {value: "amount_type"} + "fixed"|"maximum" amountType; + @constraint:String {maxLength: 200} + string description?; + string currency; + "day"|"month"|"sporadic"|"week"|"year" interval; + @jsondata:Name {value: "supported_types"} + ("india")[] supportedTypes?; + @jsondata:Name {value: "start_date"} + int startDate; +}; + +# +public type TaxProductRegistrationsResourceCountryOptions record { + TaxProductRegistrationsResourceCountryOptionsEurope de?; + TaxProductRegistrationsResourceCountryOptionsEurope pt?; + TaxProductRegistrationsResourceCountryOptionsEurope dk?; + TaxProductRegistrationsResourceCountryOptionsEurope lt?; + TaxProductRegistrationsResourceCountryOptionsEurope lu?; + TaxProductRegistrationsResourceCountryOptionsEurope hr?; + TaxProductRegistrationsResourceCountryOptionsEurope lv?; + TaxProductRegistrationsResourceCountryOptionsEurope hu?; + TaxProductRegistrationsResourceCountryOptionsSimplified id?; + TaxProductRegistrationsResourceCountryOptionsEurope ie?; + TaxProductRegistrationsResourceCountryOptionsUnitedStates us?; + TaxProductRegistrationsResourceCountryOptionsEurope ee?; + TaxProductRegistrationsResourceCountryOptionsSimplified eg?; + TaxProductRegistrationsResourceCountryOptionsDefault ae?; + TaxProductRegistrationsResourceCountryOptionsEurope mt?; + TaxProductRegistrationsResourceCountryOptionsDefault za?; + TaxProductRegistrationsResourceCountryOptionsDefault 'is?; + TaxProductRegistrationsResourceCountryOptionsEurope it?; + TaxProductRegistrationsResourceCountryOptionsSimplified mx?; + TaxProductRegistrationsResourceCountryOptionsSimplified my?; + TaxProductRegistrationsResourceCountryOptionsEurope es?; + TaxProductRegistrationsResourceCountryOptionsEurope at?; + TaxProductRegistrationsResourceCountryOptionsDefault au?; + TaxProductRegistrationsResourceCountryOptionsSimplified vn?; + TaxProductRegistrationsResourceCountryOptionsSimplified ng?; + TaxProductRegistrationsResourceCountryOptionsEurope ro?; + TaxProductRegistrationsResourceCountryOptionsEurope nl?; + TaxProductRegistrationsResourceCountryOptionsDefault no?; + TaxProductRegistrationsResourceCountryOptionsEurope be?; + TaxProductRegistrationsResourceCountryOptionsEurope fi?; + TaxProductRegistrationsResourceCountryOptionsEurope bg?; + TaxProductRegistrationsResourceCountryOptionsDefault bh?; + TaxProductRegistrationsResourceCountryOptionsDefault jp?; + TaxProductRegistrationsResourceCountryOptionsEurope fr?; + TaxProductRegistrationsResourceCountryOptionsDefault nz?; + TaxProductRegistrationsResourceCountryOptionsSimplified sa?; + TaxProductRegistrationsResourceCountryOptionsEurope se?; + TaxProductRegistrationsResourceCountryOptionsDefault sg?; + TaxProductRegistrationsResourceCountryOptionsEurope si?; + TaxProductRegistrationsResourceCountryOptionsEurope sk?; + TaxProductRegistrationsResourceCountryOptionsSimplified ke?; + TaxProductRegistrationsResourceCountryOptionsDefault gb?; + TaxProductRegistrationsResourceCountryOptionsCanada ca?; + TaxProductRegistrationsResourceCountryOptionsSimplified ge?; + TaxProductRegistrationsResourceCountryOptionsDefault om?; + TaxProductRegistrationsResourceCountryOptionsDefault ch?; + TaxProductRegistrationsResourceCountryOptionsSimplified kr?; + TaxProductRegistrationsResourceCountryOptionsSimplified cl?; + TaxProductRegistrationsResourceCountryOptionsEurope gr?; + TaxProductRegistrationsResourceCountryOptionsSimplified co?; + TaxProductRegistrationsResourceCountryOptionsSimplified kz?; + TaxProductRegistrationsResourceCountryOptionsSimplified th?; + TaxProductRegistrationsResourceCountryOptionsEurope cy?; + TaxProductRegistrationsResourceCountryOptionsEurope cz?; + TaxProductRegistrationsResourceCountryOptionsEurope pl?; + TaxProductRegistrationsResourceCountryOptionsSimplified tr?; +}; + +# Encodes whether a FinancialAccount has access to a particular feature. Stripe or the platform can control features via the requested field +public type FeatureAccess record { + @jsondata:Name {value: "outbound_payments"} + OutboundPayments outboundPayments?; + @jsondata:Name {value: "card_issuing"} + Access cardIssuing?; + @jsondata:Name {value: "intra_stripe_flows"} + Access intraStripeFlows?; + @jsondata:Name {value: "outbound_transfers"} + OutboundTransfers outboundTransfers?; + @jsondata:Name {value: "deposit_insurance"} + Access depositInsurance?; + @jsondata:Name {value: "inbound_transfers"} + InboundTransfers inboundTransfers?; + @jsondata:Name {value: "financial_addresses"} + FinancialAddresses financialAddresses?; +}; + +public type SourceVerifyBody record {| + # Specifies which fields in the response should be expanded + SourceVerifyBodyExpandItemsString[] expand?; + # The values needed to verify the source + SourceVerifyBodyValuesItemsString[] values; +|}; + +@constraint:String {maxLength: 5000} +public type RadarValueListsBodyExpandItemsString string; + +# The parameters used to automatically create a transfer after the payment is captured. +# Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) +public type TransferDataUpdateParams2 record { + int amount?; +}; + +# The parameters that you can use to automatically create a transfer after the payment +# is captured. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) +public type TransferDataUpdateParams1 record { + int amount?; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxRatesQueriesExpandItemsString string; + +public type TreasuryDebitReversalsBody record {| + # Specifies which fields in the response should be expanded + TreasuryDebitReversalsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The ReceivedDebit to reverse + @jsondata:Name {value: "received_debit"} + string receivedDebit; +|}; + +public type StatusTransitionTimestampSpecs record { + @jsondata:Name {value: "posted_at"} + record {int gt?; int gte?; int lt?; int lte?;}|int postedAt?; +}; + +@constraint:String {maxLength: 5000} +public type WebhookEndpointsBodyExpandItemsString string; + +public type PostalAddress record { + @constraint:String {maxLength: 5000} + string country; + string|"" city?; + string|"" state?; + @jsondata:Name {value: "postal_code"} + string|"" postalCode?; + string|"" line2?; + string|"" line1?; +}; + +# +public type TaxIDsList record { + # Details about each object + TaxId[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type BrandingSettingsSpecs record { + @constraint:String {maxLength: 5000} + string icon?; + @constraint:String {maxLength: 5000} + string logo?; + @jsondata:Name {value: "secondary_color"} + string secondaryColor?; + @jsondata:Name {value: "primary_color"} + string primaryColor?; +}; + +# +public type IssuingNetworkTokenWalletProvider record { + # The reasons for suggested tokenization given by the card network + @jsondata:Name {value: "reason_codes"} + ("account_card_too_new"|"account_recently_changed"|"account_too_new"|"account_too_new_since_launch"|"additional_device"|"data_expired"|"defer_id_v_decision"|"device_recently_lost"|"good_activity_history"|"has_suspended_tokens"|"high_risk"|"inactive_account"|"long_account_tenure"|"low_account_score"|"low_device_score"|"low_phone_number_score"|"network_service_error"|"outside_home_territory"|"provisioning_cardholder_mismatch"|"provisioning_device_and_cardholder_mismatch"|"provisioning_device_mismatch"|"same_device_no_prior_authentication"|"same_device_successful_prior_authentication"|"software_update"|"suspicious_activity"|"too_many_different_cardholders"|"too_many_recent_attempts"|"too_many_recent_tokens")[] reasonCodes?; + # The method used for tokenizing a card + @jsondata:Name {value: "card_number_source"} + "app"|"manual"|"on_file"|"other" cardNumberSource?; + # The wallet provider-given account ID of the digital wallet the token belongs to + @jsondata:Name {value: "account_id"} + string accountId?; + # The version of the standard for mapping reason codes followed by the wallet provider + @jsondata:Name {value: "suggested_decision_version"} + string suggestedDecisionVersion?; + # An evaluation on the trustworthiness of the device. A higher score indicates more trustworthy + @jsondata:Name {value: "device_trust_score"} + int deviceTrustScore?; + # The hashed email address of the cardholder's account with the wallet provider + @jsondata:Name {value: "hashed_account_email_address"} + string hashedAccountEmailAddress?; + # An evaluation on the trustworthiness of the wallet account between 1 and 5. A higher score indicates more trustworthy + @jsondata:Name {value: "account_trust_score"} + int accountTrustScore?; + @jsondata:Name {value: "cardholder_address"} + IssuingNetworkTokenAddress cardholderAddress?; + # The name of the cardholder tokenizing the card + @jsondata:Name {value: "cardholder_name"} + string cardholderName?; + # The recommendation on responding to the tokenization request + @jsondata:Name {value: "suggested_decision"} + "approve"|"decline"|"require_auth" suggestedDecision?; +}; + +# Represents the Queries record for the operation: GetPricesSearch +public type GetPricesSearchQueries record { + # Specifies which fields in the response should be expanded + GetPricesSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for prices](https://stripe.com/docs/search#query-fields-for-prices) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +# +public type ClimateRemovalsProductsPrice record { + # Fees for one metric ton of carbon removal in the currency's smallest unit + @jsondata:Name {value: "amount_fees"} + int amountFees; + # Total for one metric ton of carbon removal (including fees) in the currency's smallest unit + @jsondata:Name {value: "amount_total"} + int amountTotal; + # Subtotal for one metric ton of carbon removal (excluding fees) in the currency's smallest unit + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; +}; + +public type CartesBancairesNetworkOptionsParam record { + @jsondata:Name {value: "cb_avalgo"} + "0"|"1"|"2"|"3"|"4"|"A" cbAvalgo; + @jsondata:Name {value: "cb_score"} + int cbScore?; + @jsondata:Name {value: "cb_exemption"} + string cbExemption?; +}; + +@constraint:String {maxLength: 5000} +public type GelatoDocumentReportFilesItemsString string; + +public type PersonFutureRequirementsCurrentlydueItemsString string; + +# The desired new PIN for this card +public type EncryptedPinParam1 record { + @jsondata:Name {value: "encrypted_number"} + string encryptedNumber?; +}; + +public type CardscardBody record {| + # Specifies which fields in the response should be expanded + CardscardBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "personalization_design"} + string personalizationDesign?; + EncryptedPinParam1 pin?; + ShippingSpecs1 shipping?; + @jsondata:Name {value: "spending_controls"} + AuthorizationControlsParam spendingControls?; + # Reason why the `status` of this card is `canceled` + @jsondata:Name {value: "cancellation_reason"} + "lost"|"stolen" cancellationReason?; + # Dictates whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`. If this card is being canceled because it was lost or stolen, this information should be provided as `cancellation_reason` + "active"|"canceled"|"inactive" status?; +|}; + +public type TermsAcceptanceParam record { + int date?; + string ip?; + @jsondata:Name {value: "user_agent"} + string|"" userAgent?; +}; + +public type ProvinceStandard record { + @constraint:String {maxLength: 5000} + string province; +}; + +# +public type SetupIntentPaymentMethodOptionsCardPresent record { +}; + +# +public type CheckoutPixPaymentMethodOptions record { + # The number of seconds after which Pix payment will expire + @jsondata:Name {value: "expires_after_seconds"} + int? expiresAfterSeconds?; +}; + +@constraint:String {maxLength: 5000} +public type SourcesidBody1ExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type IntentVerifyMicrodepositsBody1ExpandItemsString string; + +# This hash contains whether the pricing table is enabled +public type CustomerSessionResourceComponentsResourcePricingTable record { + # Whether the pricing table is enabled + boolean enabled; +}; + +# Represents the Queries record for the operation: GetPaymentLinksPaymentLinkLineItems +public type GetPaymentLinksPaymentLinkLineItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPaymentLinksPaymentLinkLineItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# If this is a `card` PaymentMethod, this hash contains the user's card details +public type UpdateApiParam record { + @jsondata:Name {value: "exp_month"} + int expMonth?; + @jsondata:Name {value: "exp_year"} + int expYear?; + NetworksUpdateApiParam networks?; +}; + +# Specific options for a registration in the specified `country` +public type CountryOptions record { + Europe de?; + Europe pt?; + Europe dk?; + Europe lt?; + Europe lu?; + Europe hr?; + Europe lv?; + Europe hu?; + Simplified id?; + Europe ie?; + UnitedStates us?; + Europe ee?; + Simplified eg?; + Default ae?; + Europe mt?; + Default za?; + Default 'is?; + Europe it?; + Simplified mx?; + Simplified my?; + Europe es?; + Europe at?; + Default au?; + Simplified vn?; + Simplified ng?; + Europe ro?; + Europe nl?; + Default no?; + Europe be?; + Europe fi?; + Europe bg?; + Default bh?; + Default jp?; + Europe fr?; + Default nz?; + Simplified sa?; + Europe se?; + Default sg?; + Europe si?; + Europe sk?; + Simplified ke?; + Default gb?; + Canada ca?; + Simplified ge?; + Default om?; + Default ch?; + Simplified kr?; + Simplified cl?; + Europe gr?; + Simplified co?; + Simplified kz?; + Simplified th?; + Europe cy?; + Europe cz?; + Europe pl?; + Simplified tr?; +}; + +# Payment settings to pass to invoices created by the subscription +public type PaymentSettings record { + @jsondata:Name {value: "save_default_payment_method"} + "off"|"on_subscription" saveDefaultPaymentMethod?; + @jsondata:Name {value: "payment_method_types"} + ("ach_credit_transfer"|"ach_debit"|"acss_debit"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"konbini"|"link"|"p24"|"paynow"|"paypal"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"us_bank_account"|"wechat_pay")[]|"" paymentMethodTypes?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptions paymentMethodOptions?; +}; + +# Represents the Queries record for the operation: GetFinancialConnectionsTransactions +public type GetFinancialConnectionsTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetFinancialConnectionsTransactionsQueriesExpandItemsString[] expand?; + # A filter on the list based on the object `transacted_at` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with the following options: + @http:Query {name: "transacted_at"} + TransactedAt transactedAt?; + # A filter on the list based on the object `transaction_refresh` field. The value can be a dictionary with the following options: + @http:Query {name: "transaction_refresh"} + TransactionRefreshParams transactionRefresh?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The ID of the Stripe account whose transactions will be retrieved + @constraint:String {maxLength: 5000} + string account; +}; + +# Orders represent your intent to purchase a particular Climate product. When you create an order, the +# payment is deducted from your merchant balance +public type ClimateOrder record { + # 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 + record {|string...;|} metadata; + # Unique ID for the Climate `Product` this order is purchasing + string|ClimateProduct product; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The year this order is expected to be delivered + @jsondata:Name {value: "expected_delivery_year"} + int expectedDeliveryYear; + # Time at which the order was canceled. Measured in seconds since the Unix epoch + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Total amount of the order including fees in the currency's smallest unit + @jsondata:Name {value: "amount_total"} + int amountTotal; + # For delivered orders, a URL to a delivery certificate for the order + string? certificate?; + # Reason for the cancellation of this order + @jsondata:Name {value: "cancellation_reason"} + "expired"|"product_unavailable"|"requested"? cancellationReason?; + # Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch + @jsondata:Name {value: "delayed_at"} + int? delayedAt?; + ClimateRemovalsBeneficiary beneficiary?; + # Total amount of [Frontier](https://frontierclimate.com/)'s service fees in the currency's smallest unit + @jsondata:Name {value: "amount_fees"} + int amountFees; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase, representing the currency for this order + @constraint:String {maxLength: 5000} + string currency; + # Details about the delivery of carbon removal for this order + @jsondata:Name {value: "delivery_details"} + ClimateRemovalsOrderDeliveries[] deliveryDetails; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Time at which the order was confirmed. Measured in seconds since the Unix epoch + @jsondata:Name {value: "confirmed_at"} + int? confirmedAt?; + # Time at which the order was delivered. Measured in seconds since the Unix epoch + @jsondata:Name {value: "delivered_at"} + int? deliveredAt?; + # Total amount of the carbon removal in the currency's smallest unit + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; + # Quantity of carbon removal that is included in this order + @jsondata:Name {value: "metric_tons"} + string metricTons; + # Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch + @jsondata:Name {value: "product_substituted_at"} + int? productSubstitutedAt?; + # String representing the object's type. Objects of the same type share the same value + "climate.order" 'object; + # The current status of this order + "awaiting_funds"|"canceled"|"confirmed"|"delivered"|"open" status; +}; + +# Represents the Queries record for the operation: GetReportingReportRuns +public type GetReportingReportRunsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetReportingReportRunsQueriesExpandItemsString[] expand?; + # Only return Report Runs that were created during the given date interval + Created33 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# The set of functionalities that the platform can restrict on the FinancialAccount +public type PlatformRestrictions record { + @jsondata:Name {value: "inbound_flows"} + "restricted"|"unrestricted" inboundFlows?; + @jsondata:Name {value: "outbound_flows"} + "restricted"|"unrestricted" outboundFlows?; +}; + +# +public type CheckoutAcssDebitPaymentMethodOptions record { + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + # Currency supported by the bank account. Returned when the Session is in `setup` mode + "cad"|"usd" currency?; + @jsondata:Name {value: "mandate_options"} + CheckoutAcssDebitMandateOptions mandateOptions?; +}; + +public type InvoiceSettings1 record { + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + Param2 issuer?; +}; + +@constraint:String {maxLength: 5000} +public type GetApplicationFeesFeeRefundsIdQueriesExpandItemsString string; + +public type InvoiceSettings2 record { + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + Param3 issuer?; +}; + +# +public type TreasuryFinancialAccountsResourceClosedStatusDetails record { + # The array that contains reasons for a FinancialAccount closure + ("account_rejected"|"closed_by_platform"|"other")[] reasons; +}; + +# Represents the Queries record for the operation: GetIdentityVerificationReports +public type GetIdentityVerificationReportsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIdentityVerificationReportsQueriesExpandItemsString[] expand?; + # Only return VerificationReports created by this VerificationSession ID. It is allowed to provide a VerificationIntent ID + @http:Query {name: "verification_session"} + string verificationSession?; + # Only return VerificationReports that were created during the given date interval + Created13 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems + @http:Query {name: "client_reference_id"} + string clientReferenceId?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return VerificationReports of this type + "document"|"id_number" 'type?; +}; + +public type CouponscouponBody record {| + # Specifies which fields in the response should be expanded + CouponscouponBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set + @constraint:String {maxLength: 40} + string name?; + # Coupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption1...;|} currencyOptions?; +|}; + +# Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details +public type AuthorizationControlsParam record { + @jsondata:Name {value: "allowed_categories"} + (AuthorizationControlsParamAllowedcategoriesItemsString)[] allowedCategories?; + @jsondata:Name {value: "blocked_merchant_countries"} + AuthorizationControlsParamBlockedmerchantcountriesItemsString[] blockedMerchantCountries?; + @jsondata:Name {value: "blocked_categories"} + (AuthorizationControlsParamBlockedcategoriesItemsString)[] blockedCategories?; + @jsondata:Name {value: "spending_limits"} + SpendingLimitsParam[] spendingLimits?; + @jsondata:Name {value: "allowed_merchant_countries"} + AuthorizationControlsParamAllowedmerchantcountriesItemsString[] allowedMerchantCountries?; +}; + +public type SubscriptionScheduleDefaultSettingsParam record { + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + Param3 issuer?; +}; + +public type CurrentPeriodStartRangeQuerySpecs472 int; + +# Header data +public type ForwardedRequestHeader record { + # The header name + @constraint:String {maxLength: 5000} + string name; + # The header value + @constraint:String {maxLength: 5000} + string value; +}; + +@constraint:String {maxLength: 5000} +public type TransferstransferBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetSubscriptionItemsItem +public type GetSubscriptionItemsItemQueries record { + # Specifies which fields in the response should be expanded + GetSubscriptionItemsItemQueriesExpandItemsString[] expand?; +}; + +public type DiscountsItemsObject record { + string coupon?; + string discount?; + string promotion_code?; +}; + +# +public type PaymentMethodCardWalletGooglePay record { +}; + +public type InvoiceListParam record { + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingTokensTokenQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetLinkedAccountsAccountOwners +public type GetLinkedAccountsAccountOwnersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetLinkedAccountsAccountOwnersQueriesExpandItemsString[] expand?; + # The ID of the ownership object to fetch owners from + @constraint:String {maxLength: 5000} + string ownership; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type IssuingAuthorizationFleetFuelPriceData record { + # Gross fuel amount that should equal Fuel Quantity multiplied by Fuel Unit Cost, inclusive of taxes + @jsondata:Name {value: "gross_amount_decimal"} + string? grossAmountDecimal?; +}; + +@constraint:String {maxLength: 5000} +public type GetCreditNotesCreditNoteLinesQueriesExpandItemsString string; + +# +public type CheckoutSessionPaymentMethodOptions record { + CheckoutPaynowPaymentMethodOptions paynow?; + @jsondata:Name {value: "acss_debit"} + CheckoutAcssDebitPaymentMethodOptions acssDebit?; + @jsondata:Name {value: "bacs_debit"} + CheckoutBacsDebitPaymentMethodOptions bacsDebit?; + CheckoutBoletoPaymentMethodOptions boleto?; + CheckoutLinkPaymentMethodOptions link?; + @jsondata:Name {value: "amazon_pay"} + CheckoutAmazonPayPaymentMethodOptions amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + CheckoutAuBecsDebitPaymentMethodOptions auBecsDebit?; + CheckoutOxxoPaymentMethodOptions oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + CheckoutAfterpayClearpayPaymentMethodOptions afterpayClearpay?; + CheckoutSwishPaymentMethodOptions swish?; + @jsondata:Name {value: "us_bank_account"} + CheckoutUsBankAccountPaymentMethodOptions usBankAccount?; + @jsondata:Name {value: "customer_balance"} + CheckoutCustomerBalancePaymentMethodOptions customerBalance?; + CheckoutCashappPaymentMethodOptions cashapp?; + CheckoutPaypalPaymentMethodOptions paypal?; + CheckoutPixPaymentMethodOptions pix?; + @jsondata:Name {value: "revolut_pay"} + CheckoutRevolutPayPaymentMethodOptions revolutPay?; + CheckoutGiropayPaymentMethodOptions giropay?; + CheckoutAlipayPaymentMethodOptions alipay?; + CheckoutIdealPaymentMethodOptions ideal?; + CheckoutEpsPaymentMethodOptions eps?; + CheckoutKonbiniPaymentMethodOptions konbini?; + CheckoutSofortPaymentMethodOptions sofort?; + CheckoutFpxPaymentMethodOptions fpx?; + CheckoutAffirmPaymentMethodOptions affirm?; + CheckoutMobilepayPaymentMethodOptions mobilepay?; + CheckoutBancontactPaymentMethodOptions bancontact?; + CheckoutGrabPayPaymentMethodOptions grabpay?; + CheckoutKlarnaPaymentMethodOptions klarna?; + CheckoutP24PaymentMethodOptions p24?; + @jsondata:Name {value: "sepa_debit"} + CheckoutSepaDebitPaymentMethodOptions sepaDebit?; + CheckoutCardPaymentMethodOptions card?; + CheckoutMultibancoPaymentMethodOptions multibanco?; +}; + +@constraint:String {maxLength: 5000} +public type PaymentLinksBodyExpandItemsString string; + +# +public type TaxProductRegistrationsResourceCountryOptionsDefault record { + # Type of registration in `country` + "standard" 'type; +}; + +# Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000 +public type DisputeEvidenceParams record { + @jsondata:Name {value: "refund_policy"} + string refundPolicy?; + @jsondata:Name {value: "customer_communication"} + string customerCommunication?; + @jsondata:Name {value: "shipping_date"} + string shippingDate?; + @jsondata:Name {value: "billing_address"} + string billingAddress?; + @jsondata:Name {value: "duplicate_charge_documentation"} + string duplicateChargeDocumentation?; + @jsondata:Name {value: "refund_policy_disclosure"} + string refundPolicyDisclosure?; + @jsondata:Name {value: "shipping_carrier"} + string shippingCarrier?; + @jsondata:Name {value: "service_documentation"} + string serviceDocumentation?; + @jsondata:Name {value: "uncategorized_text"} + string uncategorizedText?; + @jsondata:Name {value: "cancellation_policy_disclosure"} + string cancellationPolicyDisclosure?; + @jsondata:Name {value: "service_date"} + string serviceDate?; + @jsondata:Name {value: "duplicate_charge_id"} + string duplicateChargeId?; + @jsondata:Name {value: "shipping_address"} + string shippingAddress?; + @jsondata:Name {value: "product_description"} + string productDescription?; + @jsondata:Name {value: "duplicate_charge_explanation"} + string duplicateChargeExplanation?; + @jsondata:Name {value: "customer_purchase_ip"} + string customerPurchaseIp?; + @jsondata:Name {value: "refund_refusal_explanation"} + string refundRefusalExplanation?; + @jsondata:Name {value: "uncategorized_file"} + string uncategorizedFile?; + @jsondata:Name {value: "shipping_documentation"} + string shippingDocumentation?; + @jsondata:Name {value: "access_activity_log"} + string accessActivityLog?; + @jsondata:Name {value: "cancellation_rebuttal"} + string cancellationRebuttal?; + @jsondata:Name {value: "customer_signature"} + string customerSignature?; + @jsondata:Name {value: "cancellation_policy"} + string cancellationPolicy?; + string receipt?; + @jsondata:Name {value: "customer_name"} + string customerName?; + @jsondata:Name {value: "customer_email_address"} + string customerEmailAddress?; + @jsondata:Name {value: "shipping_tracking_number"} + string shippingTrackingNumber?; +}; + +@constraint:String {maxLength: 5000} +public type GetFilesFileQueriesExpandItemsString string; + +# +public type DisputePaymentMethodDetailsKlarna record { + # The reason for the dispute as defined by Klarna + @jsondata:Name {value: "reason_code"} + string? reasonCode?; +}; + +public type CreatedParam record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# Represents the Queries record for the operation: GetLinkedAccounts +public type GetLinkedAccountsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetLinkedAccountsQueriesExpandItemsString[] expand?; + # If present, only return accounts that belong to the specified account holder. `account_holder[customer]` and `account_holder[account]` are mutually exclusive + @http:Query {name: "account_holder"} + AccountholderParams2 accountHolder?; + # If present, only return accounts that were collected as part of the given session + @constraint:String {maxLength: 5000} + string session?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type SetupIntentsintentBody record {| + # The ID of the payment method configuration to use with this SetupIntent + @jsondata:Name {value: "payment_method_configuration"} + string paymentMethodConfiguration?; + # Specifies which fields in the response should be expanded + SetupIntentsintentBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Indicates the directions of money movement for which this payment method is intended to be used. + # + # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes + @jsondata:Name {value: "flow_directions"} + ("inbound"|"outbound")[] flowDirections?; + # The list of payment method types (for example, card) that this SetupIntent can set up. If you don't provide this array, it defaults to ["card"] + @jsondata:Name {value: "payment_method_types"} + SetupIntentsintentBodyPaymentmethodtypesItemsString[] paymentMethodTypes?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams1 paymentMethodData?; + # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + # + # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer + @jsondata:Name {value: "attach_to_self"} + boolean attachToSelf?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 1000} + string description?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam16 paymentMethodOptions?; + # ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent + @jsondata:Name {value: "payment_method"} + string paymentMethod?; + # ID of the Customer this SetupIntent belongs to, if one exists. + # + # If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# +public type SubscriptionItemBillingThresholds record { + # Usage threshold that triggers the subscription to create an invoice + @jsondata:Name {value: "usage_gte"} + int? usageGte?; +}; + +# +public type TreasuryTransactionsResourceFlowDetails record { + @jsondata:Name {value: "outbound_transfer"} + TreasuryOutboundTransfer outboundTransfer?; + @jsondata:Name {value: "inbound_transfer"} + TreasuryInboundTransfer inboundTransfer?; + @jsondata:Name {value: "outbound_payment"} + TreasuryOutboundPayment outboundPayment?; + @jsondata:Name {value: "debit_reversal"} + TreasuryDebitReversal debitReversal?; + # Type of the flow that created the Transaction. Set to the same value as `flow_type` + "credit_reversal"|"debit_reversal"|"inbound_transfer"|"issuing_authorization"|"other"|"outbound_payment"|"outbound_transfer"|"received_credit"|"received_debit" 'type; + @jsondata:Name {value: "credit_reversal"} + TreasuryCreditReversal creditReversal?; + @jsondata:Name {value: "received_credit"} + TreasuryReceivedCredit receivedCredit?; + @jsondata:Name {value: "received_debit"} + TreasuryReceivedDebit receivedDebit?; + @jsondata:Name {value: "issuing_authorization"} + IssuingAuthorization issuingAuthorization?; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxCodesQueriesExpandItemsString string; + +# +public type SourceTransactionPaperCheckData record { + # Comma-separated list of invoice IDs associated with the paper check + @constraint:String {maxLength: 5000} + string invoices?; + # Time at which the deposited funds will be available for use. Measured in seconds since the Unix epoch + @jsondata:Name {value: "available_at"} + string availableAt?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerCashBalanceTransactionsTransactionQueriesExpandItemsString string; + +public type AuthorizationControlsParamBlockedcategoriesItemsString "ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards"; + +# +public type PaymentPagesCheckoutSessionAfterExpiration record { + # When set, configuration used to recover the Checkout Session on expiry + PaymentPagesCheckoutSessionAfterExpirationRecovery? recovery?; +}; + +# +public type TaxProductRegistrationsResourceCountryOptionsUsLocalLeaseTax record { + # A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction + @constraint:String {maxLength: 5000} + string jurisdiction; +}; + +@constraint:String {maxLength: 5000} +public type AccountsBodyExpandItemsString string; + +# +public type PaymentPagesCheckoutSessionAutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # Indicates whether automatic tax is enabled for the session + boolean enabled; + # The status of the most recent automated tax calculation for this session + "complete"|"failed"|"requires_location_inputs"? status?; +}; + +# A line item +public type Item record { + # Total tax amount applied. If no tax was applied, defaults to 0 + @jsondata:Name {value: "amount_tax"} + int amountTax; + # The quantity of products being purchased + int? quantity?; + # Total discount amount applied. If no discounts were applied, defaults to 0 + @jsondata:Name {value: "amount_discount"} + int amountDiscount; + # The discounts applied to the line item + LineItemsDiscountAmount[] discounts?; + # The price used to generate the line item + Price? price?; + # Total after discounts and taxes + @jsondata:Name {value: "amount_total"} + int amountTotal; + # An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name + @constraint:String {maxLength: 5000} + string description; + # The taxes applied to the line item + LineItemsTaxAmount[] taxes?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Total before any discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; + # String representing the object's type. Objects of the same type share the same value + "item" 'object; +}; + +# Controls tax ID collection during checkout +public type TaxIdCollectionParams record { + boolean enabled; +}; + +public type FleetReportedBreakdownSpecs record { + FleetReportedBreakdownFuelSpecs fuel?; + FleetReportedBreakdownTaxSpecs tax?; + @jsondata:Name {value: "non_fuel"} + FleetReportedBreakdownNonFuelSpecs nonFuel?; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsKlarnaDob record { + # The month of birth, between 1 and 12 + int? month?; + # The four-digit year of birth + int? year?; + # The day of birth, between 1 and 31 + int? day?; +}; + +public type ReportingReportRunsBody record {| + # Specifies which fields in the response should be expanded + ReportingReportRunsBodyExpandItemsString[] expand?; + # The ID of the [report type](https://stripe.com/docs/reporting/statements/api#report-types) to run, such as `"balance.summary.1"` + @jsondata:Name {value: "report_type"} + string reportType; + RunParameterSpecs parameters?; +|}; + +# This hash contains whether the buy button is enabled +public type CustomerSessionResourceComponentsResourceBuyButton record { + # Whether the buy button is enabled + boolean enabled; +}; + +# +public type TreasuryOutboundTransfersResourceUsDomesticWireTrackingDetails record { + # OMAD of the OutboundTransfer for transfers sent over the `us_domestic_wire` network + string? omad?; + # IMAD of the OutboundTransfer for transfers sent over the `us_domestic_wire` network + @constraint:String {maxLength: 5000} + string imad; +}; + +# +public type PaymentMethodCardPresent record { + # How card details were read in this transaction + @jsondata:Name {value: "read_method"} + "contact_emv"|"contactless_emv"|"contactless_magstripe_mode"|"magnetic_stripe_fallback"|"magnetic_stripe_track2"? readMethod?; + # 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 + string? country?; + # The last four digits of the card + string? last4?; + # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip + @jsondata:Name {value: "preferred_locales"} + PaymentMethodCardPresentPreferredlocalesItemsString[]? preferredLocales?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + string? funding?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay + @jsondata:Name {value: "cardholder_name"} + string? cardholderName?; + # Contains information about card networks that can be used to process the payment + PaymentMethodCardPresentNetworks? networks?; + # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + string? brand?; +}; + +# You can store multiple cards on a customer in order to charge the customer +# later. You can also store multiple debit cards on a recipient in order to +# transfer to those cards later. +# +# Related guide: [Card payments with Sources](https://stripe.com/docs/sources/cards) +public type Card record { + # 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 + string? country?; + # The last four digits of the card + @constraint:String {maxLength: 5000} + string last4; + # 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 + record {|string...;|}? metadata?; + # State/County/Province/Region + @jsondata:Name {value: "address_state"} + string? addressState?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + TokenCardNetworks networks?; + # 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) + @jsondata:Name {value: "cvc_check"} + string? cvcCheck?; + # Address line 2 (Apartment/Suite/Unit/Building) + @jsondata:Name {value: "address_line2"} + string? addressLine2?; + # Address line 1 (Street address/PO Box/Company name) + @jsondata:Name {value: "address_line1"} + string? addressLine1?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # 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. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + string? currency?; + # Whether this card is the default external account for its currency. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + @jsondata:Name {value: "default_for_currency"} + boolean? defaultForCurrency?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # (For tokenized numbers only.) The last four digits of the device account number + @jsondata:Name {value: "dynamic_last4"} + string? dynamicLast4?; + # A set of available payout methods for this card. Only values from this set should be passed as the `method` when creating a payout + @jsondata:Name {value: "available_payout_methods"} + ("instant"|"standard")[]? availablePayoutMethods?; + # Card brand. Can be `American Express`, `Diners Club`, `Discover`, `Eftpos Australia`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown` + @constraint:String {maxLength: 5000} + string brand; + # If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_zip_check"} + string? addressZipCheck?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + @constraint:String {maxLength: 5000} + string funding; + # Billing address country, if provided when creating card + @jsondata:Name {value: "address_country"} + string? addressCountry?; + # City/District/Suburb/Town/Village + @jsondata:Name {value: "address_city"} + string? addressCity?; + # 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 + @jsondata:Name {value: "tokenization_method"} + string? tokenizationMethod?; + # Cardholder name + string? name?; + # If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_line1_check"} + string? addressLine1Check?; + # ZIP or postal code + @jsondata:Name {value: "address_zip"} + string? addressZip?; + # 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. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + string|Account? account?; + # 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 + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "card" 'object; + # For external accounts that are cards, possible values are `new` and `errored`. If a payout fails, the status is set to `errored` and [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) are stopped until account details are updated + string? status?; +}; + +public type TopupsBody record {| + # Extra information about a top-up for the source's bank statement. Limited to 15 ASCII characters + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # A positive integer representing how much to transfer + int amount; + # Specifies which fields in the response should be expanded + TopupsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # A string that identifies this top-up as part of a group + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # The ID of a source to transfer funds from. For most users, this should be left unspecified which will use the bank account that was set up in the dashboard for the specified currency. In test mode, this can be a test bank token (see [Testing Top-ups](https://stripe.com/docs/connect/testing#testing-top-ups)) + @constraint:String {maxLength: 5000} + string 'source?; +|}; + +# Balance transactions represent funds moving through your Stripe account. +# Stripe creates them for every type of transaction that enters or leaves your Stripe account balance. +# +# Related guide: [Balance transaction types](https://stripe.com/docs/reports/balance-transaction-types) +public type BalanceTransaction record { + # Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party + int amount; + # The date that the transaction's net funds become available in the Stripe balance + @jsondata:Name {value: "available_on"} + int availableOn; + # If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the `amount` in currency A, multipled by the `exchange_rate`, equals the `amount` in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's `amount` is `1000` and `currency` is `eur`. If this converts to 12.34 USD in your Stripe account, the BalanceTransaction's `amount` is `1234`, its `currency` is `usd`, and the `exchange_rate` is `1.234` + @jsondata:Name {value: "exchange_rate"} + decimal? exchangeRate?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed + int fee; + # Learn more about how [reporting categories](https://stripe.com/docs/reports/reporting-categories) can help you understand balance transactions from an accounting perspective + @jsondata:Name {value: "reporting_category"} + string reportingCategory; + # Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction + @jsondata:Name {value: "fee_details"} + Fee[] feeDetails; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # This transaction relates to the Stripe object + string|ApplicationFee|Charge|ConnectCollectionTransfer|CustomerCashBalanceTransaction|Dispute|FeeRefund|IssuingAuthorization|IssuingDispute|IssuingTransaction|Payout|Refund|ReserveTransaction|TaxDeductedAtSource|Topup|Transfer|TransferReversal? 'source?; + # Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. Learn more about [balance transaction types and what they represent](https://stripe.com/docs/reports/balance-transaction-types). To classify transactions for accounting purposes, consider `reporting_category` instead + "adjustment"|"advance"|"advance_funding"|"anticipation_repayment"|"application_fee"|"application_fee_refund"|"charge"|"climate_order_purchase"|"climate_order_refund"|"connect_collection_transfer"|"contribution"|"issuing_authorization_hold"|"issuing_authorization_release"|"issuing_dispute"|"issuing_transaction"|"obligation_outbound"|"obligation_reversal_inbound"|"payment"|"payment_failure_refund"|"payment_network_reserve_hold"|"payment_network_reserve_release"|"payment_refund"|"payment_reversal"|"payment_unreconciled"|"payout"|"payout_cancel"|"payout_failure"|"refund"|"refund_failure"|"reserve_transaction"|"reserved_funds"|"stripe_fee"|"stripe_fx_fee"|"tax_fee"|"topup"|"topup_reversal"|"transfer"|"transfer_cancel"|"transfer_failure"|"transfer_refund" 'type; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Net impact to a Stripe balance (in cents (or local equivalent)). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by `amount` - `fee` + int net; + # String representing the object's type. Objects of the same type share the same value + "balance_transaction" 'object; + # The transaction's net funds status in the Stripe balance, which are either `available` or `pending` + @constraint:String {maxLength: 5000} + string status; +}; + +public type CountrySpecSupportedpaymentmethodsItemsString string; + +# +public type TaxRatesList record { + TaxRate[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/tax_rates`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SubscriptionBillingCycleAnchorSubscriptionBillingCycleAnchorAnyOf12 int; + +@constraint:String {maxLength: 5000} +public type GetTreasuryFinancialAccountsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetInvoicesUpcoming +public type GetInvoicesUpcomingQueries record { + # A list of up to 20 subscription items, each with an attached price. This field has been deprecated and will be removed in a future API version. Use `subscription_details.items` instead + @http:Query {name: "subscription_items"} + SubscriptionItemUpdateParams[] subscriptionItems?; + # List of invoice items to add or update in the upcoming invoice preview + @http:Query {name: "invoice_items"} + InvoiceItemPreviewParams[] invoiceItems?; + # For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.billing_cycle_anchor` instead + @http:Query {name: "subscription_billing_cycle_anchor"} + SubscriptionBillingCycleAnchor subscriptionBillingCycleAnchor?; + # The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions + @constraint:String {maxLength: 5000} + string subscription?; + # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account + Param2 issuer?; + # This simulates the subscription being canceled or expired immediately. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_now` instead + @http:Query {name: "subscription_cancel_now"} + boolean subscriptionCancelNow?; + # Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set + @http:Query {name: "customer_details"} + CustomerDetailsParam1 customerDetails?; + # Boolean indicating whether this subscription should cancel at the end of the current period. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at_period_end` instead + @http:Query {name: "subscription_cancel_at_period_end"} + boolean subscriptionCancelAtPeriodEnd?; + # The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts + Discounts discounts?; + # For paused subscriptions, setting `subscription_resume_at` to `now` will preview the invoice that will be generated if the subscription is resumed. This field has been deprecated and will be removed in a future API version. Use `subscription_details.resume_at` instead + @http:Query {name: "subscription_resume_at"} + "now" subscriptionResumeAt?; + # Date a subscription is intended to start (can be future or past). This field has been deprecated and will be removed in a future API version. Use `subscription_details.start_date` instead + @http:Query {name: "subscription_start_date"} + int subscriptionStartDate?; + # The currency to preview this invoice in. Defaults to that of `customer` if not specified + string currency?; + # If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period and within the current phase of the schedule backing this subscription, if the schedule exists. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration_behavior` cannot be set to 'none'. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_date` instead + @http:Query {name: "subscription_proration_date"} + int subscriptionProrationDate?; + # The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields + @http:Query {name: "schedule_details"} + ScheduleDetailsParams1 scheduleDetails?; + # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details + @http:Query {name: "on_behalf_of"} + OnBehalfOf onBehalfOf?; + # If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_items` or `subscription` is required. This field has been deprecated and will be removed in a future API version. Use `subscription_details.trial_end` instead + @http:Query {name: "subscription_trial_end"} + SubscriptionTrialEnd subscriptionTrialEnd?; + # The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields + @constraint:String {maxLength: 5000} + string schedule?; + # Specifies which fields in the response should be expanded + GetInvoicesUpcomingQueriesExpandItemsString[] expand?; + # Settings for automatic tax lookup for this invoice preview + @http:Query {name: "automatic_tax"} + AutomaticTaxParam2 automaticTax?; + # The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields + @http:Query {name: "subscription_details"} + SubscriptionDetailsParams1 subscriptionDetails?; + # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at` instead + @http:Query {name: "subscription_cancel_at"} + SubscriptionCancelAt subscriptionCancelAt?; + # If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have `tax_rates` set. This field has been deprecated and will be removed in a future API version. Use `subscription_details.default_tax_rates` instead + @http:Query {name: "subscription_default_tax_rates"} + SubscriptionDefaultTaxRates subscriptionDefaultTaxRates?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_behavior` instead + @http:Query {name: "subscription_proration_behavior"} + "always_invoice"|"create_prorations"|"none" subscriptionProrationBehavior?; + # Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified + @http:Query {name: "preview_mode"} + "next"|"recurring" previewMode?; + # The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set + @constraint:String {maxLength: 5000} + string customer?; +}; + +# +public type SearchResult3 record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + PaymentIntent[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +public type AccountFutureRequirementsPendingverificationItemsString string; + +# +public type AccountList record { + Account[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/accounts`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SearchResult4 record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + Price[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +# +public type SearchResult1 record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + Customer[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +# +public type SearchResult2 record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + Invoice[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +# +public type SearchResult5 record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + Product[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +# +public type SearchResult6 record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + Subscription[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +# +public type DisputeEvidence record { + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer + @jsondata:Name {value: "refund_policy"} + string|File? refundPolicy?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service + @jsondata:Name {value: "customer_communication"} + string|File? customerCommunication?; + # The date on which a physical product began its route to the shipping address, in a clear human-readable format + @jsondata:Name {value: "shipping_date"} + string? shippingDate?; + # The billing address provided by the customer + @jsondata:Name {value: "billing_address"} + string? billingAddress?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate + @jsondata:Name {value: "duplicate_charge_documentation"} + string|File? duplicateChargeDocumentation?; + # Documentation demonstrating that the customer was shown your refund policy prior to purchase + @jsondata:Name {value: "refund_policy_disclosure"} + string? refundPolicyDisclosure?; + # The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas + @jsondata:Name {value: "shipping_carrier"} + string? shippingCarrier?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement + @jsondata:Name {value: "service_documentation"} + string|File? serviceDocumentation?; + # Any additional evidence or statements + @jsondata:Name {value: "uncategorized_text"} + string? uncategorizedText?; + # An explanation of how and when the customer was shown your refund policy prior to purchase + @jsondata:Name {value: "cancellation_policy_disclosure"} + string? cancellationPolicyDisclosure?; + # The date on which the customer received or began receiving the purchased service, in a clear human-readable format + @jsondata:Name {value: "service_date"} + string? serviceDate?; + # The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge + @jsondata:Name {value: "duplicate_charge_id"} + string? duplicateChargeId?; + # The address to which a physical product was shipped. You should try to include as complete address information as possible + @jsondata:Name {value: "shipping_address"} + string? shippingAddress?; + # A description of the product or service that was sold + @jsondata:Name {value: "product_description"} + string? productDescription?; + # An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate + @jsondata:Name {value: "duplicate_charge_explanation"} + string? duplicateChargeExplanation?; + # The IP address that the customer used when making the purchase + @jsondata:Name {value: "customer_purchase_ip"} + string? customerPurchaseIp?; + # A justification for why the customer is not entitled to a refund + @jsondata:Name {value: "refund_refusal_explanation"} + string? refundRefusalExplanation?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements + @jsondata:Name {value: "uncategorized_file"} + string|File? uncategorizedFile?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible + @jsondata:Name {value: "shipping_documentation"} + string|File? shippingDocumentation?; + # Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity + @jsondata:Name {value: "access_activity_log"} + string? accessActivityLog?; + # A justification for why the customer's subscription was not canceled + @jsondata:Name {value: "cancellation_rebuttal"} + string? cancellationRebuttal?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature + @jsondata:Name {value: "customer_signature"} + string|File? customerSignature?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer + @jsondata:Name {value: "cancellation_policy"} + string|File? cancellationPolicy?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge + string|File? receipt?; + # The name of the customer + @jsondata:Name {value: "customer_name"} + string? customerName?; + # The email address of the customer + @jsondata:Name {value: "customer_email_address"} + string? customerEmailAddress?; + # The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas + @jsondata:Name {value: "shipping_tracking_number"} + string? shippingTrackingNumber?; +}; + +# +public type PaymentMethodDetailsBancontact record { + # The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge + @jsondata:Name {value: "generated_sepa_debit"} + string|PaymentMethod? generatedSepaDebit?; + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Last four characters of the IBAN + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # Owner's verified full name. Values are verified or provided by Bancontact directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge + @jsondata:Name {value: "generated_sepa_debit_mandate"} + string|Mandate? generatedSepaDebitMandate?; + # Bank Identifier Code of the bank associated with the bank account + string? bic?; + # Preferred language of the Bancontact authorization page that the customer is redirected to. + # Can be one of `en`, `de`, `fr`, or `nl` + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"fr"|"nl"? preferredLanguage?; +}; + +@constraint:String {maxLength: 5000} +public type GetRadarValueListItemsQueriesExpandItemsString string; + +public type PersonFullnamealiasesItemsString string; + +@constraint:String {maxLength: 5000} +public type TopupCancelBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetAccountsAccountCapabilitiesCapability +public type GetAccountsAccountCapabilitiesCapabilityQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountCapabilitiesCapabilityQueriesExpandItemsString[] expand?; +}; + +public type AccountsaccountBody record {| + @jsondata:Name {value: "tos_acceptance"} + TosAcceptanceSpecs tosAcceptance?; + SettingsSpecsUpdate settings?; + # 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` + record {|string...;|}|"" metadata?; + CapabilitiesParam capabilities?; + IndividualSpecs individual?; + DocumentsSpecs documents?; + # An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account + @jsondata:Name {value: "account_token"} + string accountToken?; + @jsondata:Name {value: "business_profile"} + BusinessProfileSpecs businessProfile?; + # Specifies which fields in the response should be expanded + AccountsaccountBodyExpandItemsString[] expand?; + # A card or bank account to attach to the account for receiving [payouts](/connect/bank-debit-card-payouts) (you won’t be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](/js), or a dictionary, as documented in the `external_account` parameter for [bank account](/api#account_create_bank_account) creation.

By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](/api#account_create_bank_account) or [card creation](/api#account_create_card) APIs. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + @jsondata:Name {value: "external_account"} + string externalAccount?; + # The business type. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + @jsondata:Name {value: "business_type"} + "company"|"government_entity"|"individual"|"non_profit" businessType?; + CompanySpecs company?; + # Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts) + @jsondata:Name {value: "default_currency"} + string defaultCurrency?; + # The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent + string email?; +|}; + +# Cart +public type Cart record { + int total; + string currency; + int tax?; + @jsondata:Name {value: "line_items"} + LineItem1[] lineItems; +}; + +# Represents the Queries record for the operation: GetPromotionCodes +public type GetPromotionCodesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPromotionCodesQueriesExpandItemsString[] expand?; + # Only return promotion codes that have this case-insensitive code + @constraint:String {maxLength: 5000} + string code?; + # Only return promotion codes for this coupon + @constraint:String {maxLength: 5000} + string coupon?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created28 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Filter promotion codes by whether they are active + boolean active?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return promotion codes that are restricted to this customer + @constraint:String {maxLength: 5000} + string customer?; +}; + +# Represents the Queries record for the operation: GetApplicationFeesId +public type GetApplicationFeesIdQueries record { + # Specifies which fields in the response should be expanded + GetApplicationFeesIdQueriesExpandItemsString[] expand?; +}; + +public type SessionCancelBody record {| + # Specifies which fields in the response should be expanded + SessionCancelBodyExpandItemsString[] expand?; +|}; + +# Information about fuel that was purchased with this transaction +public type FuelSpecs record { + "charging_minute"|"imperial_gallon"|"kilogram"|"kilowatt_hour"|"liter"|"other"|"pound"|"us_gallon" unit?; + @jsondata:Name {value: "quantity_decimal"} + string quantityDecimal?; + @jsondata:Name {value: "industry_product_code"} + string industryProductCode?; + "diesel"|"other"|"unleaded_plus"|"unleaded_regular"|"unleaded_super" 'type?; + @jsondata:Name {value: "unit_cost_decimal"} + string unitCostDecimal?; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingAuthorizationsAuthorizationQueriesExpandItemsString string; + +public type ReportingReportTypeDefaultcolumnsItemsString string; + +public type InvoiceSettingSubscriptionScheduleSettingAccountTaxIds AccountTaxIdsAnyOf12|TaxId|DeletedTaxId; + +# Represents the Queries record for the operation: GetWebhookEndpointsWebhookEndpoint +public type GetWebhookEndpointsWebhookEndpointQueries record { + # Specifies which fields in the response should be expanded + GetWebhookEndpointsWebhookEndpointQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentIntentPaymentMethodOptionsSwish record { + # The order ID displayed in the Swish app after the payment is authorized + string? reference?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type VerificationSessionssessionBody record {| + @jsondata:Name {value: "provided_details"} + ProvidedDetailsParam providedDetails?; + # Specifies which fields in the response should be expanded + VerificationSessionssessionBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + SessionOptionsParam options?; + # The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed + "document"|"id_number" 'type?; +|}; + +public type SubscriptionItemDiscounts DiscountsAnyOf15|Discount; + +# Additional parameters for `bank_transfer` funding types +public type BankTransferParams record { + @jsondata:Name {value: "eu_bank_transfer"} + EuBankAccountParams euBankTransfer?; + @jsondata:Name {value: "requested_address_types"} + ("iban"|"sort_code"|"spei"|"zengin")[] requestedAddressTypes?; + "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer" 'type; +}; + +public type TransactedAtRangeQuerySpecs132 int; + +# +public type AccountDeclineChargeOn record { + # Whether Stripe automatically declines charges with an incorrect ZIP or postal code. This setting only applies when a ZIP or postal code is provided and they fail bank verification + @jsondata:Name {value: "avs_failure"} + boolean avsFailure; + # Whether Stripe automatically declines charges with an incorrect CVC. This setting only applies when a CVC is provided and it fails bank verification + @jsondata:Name {value: "cvc_failure"} + boolean cvcFailure; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionSchedulesscheduleBodyExpandItemsString string; + +# +public type LegalEntityCompanyVerification record { + LegalEntityCompanyVerificationDocument document; +}; + +public type BuyButtonParam record { + boolean enabled; +}; + +public type LinkedAccountOptionsParam1PermissionsItemsString "balances"|"ownership"|"payment_method"|"transactions"; + +# +public type IssuingTransactionFleetFuelPriceData record { + # Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes + @jsondata:Name {value: "gross_amount_decimal"} + string? grossAmountDecimal?; +}; + +# +public type GelatoVerificationReportList record { + IdentityVerificationReport[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/identity/verification_reports`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type BankAccountsidBody1ExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AccountSessionsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTerminalLocationsLocationQueriesExpandItemsString string; + +public type TokensBody record {| + PiiTokenSpecs pii?; + # Specifies which fields in the response should be expanded + TokensBodyExpandItemsString[] expand?; + PersonTokenSpecs person?; + ConnectJsAccountTokenSpecs account?; + # The card this token will represent. If you also pass in a customer, the card must be the ID of a card belonging to the customer. Otherwise, if you do not pass in a customer, this is a dictionary containing a user's credit card details, with the options described below + record {string address_city?; string address_country?; string address_line1?; string address_line2?; string address_state?; string address_zip?; string currency?; string cvc?; string exp_month; string exp_year; string name?; record {"cartes_bancaires"|"mastercard"|"visa" preferred?;} networks?; string number;}|string card?; + @jsondata:Name {value: "cvc_update"} + CvcParams cvcUpdate?; + @jsondata:Name {value: "bank_account"} + TokenCreateBankAccount bankAccount?; + # Create a token for the customer, which is owned by the application's account. You can only use this with an [OAuth access token](https://stripe.com/docs/connect/standard-accounts) or [Stripe-Account header](https://stripe.com/docs/connect/authentication). Learn more about [cloning saved payment methods](https://stripe.com/docs/connect/cloning-saved-payment-methods) + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# Information on whether this personalization design is used to create cards when one is not specified +public type PreferencesParam record { + @jsondata:Name {value: "is_default"} + boolean isDefault; +}; + +# Represents the Queries record for the operation: GetPaymentIntents +public type GetPaymentIntentsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPaymentIntentsQueriesExpandItemsString[] expand?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp or a dictionary with a number of different query options + Created23 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return PaymentIntents for the customer that this customer ID specifies + @constraint:String {maxLength: 5000} + string customer?; +}; + +# +public type InvoiceSettingSubscriptionSchedulePhaseSetting record { + # The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule + @jsondata:Name {value: "account_tax_ids"} + InvoiceSettingSubscriptionSchedulePhaseSettingAccountTaxIds[]? accountTaxIds?; + # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically` + @jsondata:Name {value: "days_until_due"} + int? daysUntilDue?; + # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account + ConnectAccountReference? issuer?; +}; + +@constraint:String {maxLength: 5000} +public type GetApplicationFeesIdRefundsQueriesExpandItemsString string; + +public type TreasurySettingsSpecs record { + @jsondata:Name {value: "tos_acceptance"} + SettingsTermsOfServiceSpecs tosAcceptance?; +}; + +public type SubscriptionUpdateCreationParam record { + @jsondata:Name {value: "default_allowed_updates"} + ("price"|"promotion_code"|"quantity")[]|"" defaultAllowedUpdates; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + boolean enabled; + record {ProductsItemsObjectPricesItemsString[] prices; string product;}[]|"" products; +}; + +# +public type Period record { + # The start date of this usage period. All usage after this point in time is included + int? 'start?; + # The end date of this usage period. All usage up to and including this point in time is included + int? end?; +}; + +# +public type PaymentMethodDetailsEps record { + # The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau` + "arzte_und_apotheker_bank"|"austrian_anadi_bank_ag"|"bank_austria"|"bankhaus_carl_spangler"|"bankhaus_schelhammer_und_schattera_ag"|"bawag_psk_ag"|"bks_bank_ag"|"brull_kallmus_bank_ag"|"btv_vier_lander_bank"|"capital_bank_grawe_gruppe_ag"|"deutsche_bank_ag"|"dolomitenbank"|"easybank_ag"|"erste_bank_und_sparkassen"|"hypo_alpeadriabank_international_ag"|"hypo_bank_burgenland_aktiengesellschaft"|"hypo_noe_lb_fur_niederosterreich_u_wien"|"hypo_oberosterreich_salzburg_steiermark"|"hypo_tirol_bank_ag"|"hypo_vorarlberg_bank_ag"|"marchfelder_bank"|"oberbank_ag"|"raiffeisen_bankengruppe_osterreich"|"schoellerbank_ag"|"sparda_bank_wien"|"volksbank_gruppe"|"volkskreditbank_ag"|"vr_bank_braunau"? bank?; + # Owner's verified full name. Values are verified or provided by EPS directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated. + # EPS rarely provides this information so the attribute is usually empty + @jsondata:Name {value: "verified_name"} + string? verifiedName?; +}; + +# +public type DeletedCoupon record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "coupon" 'object; +}; + +# +public type ApplicationFee record { + # Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds) + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # Amount earned, in cents (or local equivalent) + int amount; + # ID of the charge that the application fee was taken from + string|Charge charge; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Polymorphic source of the application fee. Includes the ID of the object the application fee was created from + @jsondata:Name {value: "fee_source"} + PlatformEarningFeeSource? feeSource?; + # Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the fee if a partial refund was issued) + @jsondata:Name {value: "amount_refunded"} + int amountRefunded; + FeeRefundList1 refunds; + # ID of the Connect application that earned the fee + string|Application application; + # ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter + @jsondata:Name {value: "originating_transaction"} + string|Charge? originatingTransaction?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false + boolean refunded; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # ID of the Stripe account this fee was taken from + string|Account account; + # String representing the object's type. Objects of the same type share the same value + "application_fee" 'object; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionItemsitemBodyExpandItemsString string; + +public type SetupIntentParam record { + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge" requestThreeDSecure?; + @jsondata:Name {value: "mandate_options"} + SetupIntentMandateOptionsParam mandateOptions?; + @jsondata:Name {value: "three_d_secure"} + SetupIntentPaymentMethodOptionsParam1 threeDSecure?; + "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa" network?; +}; + +# A list of refunds that have been applied to the charge +public type RefundList1 record { + # Details about each object + Refund[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type FileResourceFileLinkList record { + # Details about each object + FileLink[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/file_links`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# An object containing device type specific settings for Verifone P400 readers +public type VerifoneP400 record { + string|"" splashscreen?; +}; + +# Represents the Queries record for the operation: GetQuotesQuote +public type GetQuotesQuoteQueries record { + # Specifies which fields in the response should be expanded + GetQuotesQuoteQueriesExpandItemsString[] expand?; +}; + +public type IntentVerifyMicrodepositsBody record {| + # Specifies which fields in the response should be expanded + IntentVerifyMicrodepositsBodyExpandItemsString[] expand?; + # Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account + int[] amounts?; + # A six-character code starting with SM present in the microdeposit sent to the bank account + @jsondata:Name {value: "descriptor_code"} + string descriptorCode?; + # The client secret of the PaymentIntent + @jsondata:Name {value: "client_secret"} + string clientSecret?; +|}; + +# +public type PaymentPagesCheckoutSessionCustomerDetails record { + # The customer's address after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022 + Address? address?; + # The customer’s tax IDs after a completed Checkout Session + @jsondata:Name {value: "tax_ids"} + PaymentPagesCheckoutSessionTaxId[]? taxIds?; + # The customer's phone number after a completed Checkout Session + string? phone?; + # The customer’s tax exempt status after a completed Checkout Session + @jsondata:Name {value: "tax_exempt"} + "exempt"|"none"|"reverse"? taxExempt?; + # The customer's name after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022 + string? name?; + # The email associated with the Customer, if one exists, on the Checkout Session after a completed Checkout Session or at time of session expiry. + # Otherwise, if the customer has consented to promotional content, this value is the most recent valid email provided by the customer on the Checkout form + string? email?; +}; + +# +public type IssuingAuthorizationAuthenticationExemption record { + # The specific exemption claimed for this authorization + "low_value_transaction"|"transaction_risk_analysis"|"unknown" 'type; + # The entity that requested the exemption, either the acquiring merchant or the Issuing user + @jsondata:Name {value: "claimed_by"} + "acquirer"|"issuer" claimedBy; +}; + +# Represents the Queries record for the operation: GetTaxRates +public type GetTaxRatesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Optional flag to filter by tax rates that are inclusive (or those that are not inclusive) + boolean inclusive?; + # Specifies which fields in the response should be expanded + GetTaxRatesQueriesExpandItemsString[] expand?; + # Optional range for filtering created date + Created40 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Optional flag to filter by tax rates that are either active or inactive (archived) + boolean active?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountPersonsPersonQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type PaymentMethodConfigurationsconfigurationBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TreasuryCreditReversalsBodyExpandItemsString string; + +# +public type ApplePayDomain record { + @jsondata:Name {value: "domain_name"} + string domainName; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "apple_pay_domain" 'object; +}; + +# The reason(s) the personalization design was rejected +public type RejectionReasonsParam record { + @jsondata:Name {value: "carrier_text"} + ("geographic_location"|"inappropriate"|"network_name"|"non_fiat_currency"|"other"|"other_entity"|"promotional_material")[] carrierText?; + @jsondata:Name {value: "card_logo"} + ("geographic_location"|"inappropriate"|"network_name"|"non_binary_image"|"non_fiat_currency"|"other"|"other_entity"|"promotional_material")[] cardLogo?; +}; + +# +public type CheckoutCardInstallmentsOptions record { + # Indicates if installments are enabled + boolean enabled?; +}; + +@constraint:String {maxLength: 5000} +public type CardholderscardholderBodyExpandItemsString string; + +# An issuing token object is created when an issued card is added to a digital wallet. As a [card issuer](https://stripe.com/docs/issuing), you can [view and manage these tokens](https://stripe.com/docs/issuing/controls/token-management) through Stripe +public type IssuingToken record { + # The hashed ID derived from the device ID from the card network associated with the token + @jsondata:Name {value: "device_fingerprint"} + string? deviceFingerprint?; + # The last four digits of the token + @constraint:String {maxLength: 5000} + string last4?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "network_data"} + IssuingNetworkTokenNetworkData networkData?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Time at which the token was last updated by the card network. Measured in seconds since the Unix epoch + @jsondata:Name {value: "network_updated_at"} + int networkUpdatedAt; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The digital wallet for this token, if one was used + @jsondata:Name {value: "wallet_provider"} + "apple_pay"|"google_pay"|"samsung_pay" walletProvider?; + # Card associated with this token + string|IssuingCard card; + # The token service provider / card network associated with the token + "mastercard"|"visa" network; + # String representing the object's type. Objects of the same type share the same value + "issuing.token" 'object; + # The usage state of the token + "active"|"deleted"|"requested"|"suspended" status; +}; + +# +public type TreasuryReceivedDebitsResourceLinkedFlows record { + # Set if the ReceivedDebit is also viewable as an [Issuing Dispute](https://stripe.com/docs/api#issuing_disputes) object + @jsondata:Name {value: "issuing_transaction"} + string? issuingTransaction?; + # Set if the ReceivedDebit is associated with an InboundTransfer's return of funds + @jsondata:Name {value: "inbound_transfer"} + string? inboundTransfer?; + # Set if the ReceivedDebit was created due to a [Payout](https://stripe.com/docs/api#payouts) object + string? payout?; + # The DebitReversal created as a result of this ReceivedDebit being reversed + @jsondata:Name {value: "debit_reversal"} + string? debitReversal?; + # Set if the ReceivedDebit was created due to an [Issuing Authorization](https://stripe.com/docs/api#issuing_authorizations) object + @jsondata:Name {value: "issuing_authorization"} + string? issuingAuthorization?; +}; + +# +public type ListAccountCapability record { + Capability[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetWebhookEndpoints +public type GetWebhookEndpointsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetWebhookEndpointsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type Created1RangeQuerySpecs12 int; + +@constraint:String {maxLength: 5000} +public type QuoteCancelBodyExpandItemsString string; + +# +public type IssuingTransactionFlightDataLeg record { + # The airline carrier code + string? carrier?; + # The flight number + @jsondata:Name {value: "flight_number"} + string? flightNumber?; + # The three-letter IATA airport code that the flight departed from + @jsondata:Name {value: "departure_airport_code"} + string? departureAirportCode?; + # The three-letter IATA airport code of the flight's destination + @jsondata:Name {value: "arrival_airport_code"} + string? arrivalAirportCode?; + # Whether a stopover is allowed on this flight + @jsondata:Name {value: "stopover_allowed"} + boolean? stopoverAllowed?; + # The flight's service class + @jsondata:Name {value: "service_class"} + string? serviceClass?; +}; + +# FinancialAddresses contain identifying information that resolves to a FinancialAccount +public type FundingInstructionsBankTransferFinancialAddress record { + # The payment networks supported by this FinancialAddress + @jsondata:Name {value: "supported_networks"} + ("ach"|"bacs"|"domestic_wire_us"|"fps"|"sepa"|"spei"|"swift"|"zengin")[] supportedNetworks?; + FundingInstructionsBankTransferAbaRecord aba?; + FundingInstructionsBankTransferSpeiRecord spei?; + FundingInstructionsBankTransferIbanRecord iban?; + FundingInstructionsBankTransferZenginRecord zengin?; + @jsondata:Name {value: "sort_code"} + FundingInstructionsBankTransferSortCodeRecord sortCode?; + # The type of financial address + "aba"|"iban"|"sort_code"|"spei"|"swift"|"zengin" 'type; + FundingInstructionsBankTransferSwiftRecord swift?; +}; + +public type FlightSpecs record { + @jsondata:Name {value: "travel_agency"} + string travelAgency?; + @jsondata:Name {value: "departure_at"} + int departureAt?; + boolean refundable?; + @jsondata:Name {value: "passenger_name"} + string passengerName?; + FlightSegmentSpecs[] segments?; +}; + +# +public type SubscriptionSchedulesResourceDefaultSettingsAutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # Whether Stripe automatically computes tax on invoices created during this phase + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type BankAccountsidBody2ExpandItemsString string; + +# +public type TreasuryOutboundPaymentsResourceAchTrackingDetails record { + # ACH trace ID of the OutboundPayment for payments sent over the `ach` network + @jsondata:Name {value: "trace_id"} + string traceId; +}; + +public type DiscountsDiscountsAnyOf162 ""; + +public type Created26 RangeQuerySpecs29|Created26RangeQuerySpecs292; + +public type Created27 RangeQuerySpecs30|Created27RangeQuerySpecs302; + +public type Created28 RangeQuerySpecs31|Created28RangeQuerySpecs312; + +public type Created29 RangeQuerySpecs32|Created29RangeQuerySpecs322; + +# +public type IssuingAuthorizationFleetNonFuelPriceData record { + # Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes + @jsondata:Name {value: "gross_amount_decimal"} + string? grossAmountDecimal?; +}; + +# +public type ConnectEmbeddedBaseFeatures record { +}; + +public type Created22 RangeQuerySpecs24|Created22RangeQuerySpecs242; + +public type Created23 RangeQuerySpecs25|Created23RangeQuerySpecs252; + +# Represents the Queries record for the operation: GetRefunds +public type GetRefundsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetRefundsQueriesExpandItemsString[] expand?; + # Only return refunds for the charge specified by this charge ID + string charge?; + # Only return refunds that were created during the given date interval + Created32 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return refunds for the PaymentIntent specified by this ID + @http:Query {name: "payment_intent"} + string paymentIntent?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type Created24 RangeQuerySpecs27|Created24RangeQuerySpecs272; + +public type Created25 RangeQuerySpecs28|Created25RangeQuerySpecs282; + +public type Created20 RangeQuerySpecs22|Created20RangeQuerySpecs222; + +public type Created21 RangeQuerySpecs23|Created21RangeQuerySpecs232; + +# +public type AccountUnificationAccountControllerStripeDashboard record { + # A value indicating the Stripe dashboard this account has access to independent of the Connect application + "express"|"full"|"none" 'type; +}; + +public type ScopeParam record { + "account"|"user" 'type; + @constraint:String {maxLength: 5000} + string user?; +}; + +# These fields can be used to create a new product that this price will belong to +public type InlineProductParams record { + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + record {|string...;|} metadata?; + @jsondata:Name {value: "tax_code"} + string taxCode?; + @constraint:String {maxLength: 5000} + string name; + boolean active?; + @constraint:String {maxLength: 5000} + string id?; + @jsondata:Name {value: "unit_label"} + string unitLabel?; +}; + +# Represents the Queries record for the operation: GetSourcesSource +public type GetSourcesSourceQueries record { + # Specifies which fields in the response should be expanded + GetSourcesSourceQueriesExpandItemsString[] expand?; + # The client secret of the source. Required if a publishable key is used to retrieve the source + @http:Query {name: "client_secret"} + string clientSecret?; +}; + +# Represents the Queries record for the operation: GetTreasuryTransactionEntries +public type GetTreasuryTransactionEntriesQueries record { + @http:Query {name: "effective_at"} + EffectiveAt effectiveAt?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryTransactionEntriesQueriesExpandItemsString[] expand?; + # Only return TransactionEntries that were created during the given date interval + Created45 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # The results are in reverse chronological order by `created` or `effective_at`. The default is `created` + @http:Query {name: "order_by"} + "created"|"effective_at" orderBy?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return TransactionEntries associated with this Transaction + @constraint:String {maxLength: 5000} + string 'transaction?; +}; + +public type Created37 RangeQuerySpecs40|Created37RangeQuerySpecs402; + +public type Created38 RangeQuerySpecs43|Created38RangeQuerySpecs432; + +public type Created39 RangeQuerySpecs45|Created39RangeQuerySpecs452; + +# +public type BalanceAmountBySourceType record { + # Amount for card + int card?; + # Amount for bank account + @jsondata:Name {value: "bank_account"} + int bankAccount?; + # Amount for FPX + int fpx?; +}; + +public type Created33 RangeQuerySpecs36|Created33RangeQuerySpecs362; + +public type Created34 RangeQuerySpecs37|Created34RangeQuerySpecs372; + +public type AccountSubscribeBody record {| + # The list of account features to which you would like to subscribe + ("transactions")[] features; + # Specifies which fields in the response should be expanded + AccountSubscribeBodyExpandItemsString[] expand?; +|}; + +public type Created35 RangeQuerySpecs38|Created35RangeQuerySpecs382; + +public type CardsidBody record {| + Owner owner?; + # 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` + record {|string...;|}|"" metadata?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + # Billing address country, if provided when creating card + @jsondata:Name {value: "address_country"} + string addressCountry?; + # State/County/Province/Region + @jsondata:Name {value: "address_state"} + string addressState?; + # Two digit number representing the card’s expiration month + @jsondata:Name {value: "exp_month"} + string expMonth?; + # Four digit number representing the card’s expiration year + @jsondata:Name {value: "exp_year"} + string expYear?; + # City/District/Suburb/Town/Village + @jsondata:Name {value: "address_city"} + string addressCity?; + # Specifies which fields in the response should be expanded + CardsidBodyExpandItemsString[] expand?; + # Address line 2 (Apartment/Suite/Unit/Building) + @jsondata:Name {value: "address_line2"} + string addressLine2?; + # Address line 1 (Street address/PO Box/Company name) + @jsondata:Name {value: "address_line1"} + string addressLine1?; + # The type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; + # Cardholder name + @constraint:String {maxLength: 5000} + string name?; + # ZIP or postal code + @jsondata:Name {value: "address_zip"} + string addressZip?; +|}; + +public type Created36 RangeQuerySpecs39|Created36RangeQuerySpecs392; + +# +public type PaymentLinksResourceSubscriptionDataInvoiceSettings record { + ConnectAccountReference issuer; +}; + +public type Created30 RangeQuerySpecs33|Created30RangeQuerySpecs332; + +public type Created31 RangeQuerySpecs34|Created31RangeQuerySpecs342; + +public type Created32 RangeQuerySpecs35|Created32RangeQuerySpecs352; + +public type IntentVerifyMicrodepositsBody1 record {| + # Specifies which fields in the response should be expanded + IntentVerifyMicrodepositsBody1ExpandItemsString[] expand?; + # Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account + int[] amounts?; + # A six-character code starting with SM present in the microdeposit sent to the bank account + @jsondata:Name {value: "descriptor_code"} + string descriptorCode?; + # The client secret of the SetupIntent + @jsondata:Name {value: "client_secret"} + string clientSecret?; +|}; + +# +public type DeletedBankAccount record { + # Always true for a deleted object + true deleted; + # Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account + string? currency?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "bank_account" 'object; +}; + +public type AccessWithAchDetails record { + boolean requested; +}; + +public type AccountPersonsBody record {| + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "registered_address"} + AddressSpecs1 registeredAddress?; + # The person's gender (International regulations require either "male" or "female") + string gender?; + PersonDocumentsSpecs2 documents?; + # The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs1 addressKana?; + # A list of alternate names or aliases that the person is known by + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + @jsondata:Name {value: "additional_tos_acceptances"} + PersonAdditionalTosAcceptancesSpecs additionalTosAcceptances?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs1 addressKanji?; + # The last four digits of the person's Social Security number (U.S. only) + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + RelationshipSpecs relationship?; + # The person's first name + @jsondata:Name {value: "first_name"} + string firstName?; + # The Kana variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + # The person's email address + string email?; + PersonVerificationSpecs1 verification?; + # The Kanji variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; + # The person's maiden name + @jsondata:Name {value: "maiden_name"} + string maidenName?; + # The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number"} + string idNumber?; + LegalEntityAndKycAddressSpecs1 address?; + # A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person + @jsondata:Name {value: "person_token"} + string personToken?; + # Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction + @jsondata:Name {value: "political_exposure"} + string politicalExposure?; + # The Kanji variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + # The person's last name + @jsondata:Name {value: "last_name"} + string lastName?; + # Specifies which fields in the response should be expanded + AccountPersonsBodyExpandItemsString[] expand?; + # The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable + @constraint:String {maxLength: 5000} + string nationality?; + # The person's phone number + string phone?; + # The person's date of birth + record {int day; int month; int year;}|"" dob?; + # The Kana variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; +|}; + +public type OnBehalfOfOnBehalfOfAnyOf12 ""; + +public type SettingsTermsOfServiceSpecs record { + int date?; + string ip?; + @jsondata:Name {value: "user_agent"} + string|"" userAgent?; +}; + +# Mutually exclusive with billing_cycle_anchor and only valid with monthly and yearly price intervals. When provided, the billing_cycle_anchor is set to the next occurence of the day_of_month at the hour, minute, and second UTC +public type BillingCycleAnchorConfigParam record { + int hour?; + int month?; + @jsondata:Name {value: "day_of_month"} + int dayOfMonth; + int minute?; + int second?; +}; + +public type Created44 RangeQuerySpecs53|Created44RangeQuerySpecs532; + +public type Created45 RangeQuerySpecs54|Created45RangeQuerySpecs542; + +# +public type PaymentPagesCheckoutSessionSavedPaymentMethodOptions record { + # Enable customers to choose if they wish to remove their saved payment methods. Disabled by default + @jsondata:Name {value: "payment_method_remove"} + "disabled"|"enabled"? paymentMethodRemove?; + # Enable customers to choose if they wish to save their payment method for future use. Disabled by default + @jsondata:Name {value: "payment_method_save"} + "disabled"|"enabled"? paymentMethodSave?; + # Uses the `allow_redisplay` value of each saved payment method to filter the set presented to a returning customer. By default, only saved payment methods with ’allow_redisplay: ‘always’ are shown in Checkout + @jsondata:Name {value: "allow_redisplay_filters"} + ("always"|"limited"|"unspecified")[]? allowRedisplayFilters?; +}; + +public type Created46 RangeQuerySpecs56|Created46RangeQuerySpecs562; + +public type Created40 RangeQuerySpecs48|Created40RangeQuerySpecs482; + +public type CalculationLineItem record { + @constraint:String {maxLength: 500} + string reference?; + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive" taxBehavior?; + int amount; + @constraint:String {maxLength: 5000} + string product?; + @jsondata:Name {value: "tax_code"} + string taxCode?; + int quantity?; +}; + +public type Created41 RangeQuerySpecs50|Created41RangeQuerySpecs502; + +public type Created42 RangeQuerySpecs51|Created42RangeQuerySpecs512; + +# Represents the Queries record for the operation: GetTaxRatesTaxRate +public type GetTaxRatesTaxRateQueries record { + # Specifies which fields in the response should be expanded + GetTaxRatesTaxRateQueriesExpandItemsString[] expand?; +}; + +public type Created43 RangeQuerySpecs52|Created43RangeQuerySpecs522; + +@constraint:String {maxLength: 5000} +public type GetRadarValueListsValueListQueriesExpandItemsString string; + +# Result from a phone check +public type GelatoPhoneReport record { + # Phone to be verified + string? phone?; + # Details on the verification error. Present when status is `unverified` + GelatoPhoneReportError? 'error?; + # Status of this `phone` check + "unverified"|"verified" status; +}; + +public type TerminalConnectionTokensBody record {| + # Specifies which fields in the response should be expanded + TerminalConnectionTokensBodyExpandItemsString[] expand?; + # The id of the location that this connection token is scoped to. If specified the connection token will only be usable with readers assigned to that location, otherwise the connection token will be usable with all readers. Note that location scoping only applies to internet-connected readers. For more details, see [the docs on scoping connection tokens](https://docs.stripe.com/terminal/fleet/locations-and-zones?dashboard-or-api=api#connection-tokens) + @constraint:String {maxLength: 5000} + string location?; +|}; + +# Represents the Queries record for the operation: GetBalance +public type GetBalanceQueries record { + # Specifies which fields in the response should be expanded + GetBalanceQueriesExpandItemsString[] expand?; +}; + +public type AuthorizationCaptureBody record {| + # Specifies which fields in the response should be expanded + AuthorizationCaptureBodyExpandItemsString[] expand?; + @jsondata:Name {value: "purchase_details"} + PurchaseDetailsSpecs purchaseDetails?; + # Whether to close the authorization after capture. Defaults to true. Set to false to enable multi-capture flows + @jsondata:Name {value: "close_authorization"} + boolean closeAuthorization?; + # The amount to capture from the authorization. If not provided, the full amount of the authorization will be captured. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "capture_amount"} + int captureAmount?; +|}; + +public type FleetCardholderPromptDataSpecs record { + @jsondata:Name {value: "driver_id"} + string driverId?; + int odometer?; + @jsondata:Name {value: "user_id"} + string userId?; + @jsondata:Name {value: "vehicle_number"} + string vehicleNumber?; + @jsondata:Name {value: "unspecified_id"} + string unspecifiedId?; +}; + +# Represents the Queries record for the operation: GetAccountsAccountPersonsPerson +public type GetAccountsAccountPersonsPersonQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountPersonsPersonQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type VerificationSessionssessionBodyExpandItemsString string; + +public type Created42RangeQuerySpecs512 int; + +# +public type PaymentMethodDetailsPaynow record { + # Reference number associated with this PayNow payment + string? reference?; +}; + +public type ChargeschargeBody record {| + # Specifies which fields in the response should be expanded + ChargeschargeBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + OptionalFieldsShipping shipping?; + # This is the email address that the receipt for this charge will be sent to. If this field is updated, then a new email receipt will be sent to the updated address + @jsondata:Name {value: "receipt_email"} + string receiptEmail?; + # An arbitrary string which you can attach to a charge object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing + @constraint:String {maxLength: 40000} + string description?; + @jsondata:Name {value: "fraud_details"} + FraudDetails fraudDetails?; + # The ID of an existing customer that will be associated with this request. This field may only be updated if there is no existing associated customer with this charge + @constraint:String {maxLength: 5000} + string customer?; +|}; + +public type ChargeDisputeBody record {| + # Specifies which fields in the response should be expanded + ChargeDisputeBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + DisputeEvidenceParams evidence?; + # Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default) + boolean submit?; +|}; + +public type CreditNoteLineItemParams record { + int amount?; + int quantity?; + @constraint:String {maxLength: 5000} + string description?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + @jsondata:Name {value: "invoice_line_item"} + string invoiceLineItem?; + "custom_line_item"|"invoice_line_item" 'type; + @jsondata:Name {value: "tax_amounts"} + record {int amount; string tax_rate; int taxable_amount;}[]|"" taxAmounts?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type GetTokensTokenQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type BillingMeterEventsBodyExpandItemsString string; + +# +public type SourceMandateNotificationBacsDebitData record { + # Last 4 digits of the account number associated with the debit + @constraint:String {maxLength: 5000} + string last4?; +}; + +# +public type BalanceAmountNet record { + # Breakdown of balance by destination + @jsondata:Name {value: "net_available"} + BalanceNetAvailable[] netAvailable?; + # Balance amount + int amount; + @jsondata:Name {value: "source_types"} + BalanceAmountBySourceType sourceTypes?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; +}; + +# Value list items allow you to add specific values to a given Radar value list, which can then be used in rules. +# +# Related guide: [Managing list items](https://stripe.com/docs/radar/lists#managing-list-items) +public type RadarValueListItem record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The identifier of the value list this item belongs to + @jsondata:Name {value: "value_list"} + string valueList; + # The name or email address of the user who added this item to the value list + @jsondata:Name {value: "created_by"} + string createdBy; + # The value of the item + @constraint:String {maxLength: 5000} + string value; + # String representing the object's type. Objects of the same type share the same value + "radar.value_list_item" 'object; +}; + +public type Created18RangeQuerySpecs202 int; + +# +public type DeletedInvoiceitem record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "invoiceitem" 'object; +}; + +public type TransactionsCreateForceCaptureBody record {| + # The total amount to attempt to capture. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Specifies which fields in the response should be expanded + TransactionsCreateForceCaptureBodyExpandItemsString[] expand?; + @jsondata:Name {value: "purchase_details"} + PurchaseDetailsSpecs purchaseDetails?; + @jsondata:Name {value: "merchant_data"} + MerchantDataSpecs merchantData?; + # The currency of the capture. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # Card associated with this transaction + @constraint:String {maxLength: 5000} + string card; +|}; + +@constraint:String {maxLength: 5000} +public type BillingPortalConfigurationsBodyExpandItemsString string; + +public type DisputesdisputeBody1 record {| + # The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount?; + # Specifies which fields in the response should be expanded + DisputesdisputeBody1ExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + EvidenceParam evidence?; +|}; + +public type PaymentMethodParam record { + @jsondata:Name {value: "account_number"} + string accountNumber; + @jsondata:Name {value: "institution_number"} + string institutionNumber; + @jsondata:Name {value: "transit_number"} + string transitNumber; +}; + +public type ReaderRefundPaymentBody record {| + # A positive integer in __cents__ representing how much of this charge to refund + int amount?; + # Specifies which fields in the response should be expanded + ReaderRefundPaymentBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # ID of the Charge to refund + @constraint:String {maxLength: 5000} + string charge?; + # Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge + @jsondata:Name {value: "refund_application_fee"} + boolean refundApplicationFee?; + # Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). A transfer can be reversed only by the application that created the charge + @jsondata:Name {value: "reverse_transfer"} + boolean reverseTransfer?; + # ID of the PaymentIntent to refund + @jsondata:Name {value: "payment_intent"} + string paymentIntent?; + @jsondata:Name {value: "refund_payment_config"} + RefundPaymentConfig refundPaymentConfig?; +|}; + +# +public type IssuingCardholderAddress record { + Address address; +}; + +public type ApplePayDomainsBody record {| + @jsondata:Name {value: "domain_name"} + string domainName; + # Specifies which fields in the response should be expanded + ApplePayDomainsBodyExpandItemsString[] expand?; +|}; + +public type TaxRatestaxRateBody record {| + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country?; + # Specifies which fields in the response should be expanded + TaxRatestaxRateBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The high-level tax type, such as `vat` or `sales_tax` + @jsondata:Name {value: "tax_type"} + "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat" taxType?; + # The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice + @constraint:String {maxLength: 50} + string jurisdiction?; + # Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set + boolean active?; + # An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers + @constraint:String {maxLength: 5000} + string description?; + # [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States + @constraint:String {maxLength: 2} + string state?; + # The display name of the tax rate, which will be shown to users + @jsondata:Name {value: "display_name"} + string displayName?; +|}; + +# +public type ChargeFraudDetails record { + # Assessments from Stripe. If set, the value is `fraudulent` + @jsondata:Name {value: "stripe_report"} + string stripeReport?; + # Assessments reported by you. If set, possible values of are `safe` and `fraudulent` + @jsondata:Name {value: "user_report"} + string userReport?; +}; + +# +public type PortalPublicResourceConfigurationList record { + BillingPortalConfiguration[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/billing_portal/configurations`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it +public type ShallowOrderSpecs record { + OrderShipping shipping?; + OrderItemSpecs[] items?; +}; + +@constraint:String {maxLength: 5000} +public type ReaderRefundPaymentBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetExchangeRatesRateIdQueriesExpandItemsString string; + +public type PaymentMethodDomainspaymentMethodDomainBody record {| + # Specifies which fields in the response should be expanded + PaymentMethodDomainspaymentMethodDomainBodyExpandItemsString[] expand?; + # Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements + boolean enabled?; +|}; + +public type PersonalizationDesignRejectBody record {| + # Specifies which fields in the response should be expanded + PersonalizationDesignRejectBodyExpandItemsString[] expand?; + @jsondata:Name {value: "rejection_reasons"} + RejectionReasonsParam rejectionReasons; +|}; + +# +public type PaymentMethodP24 record { + # The customer's bank, if provided + "alior_bank"|"bank_millennium"|"bank_nowy_bfg_sa"|"bank_pekao_sa"|"banki_spbdzielcze"|"blik"|"bnp_paribas"|"boz"|"citi_handlowy"|"credit_agricole"|"envelobank"|"etransfer_pocztowy24"|"getin_bank"|"ideabank"|"ing"|"inteligo"|"mbank_mtransfer"|"nest_przelew"|"noble_pay"|"pbac_z_ipko"|"plus_bank"|"santander_przelew24"|"tmobile_usbugi_bankowe"|"toyota_bank"|"velobank"|"volkswagen_bank"? bank?; +}; + +# Represents the Queries record for the operation: GetIssuingDisputesDispute +public type GetIssuingDisputesDisputeQueries record { + # Specifies which fields in the response should be expanded + GetIssuingDisputesDisputeQueriesExpandItemsString[] expand?; +}; + +public type DocumentsParam10Files FilesAnyOf19|FilesFilesAnyOf192; + +# Represents the Queries record for the operation: GetAccountsAccountExternalAccountsId +public type GetAccountsAccountExternalAccountsIdQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountExternalAccountsIdQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type AccountRefreshBodyExpandItemsString string; + +# +public type PromotionCodeCurrencyOption record { + # Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work) + @jsondata:Name {value: "minimum_amount"} + int minimumAmount; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceEuBankTransfer record { + # The last 4 digits of the IBAN of the sender of the funding + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # The full name of the sender, as supplied by the sending bank + @jsondata:Name {value: "sender_name"} + string? senderName?; + # The BIC of the bank of the sender of the funding + string? bic?; +}; + +public type Created5RangeQuerySpecs52 int; + +# +public type PaymentMethodOptionsPaynow record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# A payment method domain represents a web domain that you have registered with Stripe. +# Stripe Elements use registered payment method domains to control where certain payment methods are shown. +# +# Related guide: [Payment method domains](https://stripe.com/docs/payments/payment-methods/pmd-registration) +public type PaymentMethodDomain record { + @jsondata:Name {value: "apple_pay"} + PaymentMethodDomainResourcePaymentMethodStatus applePay; + # The domain name that this payment method domain object represents + @jsondata:Name {value: "domain_name"} + string domainName; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "google_pay"} + PaymentMethodDomainResourcePaymentMethodStatus googlePay; + PaymentMethodDomainResourcePaymentMethodStatus link; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + PaymentMethodDomainResourcePaymentMethodStatus paypal; + # Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements + boolean enabled; + # String representing the object's type. Objects of the same type share the same value + "payment_method_domain" 'object; +}; + +public type CustomFieldParam1 record { + CustomFieldNumericParam1 numeric?; + boolean optional?; + CustomFieldLabelParam label; + CustomFieldTextParam1 text?; + "dropdown"|"numeric"|"text" 'type; + CustomFieldDropdownParam1 dropdown?; + @constraint:String {maxLength: 200} + string 'key; +}; + +public type PriceData record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + RecurringAdhoc recurring?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# Each key of the dictionary represents an embedded component, and each embedded component maps to its configuration (e.g. whether it has been enabled or not) +public type AccountSessionCreateComponentsParam record { + PayoutsConfigParam payouts?; + @jsondata:Name {value: "account_onboarding"} + AccountConfigParam accountOnboarding?; + PayoutsConfigParam balances?; + @jsondata:Name {value: "account_management"} + AccountConfigParam accountManagement?; + @jsondata:Name {value: "payment_details"} + PaymentsConfigParam paymentDetails?; + BaseConfigParam documents?; + @jsondata:Name {value: "notification_banner"} + AccountConfigParam notificationBanner?; + PaymentsConfigParam payments?; + @jsondata:Name {value: "payouts_list"} + BaseConfigParam payoutsList?; +}; + +public type ProductFeaturesBody record {| + # The ID of the [Feature](https://stripe.com/docs/api/entitlements/feature) object attached to this product + @jsondata:Name {value: "entitlement_feature"} + string entitlementFeature; + # Specifies which fields in the response should be expanded + ProductFeaturesBodyExpandItemsString[] expand?; +|}; + +public type Standard record { + @jsondata:Name {value: "place_of_supply_scheme"} + "small_seller"|"standard" placeOfSupplyScheme; +}; + +# +public type IssuingAuthorizationFleetCardholderPromptData record { + # Driver ID + @jsondata:Name {value: "driver_id"} + string? driverId?; + # Odometer reading + int? odometer?; + # User ID + @jsondata:Name {value: "user_id"} + string? userId?; + # Vehicle number + @jsondata:Name {value: "vehicle_number"} + string? vehicleNumber?; + # [Deprecated] An alphanumeric ID, though typical point of sales only support numeric entry. The card program can be configured to prompt for a vehicle ID, driver ID, or generic ID + @jsondata:Name {value: "alphanumeric_id"} + string? alphanumericId?; + # An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type + @jsondata:Name {value: "unspecified_id"} + string? unspecifiedId?; +}; + +public type RadarValueListItemsBody record {| + # Specifies which fields in the response should be expanded + RadarValueListItemsBodyExpandItemsString[] expand?; + # The identifier of the value list which the created item will be added to + @jsondata:Name {value: "value_list"} + string valueList; + # The value of the item (whose type must match the type of the parent value list) + @constraint:String {maxLength: 800} + string value; +|}; + +public type PaymentMethodOptionsParam1 record { + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type PaymentMethodspaymentMethodBodyExpandItemsString string; + +# The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share) +public type LoginPageCreateParam record { + boolean enabled; +}; + +# Represents the Queries record for the operation: GetClimateOrders +public type GetClimateOrdersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetClimateOrdersQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type GetShippingRatesShippingRateTokenQueriesExpandItemsString string; + +public type PaymentMethodOptionsParam5 record { + @jsondata:Name {value: "statement_descriptor_suffix_kana"} + string statementDescriptorSuffixKana?; + InstallmentsParam installments?; + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge" requestThreeDSecure?; + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session" setupFutureUsage?; + @jsondata:Name {value: "statement_descriptor_suffix_kanji"} + string statementDescriptorSuffixKanji?; +}; + +public type PaymentMethodOptionsParam4 record { + @jsondata:Name {value: "expires_after_days"} + int expiresAfterDays?; + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +public type PaymentMethodOptionsParam3 record { + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +public type PaymentMethodOptionsParam2 record { + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +public type PaymentMethodOptionsParam9 record { + @jsondata:Name {value: "capture_method"} + ""|"manual" captureMethod?; + @constraint:String {maxLength: 127} + string reference?; + @jsondata:Name {value: "preferred_locale"} + "cs-CZ"|"da-DK"|"de-AT"|"de-DE"|"de-LU"|"el-GR"|"en-GB"|"en-US"|"es-ES"|"fi-FI"|"fr-BE"|"fr-FR"|"fr-LU"|"hu-HU"|"it-IT"|"nl-BE"|"nl-NL"|"pl-PL"|"pt-PT"|"sk-SK"|"sv-SE" preferredLocale?; + @jsondata:Name {value: "risk_correlation_id"} + string riskCorrelationId?; + @jsondata:Name {value: "setup_future_usage"} + ""|"none"|"off_session" setupFutureUsage?; +}; + +public type PaymentMethodOptionsParam8 record { + @jsondata:Name {value: "tos_shown_and_accepted"} + boolean tosShownAndAccepted?; + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type TreasuryOutboundTransfersResourceOutboundTransferResourceTrackingDetails record { + TreasuryOutboundTransfersResourceAchTrackingDetails ach?; + @jsondata:Name {value: "us_domestic_wire"} + TreasuryOutboundTransfersResourceUsDomesticWireTrackingDetails usDomesticWire?; + # The US bank account network used to send funds + "ach"|"us_domestic_wire" 'type; +}; + +public type PaymentMethodOptionsParam7 record { + @jsondata:Name {value: "expires_after_days"} + int expiresAfterDays?; + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type PaymentMethodOptionsParam6 record { + @jsondata:Name {value: "bank_transfer"} + BankTransferParam bankTransfer?; + @jsondata:Name {value: "funding_type"} + "bank_transfer" fundingType?; + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type IssuingDisputeFraudulentEvidence record { + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; +}; + +public type RegistrationsidBody record {| + # Specifies which fields in the response should be expanded + RegistrationsidBodyExpandItemsString[] expand?; + # If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch + @jsondata:Name {value: "expires_at"} + "now"|int|"" expiresAt?; + # Time at which the registration becomes active. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch + @jsondata:Name {value: "active_from"} + "now"|int activeFrom?; +|}; + +public type JapanAddressKanaSpecs record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string town?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +# +public type DisputeEvidenceDetails record { + # Whether evidence has been staged for this dispute + @jsondata:Name {value: "has_evidence"} + boolean hasEvidence; + # Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer's bank or credit card company doesn't allow a response for this particular dispute + @jsondata:Name {value: "due_by"} + int? dueBy?; + # The number of times evidence has been submitted. Typically, you may only submit evidence once + @jsondata:Name {value: "submission_count"} + int submissionCount; + # Whether the last evidence submission was submitted past the due date. Defaults to `false` if no evidence submissions have occurred. If `true`, then delivery of the latest evidence is *not* guaranteed + @jsondata:Name {value: "past_due"} + boolean pastDue; +}; + +public type IdentityVerificationSessionsBody record {| + @jsondata:Name {value: "provided_details"} + ProvidedDetailsParam providedDetails?; + # Specifies which fields in the response should be expanded + IdentityVerificationSessionsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + SessionOptionsParam options?; + # A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems + @jsondata:Name {value: "client_reference_id"} + string clientReferenceId?; + # The URL that the user will be redirected to upon completing the verification flow + @jsondata:Name {value: "return_url"} + string returnUrl?; + # The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. You must provide a `type` if not passing `verification_flow` + "document"|"id_number" 'type?; + # The ID of a Verification Flow from the Dashboard. See https://docs.stripe.com/identity/verification-flows + @jsondata:Name {value: "verification_flow"} + string verificationFlow?; +|}; + +public type AuthorizationControlsParamBlockedmerchantcountriesItemsString string; + +# +public type SourceMandateNotificationAcssDebitData record { + # The statement descriptor associate with the debit + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; +}; + +public type TestHelpersConfirmationTokensBody record {| + # Specifies which fields in the response should be expanded + TestHelpersConfirmationTokensBodyExpandItemsString[] expand?; + RecipientShippingWithOptionalFieldsAddress1 shipping?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams2 paymentMethodData?; + # Return URL used to confirm the Intent + @jsondata:Name {value: "return_url"} + string returnUrl?; + # Indicates that you intend to make future payments with this ConfirmationToken's payment method. + # + # The presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session" setupFutureUsage?; + # ID of an existing PaymentMethod + @jsondata:Name {value: "payment_method"} + string paymentMethod?; +|}; + +@constraint:String {maxLength: 5000} +public type SessionExpireBodyExpandItemsString string; + +public type SubscriptionCancelAt1 SubscriptionCancelAt1AnyOf1|SubscriptionCancelAt1SubscriptionCancelAt1AnyOf12; + +# A phase describes the plans, coupon, and trialing status of a subscription for a predefined time period +public type SubscriptionSchedulePhaseConfiguration record { + # The end of this phase of the subscription schedule + @jsondata:Name {value: "end_date"} + int endDate; + # The invoice settings applicable during this phase + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingSubscriptionSchedulePhaseSetting? invoiceSettings?; + # The default tax rates to apply to the subscription during this phase of the subscription schedule + @jsondata:Name {value: "default_tax_rates"} + TaxRate[]? defaultTaxRates?; + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered. Updating the underlying subscription's `metadata` directly will not affect the current phase's `metadata` + record {|string...;|}? metadata?; + # ID of the coupon to use during this phase of the subscription schedule + string|Coupon|DeletedCoupon? coupon?; + # The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings + @jsondata:Name {value: "default_payment_method"} + string|PaymentMethod? defaultPaymentMethod?; + # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + string? description?; + # When the trial ends within the phase + @jsondata:Name {value: "trial_end"} + int? trialEnd?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule + @jsondata:Name {value: "application_fee_percent"} + decimal? applicationFeePercent?; + # Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle) + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start"? billingCycleAnchor?; + # The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices + @jsondata:Name {value: "transfer_data"} + SubscriptionTransferData? transferData?; + @jsondata:Name {value: "automatic_tax"} + SchedulesPhaseAutomaticTax automaticTax?; + # The stackable discounts that will be applied to the subscription on this phase. Subscription item discounts are applied before subscription discounts + DiscountsResourceStackableDiscount[] discounts; + # A list of prices and quantities that will generate invoice items appended to the next invoice for this phase + @jsondata:Name {value: "add_invoice_items"} + SubscriptionScheduleAddInvoiceItem[] addInvoiceItems; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice"? collectionMethod?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + @jsondata:Name {value: "billing_thresholds"} + SubscriptionBillingThresholds? billingThresholds?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior; + # Subscription items to configure the subscription to during this phase of the subscription schedule + SubscriptionScheduleConfigurationItem[] items; + # The start of this phase of the subscription schedule + @jsondata:Name {value: "start_date"} + int startDate; +}; + +# Represents the Queries record for the operation: GetTaxRegistrations +public type GetTaxRegistrationsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTaxRegistrationsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The status of the Tax Registration + "active"|"all"|"expired"|"scheduled" status?; +}; + +public type CreditNotesBody record {| + # Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + "duplicate"|"fraudulent"|"order_change"|"product_unsatisfactory" reason?; + # The integer amount in cents (or local equivalent) representing the total amount of the credit note + int amount?; + # 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` + record {|string...;|} metadata?; + # Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note` + @jsondata:Name {value: "email_type"} + "credit_note"|"none" emailType?; + @jsondata:Name {value: "shipping_cost"} + CreditNoteShippingCost shippingCost?; + # The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice + @jsondata:Name {value: "credit_amount"} + int creditAmount?; + # The credit note's memo appears on the credit note PDF + @constraint:String {maxLength: 5000} + string memo?; + # The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe + @jsondata:Name {value: "out_of_band_amount"} + int outOfBandAmount?; + # The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF + @jsondata:Name {value: "effective_at"} + int effectiveAt?; + # Specifies which fields in the response should be expanded + CreditNotesBodyExpandItemsString[] expand?; + # The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice + @jsondata:Name {value: "refund_amount"} + int refundAmount?; + # ID of the invoice + @constraint:String {maxLength: 5000} + string invoice; + # Line items that make up the credit note + CreditNoteLineItemParams[] lines?; + # ID of an existing refund to link this credit note to + string refund?; +|}; + +# Shows last VerificationSession error +public type GelatoSessionLastError record { + # A message that explains the reason for verification or user-session failure + string? reason?; + # A short machine-readable string giving the reason for the verification or user-session failure + "abandoned"|"consent_declined"|"country_not_supported"|"device_not_supported"|"document_expired"|"document_type_not_supported"|"document_unverified_other"|"email_unverified_other"|"email_verification_declined"|"id_number_insufficient_document_data"|"id_number_mismatch"|"id_number_unverified_other"|"phone_unverified_other"|"phone_verification_declined"|"selfie_document_missing_photo"|"selfie_face_mismatch"|"selfie_manipulated"|"selfie_unverified_other"|"under_supported_age"? code?; +}; + +public type AccountsBody record {| + @jsondata:Name {value: "tos_acceptance"} + TosAcceptanceSpecs tosAcceptance?; + # The country in which the account holder resides, or in which the business is legally established. This should be an ISO 3166-1 alpha-2 country code. For example, if you are in the United States and the business for which you're creating an account is legally represented in Canada, you would use `CA` as the country for the account being created. Available countries include [Stripe's global markets](https://stripe.com/global) as well as countries where [cross-border payouts](https://stripe.com/docs/connect/cross-border-payouts) are supported + @constraint:String {maxLength: 5000} + string country?; + SettingsSpecs settings?; + ControllerSpecs controller?; + # 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` + record {|string...;|}|"" metadata?; + CapabilitiesParam capabilities?; + IndividualSpecs individual?; + DocumentsSpecs documents?; + # An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account + @jsondata:Name {value: "account_token"} + string accountToken?; + # The type of Stripe account to create. May be one of `custom`, `express` or `standard` + "custom"|"express"|"standard" 'type?; + @jsondata:Name {value: "business_profile"} + BusinessProfileSpecs businessProfile?; + # Specifies which fields in the response should be expanded + AccountsBodyExpandItemsString[] expand?; + # A card or bank account to attach to the account for receiving [payouts](/connect/bank-debit-card-payouts) (you won’t be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](/js), or a dictionary, as documented in the `external_account` parameter for [bank account](/api#account_create_bank_account) creation.

By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](/api#account_create_bank_account) or [card creation](/api#account_create_card) APIs. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + @jsondata:Name {value: "external_account"} + string externalAccount?; + # The business type. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + @jsondata:Name {value: "business_type"} + "company"|"government_entity"|"individual"|"non_profit" businessType?; + CompanySpecs company?; + # Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts) + @jsondata:Name {value: "default_currency"} + string defaultCurrency?; + # The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent + string email?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; "checking"|"futsu"|"savings"|"toza" account_type?; string country; string currency?; record {record {bank_account_ownership_verificationFilesItemsString[] files?;} bank_account_ownership_verification?;} documents?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTaxTransactionsTransactionLineItemsQueriesExpandItemsString string; + +# +public type IssuingCardholderIndividual record { + # Information related to the card_issuing program for this cardholder + @jsondata:Name {value: "card_issuing"} + IssuingCardholderCardIssuing? cardIssuing?; + # The date of birth of this cardholder + IssuingCardholderIndividualDob? dob?; + # The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters + @jsondata:Name {value: "last_name"} + string? lastName?; + # The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters + @jsondata:Name {value: "first_name"} + string? firstName?; + # Government-issued ID document for this cardholder + IssuingCardholderVerification? verification?; +}; + +@constraint:String {maxLength: 5000} +public type IdPostBodyExpandItemsString string; + +# The line items purchased by the customer +public type PaymentPagesCheckoutSessionListLineItems1 record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type CreatedRangeQuerySpecs2 int; + +public type SubscriptionCancellationReasonCreationParam record { + ("customer_service"|"low_quality"|"missing_features"|"other"|"switched_service"|"too_complex"|"too_expensive"|"unused")[]|"" options; + boolean enabled; +}; + +# All invoices will be billed using the specified settings +public type InvoiceSettingsParam record { + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + Param issuer?; +}; + +public type SubscriptionDataParamsDefaulttaxratesItemsString string; + +# +public type SetupIntentPaymentMethodOptionsAcssDebit record { + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + # Currency supported by the bank account + "cad"|"usd"? currency?; + @jsondata:Name {value: "mandate_options"} + SetupIntentPaymentMethodOptionsMandateOptionsAcssDebit mandateOptions?; +}; + +# The Kana variation of the person's address (Japan only) +public type JapanAddressKanaSpecs1 record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string town?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +@constraint:String {maxLength: 5000} +public type GetFileLinksLinkQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetProductsProductFeaturesIdQueriesExpandItemsString string; + +# Settings that restrict the usage of a payment link +public type RestrictionsParams record { + @jsondata:Name {value: "completed_sessions"} + CompletedSessionsParams completedSessions; +}; + +# +public type PaymentPagesCheckoutSessionCustomTextPosition record { + # Text may be up to 1200 characters in length + @constraint:String {maxLength: 500} + string message; +}; + +public type AutomaticTaxFilterParams record { + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetCreditNotesPreviewLinesQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetApplicationFeesIdRefunds +public type GetApplicationFeesIdRefundsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetApplicationFeesIdRefundsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type ScheduleReleaseBodyExpandItemsString string; + +public type PayoutsBody record {| + # A string that displays on the recipient's bank or card statement (up to 22 characters). A `statement_descriptor` that's longer than 22 characters return an error. Most banks truncate this information and display it inconsistently. Some banks might not display it at all + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # A positive integer in cents representing how much to payout + int amount; + # Specifies which fields in the response should be expanded + PayoutsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The method used to send this payout, which is `standard` or `instant`. We support `instant` for payouts to debit cards and bank accounts in certain countries. Learn more about [bank support for Instant Payouts](https://stripe.com/docs/payouts/instant-payouts-banks) + "instant"|"standard" method?; + # The ID of a bank account or a card to send the payout to. If you don't provide a destination, we use the default external account for the specified currency + string destination?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # The balance type of your Stripe balance to draw this payout from. Balances for different payment sources are kept separately. You can find the amounts with the Balances API. One of `bank_account`, `card`, or `fpx` + @jsondata:Name {value: "source_type"} + "bank_account"|"card"|"fpx" sourceType?; +|}; + +# Represents the Queries record for the operation: GetTreasuryOutboundPayments +public type GetTreasuryOutboundPaymentsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryOutboundPaymentsQueriesExpandItemsString[] expand?; + # Only return OutboundPayments that were created during the given date interval + Created44 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return OutboundPayments sent to this customer + @constraint:String {maxLength: 5000} + string customer?; + # Only return OutboundPayments that have the given status: `processing`, `failed`, `posted`, `returned`, or `canceled` + "canceled"|"failed"|"posted"|"processing"|"returned" status?; +}; + +# Encodes whether a FinancialAccount has access to a particular Feature, with a `status` enum and associated `status_details`. +# Stripe or the platform can control Features via the requested field +public type TreasuryFinancialAccountFeatures record { + @jsondata:Name {value: "outbound_payments"} + TreasuryFinancialAccountsResourceOutboundPayments outboundPayments?; + @jsondata:Name {value: "card_issuing"} + TreasuryFinancialAccountsResourceToggleSettings cardIssuing?; + @jsondata:Name {value: "intra_stripe_flows"} + TreasuryFinancialAccountsResourceToggleSettings intraStripeFlows?; + @jsondata:Name {value: "outbound_transfers"} + TreasuryFinancialAccountsResourceOutboundTransfers outboundTransfers?; + @jsondata:Name {value: "deposit_insurance"} + TreasuryFinancialAccountsResourceToggleSettings depositInsurance?; + @jsondata:Name {value: "inbound_transfers"} + TreasuryFinancialAccountsResourceInboundTransfers inboundTransfers?; + @jsondata:Name {value: "financial_addresses"} + TreasuryFinancialAccountsResourceFinancialAddressesFeatures financialAddresses?; + # String representing the object's type. Objects of the same type share the same value + "treasury.financial_account_features" 'object; +}; + +# +public type DisputePaymentMethodDetailsPaypal record { + # The reason for the dispute as defined by PayPal + @jsondata:Name {value: "reason_code"} + string? reasonCode?; + # The ID of the dispute in PayPal + @jsondata:Name {value: "case_id"} + string? caseId?; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesIncrementalAuthorizationIncrementalAuthorization record { + # Indicates whether or not the incremental authorization feature is supported + "available"|"unavailable" status; +}; + +# +public type TreasurySharedResourceBillingDetails record { + Address address; + # Full name + string? name?; + # Email address + string? email?; +}; + +# Represents the Queries record for the operation: GetQuotes +public type GetQuotesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetQuotesQueriesExpandItemsString[] expand?; + # Provides a list of quotes that are associated with the specified test clock. The response will not include quotes with test clocks if this and the customer parameter is not set + @http:Query {name: "test_clock"} + string testClock?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The ID of the customer whose quotes will be retrieved + @constraint:String {maxLength: 5000} + string customer?; + # The status of the quote + "accepted"|"canceled"|"draft"|"open" status?; +}; + +# +public type TaxProductResourceCustomerDetailsResourceTaxId record { + # The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, or `unknown` + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"unknown"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + # The value of the tax ID + @constraint:String {maxLength: 5000} + string value; +}; + +public type Created30RangeQuerySpecs332 int; + +public type Default record { + "standard" 'type; +}; + +@constraint:String {maxLength: 5000} +public type GetInvoicesInvoiceQueriesExpandItemsString string; + +# +public type PaymentIntentPaymentMethodOptions record { + PaymentMethodOptionsPaynow|PaymentIntentTypeSpecificPaymentMethodOptionsClient paynow?; + PaymentIntentPaymentMethodOptionsBlik|PaymentIntentTypeSpecificPaymentMethodOptionsClient blik?; + @jsondata:Name {value: "interac_present"} + PaymentMethodOptionsInteracPresent|PaymentIntentTypeSpecificPaymentMethodOptionsClient interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentIntentPaymentMethodOptionsAcssDebit|PaymentIntentTypeSpecificPaymentMethodOptionsClient acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodOptionsBacsDebit|PaymentIntentTypeSpecificPaymentMethodOptionsClient bacsDebit?; + PaymentMethodOptionsBoleto|PaymentIntentTypeSpecificPaymentMethodOptionsClient boleto?; + PaymentIntentPaymentMethodOptionsLink|PaymentIntentTypeSpecificPaymentMethodOptionsClient link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodOptionsAmazonPay|PaymentIntentTypeSpecificPaymentMethodOptionsClient amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + PaymentIntentPaymentMethodOptionsAuBecsDebit|PaymentIntentTypeSpecificPaymentMethodOptionsClient auBecsDebit?; + PaymentMethodOptionsOxxo|PaymentIntentTypeSpecificPaymentMethodOptionsClient oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodOptionsAfterpayClearpay|PaymentIntentTypeSpecificPaymentMethodOptionsClient afterpayClearpay?; + PaymentIntentPaymentMethodOptionsSwish|PaymentIntentTypeSpecificPaymentMethodOptionsClient swish?; + PaymentMethodOptionsTwint|PaymentIntentTypeSpecificPaymentMethodOptionsClient twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentIntentPaymentMethodOptionsUsBankAccount|PaymentIntentTypeSpecificPaymentMethodOptionsClient usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodOptionsCustomerBalance|PaymentIntentTypeSpecificPaymentMethodOptionsClient customerBalance?; + PaymentMethodOptionsCashapp|PaymentIntentTypeSpecificPaymentMethodOptionsClient cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodOptionsWechatPay|PaymentIntentTypeSpecificPaymentMethodOptionsClient wechatPay?; + PaymentMethodOptionsPaypal|PaymentIntentTypeSpecificPaymentMethodOptionsClient paypal?; + PaymentMethodOptionsPix|PaymentIntentTypeSpecificPaymentMethodOptionsClient pix?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodOptionsRevolutPay|PaymentIntentTypeSpecificPaymentMethodOptionsClient revolutPay?; + PaymentMethodOptionsGiropay|PaymentIntentTypeSpecificPaymentMethodOptionsClient giropay?; + PaymentMethodOptionsZip|PaymentIntentTypeSpecificPaymentMethodOptionsClient zip?; + PaymentMethodOptionsAlipay|PaymentIntentTypeSpecificPaymentMethodOptionsClient alipay?; + PaymentMethodOptionsIdeal|PaymentIntentTypeSpecificPaymentMethodOptionsClient ideal?; + PaymentIntentPaymentMethodOptionsEps|PaymentIntentTypeSpecificPaymentMethodOptionsClient eps?; + PaymentMethodOptionsKonbini|PaymentIntentTypeSpecificPaymentMethodOptionsClient konbini?; + @jsondata:Name {value: "card_present"} + PaymentMethodOptionsCardPresent|PaymentIntentTypeSpecificPaymentMethodOptionsClient cardPresent?; + PaymentMethodOptionsSofort|PaymentIntentTypeSpecificPaymentMethodOptionsClient sofort?; + PaymentMethodOptionsFpx|PaymentIntentTypeSpecificPaymentMethodOptionsClient fpx?; + PaymentMethodOptionsPromptpay|PaymentIntentTypeSpecificPaymentMethodOptionsClient promptpay?; + PaymentMethodOptionsAffirm|PaymentIntentTypeSpecificPaymentMethodOptionsClient affirm?; + PaymentIntentPaymentMethodOptionsMobilepay|PaymentIntentTypeSpecificPaymentMethodOptionsClient mobilepay?; + PaymentMethodOptionsBancontact|PaymentIntentTypeSpecificPaymentMethodOptionsClient bancontact?; + PaymentMethodOptionsGrabpay|PaymentIntentTypeSpecificPaymentMethodOptionsClient grabpay?; + PaymentMethodOptionsKlarna|PaymentIntentTypeSpecificPaymentMethodOptionsClient klarna?; + PaymentMethodOptionsP24|PaymentIntentTypeSpecificPaymentMethodOptionsClient p24?; + @jsondata:Name {value: "sepa_debit"} + PaymentIntentPaymentMethodOptionsSepaDebit|PaymentIntentTypeSpecificPaymentMethodOptionsClient sepaDebit?; + PaymentIntentPaymentMethodOptionsCard|PaymentIntentTypeSpecificPaymentMethodOptionsClient card?; + PaymentMethodOptionsMultibanco|PaymentIntentTypeSpecificPaymentMethodOptionsClient multibanco?; +}; + +public type CardsidBody1 record {| + # Specifies which fields in the response should be expanded + CardsidBody1ExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryFinancialAccountsFinancialAccountQueriesExpandItemsString string; + +public type Application1Application1AnyOf12 ""; + +# +public type PortalFlowsSubscriptionUpdateConfirmDiscount record { + # The ID of the coupon to apply to this subscription update + string? coupon?; + # The ID of a promotion code to apply to this subscription update + @jsondata:Name {value: "promotion_code"} + string? promotionCode?; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountPeoplePersonQueriesExpandItemsString string; + +# +public type PaymentMethodOptionsGrabpay record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerSubscriptionsSubscriptionExposedId +public type GetCustomersCustomerSubscriptionsSubscriptionExposedIdQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerSubscriptionsSubscriptionExposedIdQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentLinksResourceCompletionBehaviorConfirmationPage record { + # The custom message that is displayed to the customer after the purchase is complete + @jsondata:Name {value: "custom_message"} + string? customMessage?; +}; + +@constraint:String {maxLength: 5000} +public type CountrySpecVerificationFieldDetailsMinimumItemsString string; + +# Represents the Queries record for the operation: GetSubscriptionsSearch +public type GetSubscriptionsSearchQueries record { + # Specifies which fields in the response should be expanded + GetSubscriptionsSearchQueriesExpandItemsString[] expand?; + # The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for subscriptions](https://stripe.com/docs/search#query-fields-for-subscriptions) + @constraint:String {maxLength: 5000} + string query; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results + @constraint:String {maxLength: 5000} + string page?; +}; + +# Defines how a subscription behaves when a free trial ends +public type SubscriptionsTrialsResourceEndBehavior record { + # Indicates how the subscription should change when the trial ends if the user did not provide a payment method + @jsondata:Name {value: "missing_payment_method"} + "cancel"|"create_invoice"|"pause" missingPaymentMethod; +}; + +public type RecurringAdhoc record { + @jsondata:Name {value: "interval_count"} + int intervalCount?; + "day"|"month"|"week"|"year" interval; +}; + +# +public type OutboundPaymentsPaymentMethodDetailsFinancialAccount record { + # Token of the FinancialAccount + @constraint:String {maxLength: 5000} + string id; + # The rails used to send funds + "stripe" network; +}; + +public type IssuingAuthorizationsBody record {| + FleetSpecs fleet?; + # The total amount to attempt to authorize. This amount is in the provided currency, or defaults to the card's currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + @jsondata:Name {value: "amount_details"} + AmountDetailsSpecs amountDetails?; + @jsondata:Name {value: "verification_data"} + VerificationDataSpecs verificationData?; + # The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized + "apple_pay"|"google_pay"|"samsung_pay" wallet?; + FuelSpecs fuel?; + @jsondata:Name {value: "merchant_data"} + MerchantDataSpecs merchantData?; + # If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization + @jsondata:Name {value: "is_amount_controllable"} + boolean isAmountControllable?; + # Specifies which fields in the response should be expanded + IssuingAuthorizationsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "network_data"} + NetworkDataSpecs networkData?; + # How the card details were provided. Defaults to online + @jsondata:Name {value: "authorization_method"} + "chip"|"contactless"|"keyed_in"|"online"|"swipe" authorizationMethod?; + # The currency of the authorization. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # Card associated with this authorization + @constraint:String {maxLength: 5000} + string card; +|}; + +# +public type PaymentIntentNextActionAlipayHandleRedirect record { + # If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion + @jsondata:Name {value: "return_url"} + string? returnUrl?; + # The native data to be used with Alipay SDK you must redirect your customer to in order to authenticate the payment in an Android App + @jsondata:Name {value: "native_data"} + string? nativeData?; + # The native URL you must redirect your customer to in order to authenticate the payment in an iOS App + @jsondata:Name {value: "native_url"} + string? nativeUrl?; + # The URL you must redirect your customer to in order to authenticate the payment + string? url?; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingSettlementsSettlementQueriesExpandItemsString string; + +# +public type AccountPaymentsSettings record { + # The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion + @jsondata:Name {value: "statement_descriptor_prefix_kana"} + string? statementDescriptorPrefixKana?; + # The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only) + @jsondata:Name {value: "statement_descriptor_kanji"} + string? statementDescriptorKanji?; + # The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only) + @jsondata:Name {value: "statement_descriptor_kana"} + string? statementDescriptorKana?; + # The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion + @jsondata:Name {value: "statement_descriptor_prefix_kanji"} + string? statementDescriptorPrefixKanji?; +}; + +@constraint:String {maxLength: 5000} +public type GetLinkedAccountsQueriesExpandItemsString string; + +# +public type PaymentMethodDetailsZip record { +}; + +public type PaymentMethodDetailsCardPresentPreferredlocalesItemsString string; + +public type ControllerDashboardSpecs record { + "express"|"full"|"none" 'type?; +}; + +@constraint:String {maxLength: 5000} +public type CustomerCardsBodyExpandItemsString string; + +# +public type CustomerAcceptance record { + OfflineAcceptance offline?; + OnlineAcceptance online?; + # The mandate includes the type of customer acceptance information, such as: `online` or `offline` + "offline"|"online" 'type; + # The time that the customer accepts the mandate + @jsondata:Name {value: "accepted_at"} + int? acceptedAt?; +}; + +# +public type PromotionCodesResourceRestrictions record { + # A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices + @jsondata:Name {value: "first_time_transaction"} + boolean firstTimeTransaction; + # Three-letter [ISO code](https://stripe.com/docs/currencies) for minimum_amount + @jsondata:Name {value: "minimum_amount_currency"} + string? minimumAmountCurrency?; + # Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work) + @jsondata:Name {value: "minimum_amount"} + int? minimumAmount?; + # Promotion code restrictions defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|PromotionCodeCurrencyOption...;|} currencyOptions?; +}; + +public type AccountDisconnectBody record {| + # Specifies which fields in the response should be expanded + AccountDisconnectBodyExpandItemsString[] expand?; +|}; + +public type SubscriptionItemUsageRecordsBody record {| + # Specifies which fields in the response should be expanded + SubscriptionItemUsageRecordsBodyExpandItemsString[] expand?; + # The usage quantity for the specified timestamp + int quantity; + # Valid values are `increment` (default) or `set`. When using `increment` the specified `quantity` will be added to the usage at the specified timestamp. The `set` action will overwrite the usage quantity at that timestamp. If the subscription has [billing thresholds](https://stripe.com/docs/api/subscriptions/object#subscription_object-billing_thresholds), `increment` is the only allowed value + "increment"|"set" action?; + # The timestamp for the usage event. This timestamp must be within the current billing period of the subscription of the provided `subscription_item`, and must not be in the future. When passing `"now"`, Stripe records usage for the current time. Default is `"now"` if a value is not provided + "now"|int timestamp?; +|}; + +# Represents the Queries record for the operation: GetForwardingRequests +public type GetForwardingRequestsQueries record { + # A pagination cursor to fetch the previous page of the list. The value must be a ForwardingRequest ID + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetForwardingRequestsQueriesExpandItemsString[] expand?; + # Similar to other List endpoints, filters results based on created timestamp. You can pass gt, gte, lt, and lte timestamp values + CreatedParam created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A pagination cursor to fetch the next page of the list. The value must be a ForwardingRequest ID + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type SchedulesPhaseAutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # Whether Stripe automatically computes tax on invoices created during this phase + boolean enabled; +}; + +# +public type TransformUsage record { + # After division, either round the result `up` or `down` + "down"|"up" round; + # Divide usage by this number + @jsondata:Name {value: "divide_by"} + int divideBy; +}; + +public type QuoteFinalizeBody record {| + # Specifies which fields in the response should be expanded + QuoteFinalizeBodyExpandItemsString[] expand?; + # A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch + @jsondata:Name {value: "expires_at"} + int expiresAt?; +|}; + +public type SessionRedactBody record {| + # Specifies which fields in the response should be expanded + SessionRedactBodyExpandItemsString[] expand?; +|}; + +# The address where the card will be shipped +public type ShippingSpecs record { + RequiredAddress address; + @jsondata:Name {value: "address_validation"} + AddressValidationParam addressValidation?; + @jsondata:Name {value: "require_signature"} + boolean requireSignature?; + "express"|"priority"|"standard" 'service?; + CustomsParam customs?; + @constraint:String {maxLength: 5000} + string name; + @jsondata:Name {value: "phone_number"} + string phoneNumber?; + "bulk"|"individual" 'type?; +}; + +# +public type RefundDestinationDetailsGeneric record { + # The reference assigned to the refund + string? reference?; + # Status of the reference on the refund. This can be `pending`, `available` or `unavailable` + @jsondata:Name {value: "reference_status"} + string? referenceStatus?; +}; + +# Represents the Queries record for the operation: GetFiles +public type GetFilesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetFilesQueriesExpandItemsString[] expand?; + # Filter queries by the file purpose. If you don't provide a purpose, the queries return unfiltered files + "account_requirement"|"additional_verification"|"business_icon"|"business_logo"|"customer_signature"|"dispute_evidence"|"document_provider_identity_document"|"finance_report_run"|"identity_document"|"identity_document_downloadable"|"pci_document"|"selfie"|"sigma_scheduled_query"|"tax_document_user_upload"|"terminal_reader_splashscreen" purpose?; + # Only return files that were created during the given date interval + Created12 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type Created24RangeQuerySpecs272 int; + +# +public type SourceTransactionAchCreditTransferData record { + # Last 4 digits of the account number associated with the transfer + @constraint:String {maxLength: 5000} + string last4?; + # Customer data associated with the transfer + @jsondata:Name {value: "customer_data"} + string customerData?; + # Bank account fingerprint associated with the transfer + @constraint:String {maxLength: 5000} + string fingerprint?; + # Routing number associated with the transfer + @jsondata:Name {value: "routing_number"} + string routingNumber?; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationsauthorizationBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ScheduleCancelBodyExpandItemsString string; + +public type EffectiveAtRangeQuerySpecs552 int; + +public type PaymentMethodDetachBody record {| + # Specifies which fields in the response should be expanded + PaymentMethodDetachBodyExpandItemsString[] expand?; +|}; + +public type CustomFieldDropdownParam record { + CustomFieldOptionParam[] options; + @jsondata:Name {value: "default_value"} + string defaultValue?; +}; + +public type ForwardingRequestsBody record {| + RequestParam request?; + # Specifies which fields in the response should be expanded + ForwardingRequestsBodyExpandItemsString[] expand?; + # The field kinds to be replaced in the forwarded request + ("card_cvc"|"card_expiry"|"card_number"|"cardholder_name")[] replacements; + # The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed + @jsondata:Name {value: "payment_method"} + string paymentMethod; + # The destination URL for the forwarded request. Must be supported by the config + @constraint:String {maxLength: 5000} + string url; +|}; + +@constraint:String {maxLength: 5000} +public type EphemeralKeysBodyExpandItemsString string; + +# The Report Type resource corresponds to a particular type of report, such as +# the "Activity summary" or "Itemized payouts" reports. These objects are +# identified by an ID belonging to a set of enumerated values. See +# [API Access to Reports documentation](https://stripe.com/docs/reporting/statements/api) +# for those Report Type IDs, along with required and optional parameters. +# +# Note that certain report types can only be run based on your live-mode data (not test-mode +# data), and will error when queried without a [live-mode API key](https://stripe.com/docs/keys#test-live-modes) +public type ReportingReportType record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # List of column names that are included by default when this Report Type gets run. (If the Report Type doesn't support the `columns` parameter, this will be null.) + @jsondata:Name {value: "default_columns"} + ReportingReportTypeDefaultcolumnsItemsString[]? defaultColumns?; + # Human-readable name of the Report Type + @constraint:String {maxLength: 5000} + string name; + # Earliest time for which this Report Type is available. Measured in seconds since the Unix epoch + @jsondata:Name {value: "data_available_start"} + int dataAvailableStart; + # The [ID of the Report Type](https://stripe.com/docs/reporting/statements/api#available-report-types), such as `balance.summary.1` + @constraint:String {maxLength: 5000} + string id; + # Most recent time for which this Report Type is available. Measured in seconds since the Unix epoch + @jsondata:Name {value: "data_available_end"} + int dataAvailableEnd; + # When this Report Type was latest updated. Measured in seconds since the Unix epoch + int updated; + # Version of the Report Type. Different versions report with the same ID will have the same purpose, but may take different run parameters or have different result schemas + int version; + # String representing the object's type. Objects of the same type share the same value + "reporting.report_type" 'object; +}; + +# +public type PaymentMethodOptionsCardMandateOptions record { + # End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date + @jsondata:Name {value: "end_date"} + int? endDate?; + # Unique identifier for the mandate or subscription + @constraint:String {maxLength: 80} + string reference; + # The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic` + @jsondata:Name {value: "interval_count"} + int? intervalCount?; + # Amount to be charged for future payments + int amount; + # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param + @jsondata:Name {value: "amount_type"} + "fixed"|"maximum" amountType; + # A description of the mandate or subscription that is meant to be displayed to the customer + string? description?; + # Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic` + "day"|"month"|"sporadic"|"week"|"year" interval; + # Specifies the type of mandates supported. Possible values are `india` + @jsondata:Name {value: "supported_types"} + ("india")[]? supportedTypes?; + # Start date of the mandate or subscription. Start date should not be lesser than yesterday + @jsondata:Name {value: "start_date"} + int startDate; +}; + +# Fleet-specific information for authorizations using Fleet cards +public type FleetSpecs record { + @jsondata:Name {value: "purchase_type"} + "fuel_and_non_fuel_purchase"|"fuel_purchase"|"non_fuel_purchase" purchaseType?; + @jsondata:Name {value: "cardholder_prompt_data"} + FleetCardholderPromptDataSpecs cardholderPromptData?; + @jsondata:Name {value: "service_type"} + "full_service"|"non_fuel_transaction"|"self_service" serviceType?; + @jsondata:Name {value: "reported_breakdown"} + FleetReportedBreakdownSpecs reportedBreakdown?; +}; + +# +public type OutboundPaymentsPaymentMethodDetailsUsBankAccount record { + # Last four digits of the bank account number + string? last4?; + # Account type: checkings or savings. Defaults to checking if omitted + @jsondata:Name {value: "account_type"} + "checking"|"savings"? accountType?; + # ID of the mandate used to make this payment + string|Mandate mandate?; + # Account holder type: individual or company + @jsondata:Name {value: "account_holder_type"} + "company"|"individual"? accountHolderType?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Routing number of the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + # The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type + "ach"|"us_domestic_wire" network; +}; + +# +public type TaxCalculationLineItem record { + # A custom identifier for this line item + string? reference?; + # Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive" taxBehavior; + # The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount + int amount; + # The ID of an existing [Product](https://stripe.com/docs/api/products/object) + string? product?; + # The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource + @jsondata:Name {value: "tax_code"} + string taxCode; + # The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_tax"} + int amountTax; + # The number of units of the item being purchased. For reversals, this is the quantity reversed + int quantity; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Detailed account of taxes relevant to this line item + @jsondata:Name {value: "tax_breakdown"} + TaxProductResourceLineItemTaxBreakdown[]? taxBreakdown?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "tax.calculation_line_item" 'object; +}; + +# A Customer Session allows you to grant Stripe's frontend SDKs (like Stripe.js) client-side access +# control over a Customer +public type CustomerSession record { + CustomerSessionResourceComponents components?; + # The timestamp at which this Customer Session will expire + @jsondata:Name {value: "expires_at"} + int expiresAt; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The client secret of this Customer Session. Used on the client to set up secure access to the given `customer`. + # + # The client secret can be used to provide access to `customer` from your frontend. It should not be stored, logged, or exposed to anyone other than the relevant customer. Make sure that you have TLS enabled on any page that includes the client secret + @jsondata:Name {value: "client_secret"} + string clientSecret; + # The Customer the Customer Session was created for + string|Customer customer; + # String representing the object's type. Objects of the same type share the same value + "customer_session" 'object; +}; + +# You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal +public type TreasuryDebitReversal record { + # The FinancialAccount to reverse funds from + @jsondata:Name {value: "financial_account"} + string? financialAccount?; + # Amount (in cents) transferred + int amount; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Other flows linked to a DebitReversal + @jsondata:Name {value: "linked_flows"} + TreasuryReceivedDebitsResourceDebitReversalLinkedFlows? linkedFlows?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The ReceivedDebit being reversed + @jsondata:Name {value: "received_debit"} + string receivedDebit; + # The rails used to reverse the funds + "ach"|"card" network; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + TreasuryReceivedDebitsResourceStatusTransitions statusTransitions; + # The Transaction associated with this object + string|TreasuryTransaction? 'transaction?; + # String representing the object's type. Objects of the same type share the same value + "treasury.debit_reversal" 'object; + # Status of the DebitReversal + "failed"|"processing"|"succeeded" status; +}; + +public type InvoiceSendBody record {| + # Specifies which fields in the response should be expanded + InvoiceSendBodyExpandItemsString[] expand?; +|}; + +# +public type PriceList record { + # Details about each object + Price[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/prices`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type ShippingReturnBody record {| + # Specifies which fields in the response should be expanded + ShippingReturnBodyExpandItemsString[] expand?; +|}; + +public type PreferencesListParam record { + @jsondata:Name {value: "is_platform_default"} + boolean isPlatformDefault?; + @jsondata:Name {value: "is_default"} + boolean isDefault?; +}; + +public type PromotionCodesBody record {| + # Specifies which fields in the response should be expanded + PromotionCodesBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for a specific customer. If left blank, we will generate one automatically + @constraint:String {maxLength: 500} + string code?; + # The timestamp at which this promotion code will expire. If the coupon has specified a `redeems_by`, then this value cannot be after the coupon's `redeems_by` + @jsondata:Name {value: "expires_at"} + int expiresAt?; + # The coupon for this promotion code + @constraint:String {maxLength: 5000} + string coupon; + # A positive integer specifying the number of times the promotion code can be redeemed. If the coupon has specified a `max_redemptions`, then this value cannot be greater than the coupon's `max_redemptions` + @jsondata:Name {value: "max_redemptions"} + int maxRedemptions?; + # Whether the promotion code is currently active + boolean active?; + RestrictionsParams1 restrictions?; + # The customer that this promotion code can be used by. If not set, the promotion code can be used by all customers + @constraint:String {maxLength: 5000} + string customer?; +|}; + +public type IssuingCardholdersBody record {| + # The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + # This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder + @jsondata:Name {value: "preferred_locales"} + ("de"|"en"|"es"|"fr"|"it")[] preferredLocales?; + # Specifies which fields in the response should be expanded + IssuingCardholdersBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + IndividualParam individual?; + @jsondata:Name {value: "spending_controls"} + AuthorizationControlsParamV2 spendingControls?; + # The cardholder's name. This will be printed on cards issued to them. The maximum length of this field is 24 characters. This field cannot contain any special characters or numbers + string name; + CompanyParam company?; + # The cardholder's phone number. This will be transformed to [E.164](https://en.wikipedia.org/wiki/E.164) if it is not provided in that format already. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied) for more details + @jsondata:Name {value: "phone_number"} + string phoneNumber?; + # One of `individual` or `company`. See [Choose a cardholder type](https://stripe.com/docs/issuing/other/choose-cardholder) for more details + "company"|"individual" 'type?; + # The cardholder's email address + string email?; + BillingSpecs billing; + # Specifies whether to permit authorizations on this cardholder's cards. Defaults to `active` + "active"|"inactive" status?; +|}; + +public type Created19 RangeQuerySpecs21|Created19RangeQuerySpecs212; + +# +public type PaymentMethodBacsDebit record { + # Last four digits of the bank account number + string? last4?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Sort code of the bank account. (e.g., `10-20-30`) + @jsondata:Name {value: "sort_code"} + string? sortCode?; +}; + +public type Created15 RangeQuerySpecs16|Created15RangeQuerySpecs162; + +public type TaxRegistrationsBody record {| + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country; + # Specifies which fields in the response should be expanded + TaxRegistrationsBodyExpandItemsString[] expand?; + # If set, the Tax Registration stops being active at this time. If not set, the Tax Registration will be active indefinitely. Timestamp measured in seconds since the Unix epoch + @jsondata:Name {value: "expires_at"} + int expiresAt?; + @jsondata:Name {value: "country_options"} + CountryOptions countryOptions; + # Time at which the Tax Registration becomes active. It can be either `now` to indicate the current time, or a future timestamp measured in seconds since the Unix epoch + @jsondata:Name {value: "active_from"} + "now"|int activeFrom; +|}; + +# +public type PaymentMethodOptionsMultibanco record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type Created16 RangeQuerySpecs17|Created16RangeQuerySpecs172; + +public type Created17 RangeQuerySpecs19|Created17RangeQuerySpecs192; + +public type Created18 RangeQuerySpecs20|Created18RangeQuerySpecs202; + +public type Created11 RangeQuerySpecs11|Created11RangeQuerySpecs112; + +public type Created12 RangeQuerySpecs12|Created12RangeQuerySpecs122; + +public type Created13 RangeQuerySpecs14|Created13RangeQuerySpecs142; + +# All invoices will be billed using the specified settings +public type QuoteParam record { + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + Param3 issuer?; +}; + +public type Created14 RangeQuerySpecs15|Created14RangeQuerySpecs152; + +public type SubscriptionTrialEndAnyOf1 "now"; + +public type Created10 RangeQuerySpecs10|Created10RangeQuerySpecs102; + +# +public type TreasuryReceivedDebitsResourceStatusTransitions record { + # Timestamp describing when the DebitReversal changed status to `completed` + @jsondata:Name {value: "completed_at"} + int? completedAt?; +}; + +# +public type PaymentIntentPaymentMethodOptionsMandateOptionsSepaDebit record { +}; + +# A billing meter is a resource that allows you to track usage of a particular event. For example, you might create a billing meter to track the number of API calls made by a particular user. You can then attach the billing meter to a price and attach the price to a subscription to charge the user for the number of API calls they make +public type BillingMeter record { + # The time window to pre-aggregate meter events for, if any + @jsondata:Name {value: "event_time_window"} + "day"|"hour"? eventTimeWindow?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "value_settings"} + BillingMeterResourceBillingMeterValue valueSettings; + @jsondata:Name {value: "customer_mapping"} + BillingMeterResourceCustomerMappingSettings customerMapping; + # The meter's name + @jsondata:Name {value: "display_name"} + string displayName; + @jsondata:Name {value: "default_aggregation"} + BillingMeterResourceAggregationSettings defaultAggregation; + # The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events + @jsondata:Name {value: "event_name"} + string eventName; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + BillingMeterResourceBillingMeterStatusTransitions statusTransitions; + # Time at which the object was last updated. Measured in seconds since the Unix epoch + int updated; + # String representing the object's type. Objects of the same type share the same value + "billing.meter" 'object; + # The meter's status + "active"|"inactive" status; +}; + +public type PaymentLinkspaymentLinkBody record {| + # Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount. + # + # Can only be set in `subscription` mode. Defaults to `always`. + # + # If you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials) + @jsondata:Name {value: "payment_method_collection"} + "always"|"if_required" paymentMethodCollection?; + # The custom message to be displayed to a customer when a payment link is no longer active + @jsondata:Name {value: "inactive_message"} + string|"" inactiveMessage?; + # 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`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link + record {|string...;|} metadata?; + @jsondata:Name {value: "after_completion"} + AfterCompletionParams afterCompletion?; + @jsondata:Name {value: "invoice_creation"} + InvoiceCreationUpdateParams invoiceCreation?; + # Configuration for collecting the customer's shipping address + @jsondata:Name {value: "shipping_address_collection"} + record {("AC"|"AD"|"AE"|"AF"|"AG"|"AI"|"AL"|"AM"|"AO"|"AQ"|"AR"|"AT"|"AU"|"AW"|"AX"|"AZ"|"BA"|"BB"|"BD"|"BE"|"BF"|"BG"|"BH"|"BI"|"BJ"|"BL"|"BM"|"BN"|"BO"|"BQ"|"BR"|"BS"|"BT"|"BV"|"BW"|"BY"|"BZ"|"CA"|"CD"|"CF"|"CG"|"CH"|"CI"|"CK"|"CL"|"CM"|"CN"|"CO"|"CR"|"CV"|"CW"|"CY"|"CZ"|"DE"|"DJ"|"DK"|"DM"|"DO"|"DZ"|"EC"|"EE"|"EG"|"EH"|"ER"|"ES"|"ET"|"FI"|"FJ"|"FK"|"FO"|"FR"|"GA"|"GB"|"GD"|"GE"|"GF"|"GG"|"GH"|"GI"|"GL"|"GM"|"GN"|"GP"|"GQ"|"GR"|"GS"|"GT"|"GU"|"GW"|"GY"|"HK"|"HN"|"HR"|"HT"|"HU"|"ID"|"IE"|"IL"|"IM"|"IN"|"IO"|"IQ"|"IS"|"IT"|"JE"|"JM"|"JO"|"JP"|"KE"|"KG"|"KH"|"KI"|"KM"|"KN"|"KR"|"KW"|"KY"|"KZ"|"LA"|"LB"|"LC"|"LI"|"LK"|"LR"|"LS"|"LT"|"LU"|"LV"|"LY"|"MA"|"MC"|"MD"|"ME"|"MF"|"MG"|"MK"|"ML"|"MM"|"MN"|"MO"|"MQ"|"MR"|"MS"|"MT"|"MU"|"MV"|"MW"|"MX"|"MY"|"MZ"|"NA"|"NC"|"NE"|"NG"|"NI"|"NL"|"NO"|"NP"|"NR"|"NU"|"NZ"|"OM"|"PA"|"PE"|"PF"|"PG"|"PH"|"PK"|"PL"|"PM"|"PN"|"PR"|"PS"|"PT"|"PY"|"QA"|"RE"|"RO"|"RS"|"RU"|"RW"|"SA"|"SB"|"SC"|"SE"|"SG"|"SH"|"SI"|"SJ"|"SK"|"SL"|"SM"|"SN"|"SO"|"SR"|"SS"|"ST"|"SV"|"SX"|"SZ"|"TA"|"TC"|"TD"|"TF"|"TG"|"TH"|"TJ"|"TK"|"TL"|"TM"|"TN"|"TO"|"TR"|"TT"|"TV"|"TW"|"TZ"|"UA"|"UG"|"US"|"UY"|"UZ"|"VA"|"VC"|"VE"|"VG"|"VN"|"VU"|"WF"|"WS"|"XK"|"YE"|"YT"|"ZA"|"ZM"|"ZW"|"ZZ")[] allowed_countries;}|"" shippingAddressCollection?; + # Collect additional information from your customer using custom fields. Up to 3 fields are supported + @jsondata:Name {value: "custom_fields"} + record {record {record {string label; string value;}[] options;} dropdown?; string 'key; record {string custom; "custom" 'type;} label; record {int maximum_length?; int minimum_length?;} numeric?; boolean optional?; record {int maximum_length?; int minimum_length?;} text?; "dropdown"|"numeric"|"text" 'type;}[]|"" customFields?; + # The list of payment method types that customers can use. Pass an empty string to enable dynamic payment methods that use your [payment method settings](https://dashboard.stripe.com/settings/payment_methods) + @jsondata:Name {value: "payment_method_types"} + ("affirm"|"afterpay_clearpay"|"alipay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip")[]|"" paymentMethodTypes?; + # Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated + boolean active?; + @jsondata:Name {value: "payment_intent_data"} + PaymentIntentDataUpdateParams paymentIntentData?; + # Settings that restrict the usage of a payment link + record {record {int 'limit;} completed_sessions;}|"" restrictions?; + # The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported + @jsondata:Name {value: "line_items"} + LineItemsUpdateParams[] lineItems?; + # Specifies which fields in the response should be expanded + PaymentLinkspaymentLinkBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParams1 automaticTax?; + @jsondata:Name {value: "subscription_data"} + SubscriptionDataUpdateParams subscriptionData?; + # Enables user redeemable promotion codes + @jsondata:Name {value: "allow_promotion_codes"} + boolean allowPromotionCodes?; + # Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers) + @jsondata:Name {value: "customer_creation"} + "always"|"if_required" customerCreation?; + @jsondata:Name {value: "tax_id_collection"} + TaxIdCollectionParams taxIdCollection?; + @jsondata:Name {value: "custom_text"} + CustomTextParam customText?; + # Configuration for collecting the customer's billing address. Defaults to `auto` + @jsondata:Name {value: "billing_address_collection"} + "auto"|"required" billingAddressCollection?; +|}; + +# +public type CheckoutAfterpayClearpayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type SetupIntentPaymentMethodOptionsAmazonPay record { +}; + +# +public type QuotesResourceTransferData record { + # The amount in cents (or local equivalent) that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination + int? amount?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount will be transferred to the destination + @jsondata:Name {value: "amount_percent"} + decimal? amountPercent?; + # The account where funds from the payment will be transferred to upon payment success + string|Account destination; +}; + +public type SubscriptionCancelCreationParam record { + "at_period_end"|"immediately" mode?; + @jsondata:Name {value: "cancellation_reason"} + SubscriptionCancellationReasonCreationParam cancellationReason?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + boolean enabled; +}; + +# +public type DeletedCard record { + # Always true for a deleted object + true deleted; + # Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account + string? currency?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "card" 'object; +}; + +# +public type PriceTier record { + # Price for the entire tier + @jsondata:Name {value: "flat_amount"} + int? flatAmount?; + # Same as `unit_amount`, but contains a decimal value with at most 12 decimal places + @jsondata:Name {value: "unit_amount_decimal"} + string? unitAmountDecimal?; + # Up to and including to this quantity will be contained in the tier + @jsondata:Name {value: "up_to"} + int? upTo?; + # Per unit price for units relevant to the tier + @jsondata:Name {value: "unit_amount"} + int? unitAmount?; + # Same as `flat_amount`, but contains a decimal value with at most 12 decimal places + @jsondata:Name {value: "flat_amount_decimal"} + string? flatAmountDecimal?; +}; + +# +public type GelatoSessionPhoneOptions record { + # Request one time password verification of `provided_details.phone` + @jsondata:Name {value: "require_verification"} + boolean requireVerification?; +}; + +# +public type DeletedTaxId record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "tax_id" 'object; +}; + +public type InvoiceSettingsParams1 record { + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @constraint:String {maxLength: 5000} + string footer?; + @jsondata:Name {value: "custom_fields"} + record {string name; string value;}[]|"" customFields?; + @jsondata:Name {value: "rendering_options"} + record {""|"exclude_tax"|"include_inclusive_tax" amount_tax_display?;}|"" renderingOptions?; + @constraint:String {maxLength: 1500} + string description?; + Param3 issuer?; +}; + +# [Stripe Connect](https://stripe.com/docs/connect) platforms can reverse transfers made to a +# connected account, either entirely or partially, and can also specify whether +# to refund any related application fees. Transfer reversals add to the +# platform's balance and subtract from the destination account's balance. +# +# Reversing a transfer that was made for a [destination +# charge](/docs/connect/destination-charges) is allowed only up to the amount of +# the charge. It is possible to reverse a +# [transfer_group](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) +# transfer only if the destination account has enough balance to cover the +# reversal. +# +# Related guide: [Reverse transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#reverse-transfers) +public type TransferReversal record { + # Balance transaction that describes the impact on your account balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # Amount, in cents (or local equivalent) + int amount; + # 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 + record {|string...;|}? metadata?; + # ID of the transfer that was reversed + string|Transfer transfer; + # Linked payment refund for the transfer reversal + @jsondata:Name {value: "destination_payment_refund"} + string|Refund? destinationPaymentRefund?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # ID of the refund responsible for the transfer reversal + @jsondata:Name {value: "source_refund"} + string|Refund? sourceRefund?; + # String representing the object's type. Objects of the same type share the same value + "transfer_reversal" 'object; +}; + +@constraint:String {maxLength: 5000} +public type TestClockAdvanceBodyExpandItemsString string; + +# Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment) +public type Access3 record { + boolean requested; +}; + +# Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount +public type Access2 record { + boolean requested; +}; + +public type Created9 RangeQuerySpecs9|Created9RangeQuerySpecs92; + +# Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount +public type Access1 record { + boolean requested; +}; + +public type Created8 RangeQuerySpecs8|Created8RangeQuerySpecs82; + +# Represents the Queries record for the operation: GetRadarValueListsValueList +public type GetRadarValueListsValueListQueries record { + # Specifies which fields in the response should be expanded + GetRadarValueListsValueListQueriesExpandItemsString[] expand?; +}; + +public type AccountholderParams2 record { + @constraint:String {maxLength: 5000} + string account?; + @constraint:String {maxLength: 5000} + string customer?; +}; + +# The account holder to link accounts for +public type AccountholderParams1 record { + "account"|"customer" 'type; + @constraint:String {maxLength: 5000} + string account?; + @constraint:String {maxLength: 5000} + string customer?; +}; + +public type Created3 RangeQuerySpecs3|Created3RangeQuerySpecs32; + +public type Created2 RangeQuerySpecs2|Created2RangeQuerySpecs22; + +# +public type BankConnectionsResourceBalance record { + # The balances owed to (or by) the account holder. + # + # Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + # + # Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder + record {|int...;|} current; + # The time that the external institution calculated this balance. Measured in seconds since the Unix epoch + @jsondata:Name {value: "as_of"} + int asOf; + BankConnectionsResourceBalanceApiResourceCreditBalance credit?; + # The `type` of the balance. An additional hash is included on the balance with a name matching this value + "cash"|"credit" 'type; + BankConnectionsResourceBalanceApiResourceCashBalance cash?; +}; + +public type Created1 RangeQuerySpecs1|Created1RangeQuerySpecs12; + +@constraint:String {maxLength: 5000} +public type TopupstopupBodyExpandItemsString string; + +public type Created7 RangeQuerySpecs7|Created7RangeQuerySpecs72; + +public type Created6 RangeQuerySpecs6|Created6RangeQuerySpecs62; + +public type Created5 RangeQuerySpecs5|Created5RangeQuerySpecs52; + +@constraint:String {maxLength: 5000} +public type GetForwardingRequestsIdQueriesExpandItemsString string; + +public type Created4 RangeQuerySpecs4|Created4RangeQuerySpecs42; + +public type BalanceSettingsParam record { + @jsondata:Name {value: "reconciliation_mode"} + "automatic"|"manual"|"merchant_default" reconciliationMode?; +}; + +# +public type PaymentPagesCheckoutSessionList record { + CheckoutSession[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodOptionsCardInstallments record { + # Installment plans that may be selected for this PaymentIntent + @jsondata:Name {value: "available_plans"} + PaymentMethodDetailsCardInstallmentsPlan[]? availablePlans?; + # Installment plan selected for this PaymentIntent + PaymentMethodDetailsCardInstallmentsPlan? plan?; + # Whether Installments are enabled for this PaymentIntent + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetFinancialConnectionsTransactionsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTreasuryTransactionsQueriesExpandItemsString string; + +# Clone an existing quote. The new quote will be created in `status=draft`. When using this parameter, you cannot specify any other parameters except for `expires_at` +public type FromQuoteParams record { + @constraint:String {maxLength: 5000} + string quote; + @jsondata:Name {value: "is_revision"} + boolean isRevision?; +}; + +# +public type PaymentMethodDetailsBoleto record { + # The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses consumers) + @jsondata:Name {value: "tax_id"} + string taxId; +}; + +# +public type ShippingRateDeliveryEstimateBound record { + # A unit of time + "business_day"|"day"|"hour"|"month"|"week" unit; + # Must be greater than 0 + int value; +}; + +# +public type Recurring record { + # The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months + @jsondata:Name {value: "interval_count"} + int intervalCount; + # Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed` + @jsondata:Name {value: "usage_type"} + "licensed"|"metered" usageType; + # The meter tracking the usage of a metered price + string? meter?; + # Specifies a usage aggregation strategy for prices of `usage_type=metered`. Defaults to `sum` + @jsondata:Name {value: "aggregate_usage"} + "last_during_period"|"last_ever"|"max"|"sum"? aggregateUsage?; + # The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year` + "day"|"month"|"week"|"year" interval; +}; + +# +public type TaxProductResourceJurisdiction record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country; + # Indicates the level of the jurisdiction imposing the tax + "city"|"country"|"county"|"district"|"state" level; + # [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States + string? state?; + # A human-readable name for the jurisdiction imposing the tax + @jsondata:Name {value: "display_name"} + string displayName; +}; + +# Represents the Queries record for the operation: GetSubscriptionSchedules +public type GetSubscriptionSchedulesQueries record { + # Only return subscription schedules that completed during the given date interval + @http:Query {name: "completed_at"} + CompletedAt completedAt?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSubscriptionSchedulesQueriesExpandItemsString[] expand?; + # Only return subscription schedules that were created canceled the given date interval + @http:Query {name: "canceled_at"} + CanceledAt canceledAt?; + # Only return subscription schedules that were created during the given date interval + Created38 created?; + # Only return subscription schedules that have not started yet + boolean scheduled?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return subscription schedules that were released during the given date interval + @http:Query {name: "released_at"} + ReleasedAt releasedAt?; + # Only return subscription schedules for the given customer + @constraint:String {maxLength: 5000} + string customer?; +}; + +# Represents the Queries record for the operation: GetFinancialConnectionsTransactionsTransaction +public type GetFinancialConnectionsTransactionsTransactionQueries record { + # Specifies which fields in the response should be expanded + GetFinancialConnectionsTransactionsTransactionQueriesExpandItemsString[] expand?; +}; + +public type LocationslocationBody record {| + # Specifies which fields in the response should be expanded + LocationslocationBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + OptionalFieldsAddress1 address?; + # A name for the location + @jsondata:Name {value: "display_name"} + string displayName?; + # The ID of a configuration that will be used to customize all readers in this location + @jsondata:Name {value: "configuration_overrides"} + string|"" configurationOverrides?; +|}; + +# +public type PaymentPagesCheckoutSessionCustomFieldsText record { + # The maximum character length constraint for the customer's input + @jsondata:Name {value: "maximum_length"} + int? maximumLength?; + # The value that will pre-fill the field on the payment page + @jsondata:Name {value: "default_value"} + string? defaultValue?; + # The value entered by the customer + string? value?; + # The minimum character length requirement for the customer's input + @jsondata:Name {value: "minimum_length"} + int? minimumLength?; +}; + +# +public type MandateRevolutPay record { +}; + +# +public type SetupAttemptPaymentMethodDetailsBoleto record { +}; + +# If you populate this hash, this SetupIntent generates a `single_use` mandate after successful completion +public type SetupIntentSingleUseParams record { + int amount; + string currency; +}; + +# +public type LegalEntityCompany record { + # Whether the company's business ID number was provided + @jsondata:Name {value: "tax_id_provided"} + boolean taxIdProvided?; + Address address?; + # The Kanji variation of the company's legal name (Japan only) + @jsondata:Name {value: "name_kanji"} + string? nameKanji?; + # This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct + @jsondata:Name {value: "ownership_declaration"} + LegalEntityUboDeclaration? ownershipDeclaration?; + # Whether the company's executives have been provided. This Boolean will be `true` if you've manually indicated that all executives are provided via [the `executives_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-executives_provided), or if Stripe determined that sufficient executives were provided + @jsondata:Name {value: "executives_provided"} + boolean executivesProvided?; + # The Kana variation of the company's primary address (Japan only) + @jsondata:Name {value: "address_kana"} + LegalEntityJapanAddress? addressKana?; + # The purpose code to use for export transactions (India only) + @jsondata:Name {value: "export_purpose_code"} + string exportPurposeCode?; + # Whether the company's directors have been provided. This Boolean will be `true` if you've manually indicated that all directors are provided via [the `directors_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-directors_provided) + @jsondata:Name {value: "directors_provided"} + boolean directorsProvided?; + # The category identifying the legal structure of the company or legal entity. See [Business structure](https://stripe.com/docs/connect/identity-verification#business-structure) for more details + "free_zone_establishment"|"free_zone_llc"|"government_instrumentality"|"governmental_unit"|"incorporated_non_profit"|"incorporated_partnership"|"limited_liability_partnership"|"llc"|"multi_member_llc"|"private_company"|"private_corporation"|"private_partnership"|"public_company"|"public_corporation"|"public_partnership"|"registered_charity"|"single_member_llc"|"sole_establishment"|"sole_proprietorship"|"tax_exempt_government_instrumentality"|"unincorporated_association"|"unincorporated_non_profit"|"unincorporated_partnership" structure?; + # Whether the company's business VAT number was provided + @jsondata:Name {value: "vat_id_provided"} + boolean vatIdProvided?; + # The jurisdiction in which the `tax_id` is registered (Germany-based companies only) + @jsondata:Name {value: "tax_id_registrar"} + string taxIdRegistrar?; + # The company's phone number (used for verification) + string? phone?; + # The export license ID number of the company, also referred as Import Export Code (India only) + @jsondata:Name {value: "export_license_id"} + string exportLicenseId?; + # The company's legal name + string? name?; + # The Kanji variation of the company's primary address (Japan only) + @jsondata:Name {value: "address_kanji"} + LegalEntityJapanAddress? addressKanji?; + # The Kana variation of the company's legal name (Japan only) + @jsondata:Name {value: "name_kana"} + string? nameKana?; + # Information on the verification state of the company + LegalEntityCompanyVerification? verification?; + # Whether the company's owners have been provided. This Boolean will be `true` if you've manually indicated that all owners are provided via [the `owners_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-owners_provided), or if Stripe determined that sufficient owners were provided. Stripe determines ownership requirements using both the number of owners provided and their total percent ownership (calculated by adding the `percent_ownership` of each owner together) + @jsondata:Name {value: "owners_provided"} + boolean ownersProvided?; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountExternalAccountsQueriesExpandItemsString string; + +# A dispute occurs when a customer questions your charge with their card issuer. +# When this happens, you have the opportunity to respond to the dispute with +# evidence that shows that the charge is legitimate. +# +# Related guide: [Disputes and fraud](https://stripe.com/docs/disputes) +public type Dispute record { + # Reason given by cardholder for dispute. Possible values are `bank_cannot_process`, `check_returned`, `credit_not_processed`, `customer_initiated`, `debit_not_authorized`, `duplicate`, `fraudulent`, `general`, `incorrect_account_details`, `insufficient_funds`, `product_not_received`, `product_unacceptable`, `subscription_canceled`, or `unrecognized`. Learn more about [dispute reasons](https://stripe.com/docs/disputes/categories) + @constraint:String {maxLength: 5000} + string reason; + # Disputed amount. Usually the amount of the charge, but it can differ (usually because of currency fluctuation or because only part of the order is disputed) + int amount; + # 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 + record {|string...;|} metadata; + # ID of the charge that's disputed + string|Charge charge; + DisputeEvidence evidence; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "evidence_details"} + DisputeEvidenceDetails evidenceDetails; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "payment_method_details"} + DisputePaymentMethodDetails paymentMethodDetails?; + # List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute + @jsondata:Name {value: "balance_transactions"} + BalanceTransaction[] balanceTransactions; + # If true, it's still possible to refund the disputed payment. After the payment has been fully refunded, no further funds are withdrawn from your Stripe account as a result of this dispute + @jsondata:Name {value: "is_charge_refundable"} + boolean isChargeRefundable; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # ID of the PaymentIntent that's disputed + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent? paymentIntent?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "dispute" 'object; + # Current status of dispute. Possible values are `warning_needs_response`, `warning_under_review`, `warning_closed`, `needs_response`, `under_review`, `won`, or `lost` + "lost"|"needs_response"|"under_review"|"warning_closed"|"warning_needs_response"|"warning_under_review"|"won" status; +}; + +# +public type CheckoutKonbiniPaymentMethodOptions record { + # The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST + @jsondata:Name {value: "expires_after_days"} + int? expiresAfterDays?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type GelatoSessionIdNumberOptions record { +}; + +# +public type PaymentMethodGiropay record { +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountPersonsQueriesExpandItemsString string; + +# Optional hash to set the return code +public type ReturnedDetailsParams record { + "account_closed"|"account_frozen"|"bank_account_restricted"|"bank_ownership_changed"|"declined"|"incorrect_account_holder_name"|"invalid_account_number"|"invalid_currency"|"no_account"|"other" code?; +}; + +# Represents the Queries record for the operation: GetIssuingDisputes +public type GetIssuingDisputesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingDisputesQueriesExpandItemsString[] expand?; + # Only return Issuing disputes that were created during the given date interval + Created20 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Select the Issuing dispute for the given transaction + @constraint:String {maxLength: 5000} + string 'transaction?; + # Select Issuing disputes with the given status + "expired"|"lost"|"submitted"|"unsubmitted"|"won" status?; +}; + +# +public type IssuingCardSpendingLimit record { + # Maximum amount allowed to spend per interval. This amount is in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Interval (or event) to which the amount applies + "all_time"|"daily"|"monthly"|"per_authorization"|"weekly"|"yearly" interval; + # Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories + ("ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards")[]? categories?; +}; + +# +public type SourceOrder record { + # 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 for the order + int amount; + Shipping shipping?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # List of items constituting the order + SourceOrderItem[]? items?; + # The email address of the customer placing the order + @constraint:String {maxLength: 5000} + string email?; +}; + +# +public type PaymentLinksResourceTaxIdCollection record { + # Indicates whether tax ID collection is enabled for the session + boolean enabled; +}; + +# Details about network-specific tracking information +public type TrackingDetailsParams record { + AchTrackingDetailsParams ach?; + @jsondata:Name {value: "us_domestic_wire"} + UsDomesticWireTrackingDetailsParams usDomesticWire?; + "ach"|"us_domestic_wire" 'type; +}; + +# Information about the features available in the portal +public type FeaturesUpdatingParam record { + @jsondata:Name {value: "subscription_cancel"} + SubscriptionCancelUpdatingParam subscriptionCancel?; + @jsondata:Name {value: "invoice_history"} + InvoiceListParam invoiceHistory?; + @jsondata:Name {value: "payment_method_update"} + PaymentMethodUpdateParam paymentMethodUpdate?; + @jsondata:Name {value: "customer_update"} + CustomerUpdateUpdatingParam customerUpdate?; + @jsondata:Name {value: "subscription_update"} + SubscriptionUpdateUpdatingParam subscriptionUpdate?; +}; + +# +public type PaymentLinksResourceCompletionBehaviorRedirect record { + # The URL the customer will be redirected to after the purchase is complete + @constraint:String {maxLength: 5000} + string url; +}; + +# Use OutboundPayments to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers). +# +# Simulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects +public type TreasuryOutboundPayment record { + # The FinancialAccount that funds were pulled from + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) transferred + int amount; + # 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 + record {|string...;|} metadata; + # Returns `true` if the object can be canceled, and `false` otherwise + boolean cancelable; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Details about network-specific tracking information if available + @jsondata:Name {value: "tracking_details"} + TreasuryOutboundPaymentsResourceOutboundPaymentResourceTrackingDetails? trackingDetails?; + # Details about the end user + @jsondata:Name {value: "end_user_details"} + TreasuryOutboundPaymentsResourceOutboundPaymentResourceEndUserDetails? endUserDetails?; + # Details about the PaymentMethod for an OutboundPayment + @jsondata:Name {value: "destination_payment_method_details"} + OutboundPaymentsPaymentMethodDetails? destinationPaymentMethodDetails?; + # The date when funds are expected to arrive in the destination account + @jsondata:Name {value: "expected_arrival_date"} + int expectedArrivalDate; + # The description that appears on the receiving end for an OutboundPayment (for example, bank statement for external bank transfer) + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Details about a returned OutboundPayment. Only set when the status is `returned` + @jsondata:Name {value: "returned_details"} + TreasuryOutboundPaymentsResourceReturnedStatus? returnedDetails?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + TreasuryOutboundPaymentsResourceOutboundPaymentResourceStatusTransitions statusTransitions; + # The Transaction associated with this object + string|TreasuryTransaction 'transaction; + # ID of the [customer](https://stripe.com/docs/api/customers) to whom an OutboundPayment is sent + string? customer?; + # The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created using `destination_payment_method_data` + @jsondata:Name {value: "destination_payment_method"} + string? destinationPaymentMethod?; + # String representing the object's type. Objects of the same type share the same value + "treasury.outbound_payment" 'object; + # Current status of the OutboundPayment: `processing`, `failed`, `posted`, `returned`, `canceled`. An OutboundPayment is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundPayment has been "confirmed" and funds have left the account, or to `failed` or `canceled`. If an OutboundPayment fails to arrive at its destination, its status will change to `returned` + "canceled"|"failed"|"posted"|"processing"|"returned" status; +}; + +# Use this parameter to automatically create a Transfer when the payment succeeds. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) +public type TransferDataUpdateParams record { + int amount?; +}; + +@constraint:String {maxLength: 5000} +public type CapabilitiescapabilityBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type IdVoidBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetLinkedAccountsAccountOwnersQueriesExpandItemsString string; + +# +public type CheckoutRevolutPayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +# Represents the Queries record for the operation: GetIdentityVerificationSessions +public type GetIdentityVerificationSessionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIdentityVerificationSessionsQueriesExpandItemsString[] expand?; + # Only return VerificationSessions that were created during the given date interval + Created14 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems + @http:Query {name: "client_reference_id"} + string clientReferenceId?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return VerificationSessions with this status. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work) + "canceled"|"processing"|"requires_input"|"verified" status?; +}; + +@constraint:String {maxLength: 5000} +public type SourceVerifyBodyValuesItemsString string; + +@constraint:String {maxLength: 5000} +public type SubscriptionResumeBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetEventsId +public type GetEventsIdQueries record { + # Specifies which fields in the response should be expanded + GetEventsIdQueriesExpandItemsString[] expand?; +}; + +# Reviews can be used to supplement automated fraud detection with human expertise. +# +# Learn more about [Radar](/radar) and reviewing payments +# [here](https://stripe.com/docs/radar/reviews) +public type Review record { + # Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address + @jsondata:Name {value: "ip_address_location"} + RadarReviewResourceLocation? ipAddressLocation?; + # The reason the review is currently open or closed. One of `rule`, `manual`, `approved`, `refunded`, `refunded_as_fraud`, `disputed`, or `redacted` + @constraint:String {maxLength: 5000} + string reason; + # The charge associated with this review + string|Charge? charge?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The reason the review was opened. One of `rule` or `manual` + @jsondata:Name {value: "opened_reason"} + "manual"|"rule" openedReason; + # Information related to the browsing session of the user who initiated the payment + RadarReviewResourceSession? session?; + # The IP address where the payment originated + @jsondata:Name {value: "ip_address"} + string? ipAddress?; + # The ZIP or postal code of the card used, if applicable + @jsondata:Name {value: "billing_zip"} + string? billingZip?; + # The reason the review was closed, or null if it has not yet been closed. One of `approved`, `refunded`, `refunded_as_fraud`, `disputed`, or `redacted` + @jsondata:Name {value: "closed_reason"} + "approved"|"disputed"|"redacted"|"refunded"|"refunded_as_fraud"? closedReason?; + # The PaymentIntent ID associated with this review, if one exists + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent paymentIntent?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # If `true`, the review needs action + boolean open; + # String representing the object's type. Objects of the same type share the same value + "review" 'object; +}; + +@constraint:String {maxLength: 5000} +public type IssuingPersonalizationDesignsBodyExpandItemsString string; + +public type LinkedAccountOptionsFiltersParamAccountsubcategoriesItemsString "checking"|"savings"; + +@constraint:String {maxLength: 5000} +public type GetIssuingDisputesDisputeQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetBillingMetersIdQueriesExpandItemsString string; + +# Controls phone number collection settings during checkout. +# +# We recommend that you review your privacy policy and check with your legal contacts +public type PhoneNumberCollectionParams1 record { + boolean enabled; +}; + +# Settings for automatic tax lookup for this invoice +public type AutomaticTaxParam record { + Param liability?; + boolean enabled; +}; + +# Contains additional details about the status of a payment method for a specific payment method domain +public type PaymentMethodDomainResourcePaymentMethodStatusDetails record { + # The error message associated with the status of the payment method on the domain + @jsondata:Name {value: "error_message"} + string errorMessage; +}; + +public type DeliveryEstimateBound record { + "business_day"|"day"|"hour"|"month"|"week" unit; + int value; +}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionSchedulesScheduleQueriesExpandItemsString string; + +# +public type MandateMultiUse record { +}; + +# +public type BillingDetails record { + # Billing address + Address? address?; + # Billing phone number (including extension) + string? phone?; + # Full name + string? name?; + # Email address + string? email?; +}; + +# +public type BankConnectionsResourceOwnerList record { + # Details about each object + FinancialConnectionsAccountOwner[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetPricesSearchQueriesExpandItemsString string; + +# +public type OnlineAcceptance record { + # The customer accepts the mandate from this IP address + @jsondata:Name {value: "ip_address"} + string? ipAddress?; + # The customer accepts the mandate using the user agent of the browser + @jsondata:Name {value: "user_agent"} + string? userAgent?; +}; + +public type LinesDataParam record { + int amount?; + record {|string...;|}|"" metadata?; + Period2 period?; + @jsondata:Name {value: "price_data"} + OneTimePriceDataWithProductData priceData?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "invoice_item"} + string invoiceItem?; + @constraint:String {maxLength: 5000} + string price?; + @constraint:String {maxLength: 5000} + string description?; + boolean discountable?; + @jsondata:Name {value: "tax_amounts"} + record {int amount; record {string country?; string description?; string display_name; boolean inclusive; string jurisdiction?; decimal percentage; string state?; "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat" tax_type?;} tax_rate_data; int taxable_amount;}[]|"" taxAmounts?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type PaymentLinkspaymentLinkBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetSetupAttempts +public type GetSetupAttemptsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSetupAttemptsQueriesExpandItemsString[] expand?; + # Only return SetupAttempts created by the SetupIntent specified by + # this ID + @http:Query {name: "setup_intent"} + string setupIntent; + # A filter on the list, based on the object `created` field. The value + # can be a string with an integer Unix timestamp or a + # dictionary with a number of different query options + Created35 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type AccountCardPaymentsSettings record { + # The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion + @jsondata:Name {value: "statement_descriptor_prefix_kana"} + string? statementDescriptorPrefixKana?; + # The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion + @jsondata:Name {value: "statement_descriptor_prefix_kanji"} + string? statementDescriptorPrefixKanji?; + # The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge. `statement_descriptor_prefix` is useful for maximizing descriptor space for the dynamic portion + @jsondata:Name {value: "statement_descriptor_prefix"} + string? statementDescriptorPrefix?; + @jsondata:Name {value: "decline_on"} + AccountDeclineChargeOn declineOn?; +}; + +@constraint:String {maxLength: 5000} +public type RefundExpireBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AccountBankAccountsBodyExpandItemsString string; + +# +public type GelatoReportDocumentOptions record { + # Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user’s face. [Learn more](https://stripe.com/docs/identity/selfie) + @jsondata:Name {value: "require_matching_selfie"} + boolean requireMatchingSelfie?; + # Array of strings of allowed identity document types. If the provided identity document isn’t one of the allowed types, the verification check will fail with a document_type_not_allowed error code + @jsondata:Name {value: "allowed_types"} + ("driving_license"|"id_card"|"passport")[] allowedTypes?; + # Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document’s extracted name and date of birth + @jsondata:Name {value: "require_id_number"} + boolean requireIdNumber?; + # Disable image uploads, identity document images have to be captured using the device’s camera + @jsondata:Name {value: "require_live_capture"} + boolean requireLiveCapture?; +}; + +# +public type PortalFlowsFlowAfterCompletion record { + # Configuration when `after_completion.type=redirect` + PortalFlowsAfterCompletionRedirect? redirect?; + # Configuration when `after_completion.type=hosted_confirmation` + @jsondata:Name {value: "hosted_confirmation"} + PortalFlowsAfterCompletionHostedConfirmation? hostedConfirmation?; + # The specified type of behavior after the flow is completed + "hosted_confirmation"|"portal_homepage"|"redirect" 'type; +}; + +# +public type PersonFutureRequirements record { + # Fields that need to be collected to keep the person's account enabled. If not collected by the account's `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash, and may immediately become `past_due`, but the account may also be given a grace period depending on the account's enablement state prior to transition + @jsondata:Name {value: "currently_due"} + PersonFutureRequirementsCurrentlydueItemsString[] currentlyDue; + # Fields that are due and can be satisfied by providing the corresponding alternative fields instead + AccountRequirementsAlternative[]? alternatives?; + # Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and the account's `future_requirements[current_deadline]` becomes set + @jsondata:Name {value: "eventually_due"} + PersonFutureRequirementsEventuallydueItemsString[] eventuallyDue; + # Fields that weren't collected by the account's `requirements.current_deadline`. These fields need to be collected to enable the person's account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due` + @jsondata:Name {value: "past_due"} + PersonFutureRequirementsPastdueItemsString[] pastDue; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[] errors; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + PersonFutureRequirementsPendingverificationItemsString[] pendingVerification; +}; + +# +public type PaymentMethodCashapp record { + # A public identifier for buyers using Cash App + string? cashtag?; + # A unique and immutable identifier assigned by Cash App to every buyer + @jsondata:Name {value: "buyer_id"} + string? buyerId?; +}; + +# +public type PaymentLinksResourceCustomFields record { + PaymentLinksResourceCustomFieldsNumeric numeric?; + # Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false` + boolean optional; + PaymentLinksResourceCustomFieldsLabel label; + PaymentLinksResourceCustomFieldsText text?; + # The type of the field + "dropdown"|"numeric"|"text" 'type; + PaymentLinksResourceCustomFieldsDropdown dropdown?; + # String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters + @constraint:String {maxLength: 5000} + string 'key; +}; + +# +public type PaymentMethodKonbini record { +}; + +# +public type PaymentMethodDetailsKonbini record { + # If the payment succeeded, this contains the details of the convenience store where the payment was completed + PaymentMethodDetailsKonbiniStore? store?; +}; + +@constraint:String {maxLength: 5000} +public type IntentConfirmBody1ExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTreasuryCreditReversalsCreditReversalQueriesExpandItemsString string; + +# The business information shown to customers in the portal +public type BusinessProfileCreateParam record { + @jsondata:Name {value: "privacy_policy_url"} + string privacyPolicyUrl?; + string|"" headline?; + @jsondata:Name {value: "terms_of_service_url"} + string termsOfServiceUrl?; +}; + +# When set, provides configuration for Checkout to collect a shipping address from a customer +public type ShippingAddressCollectionParams record { + @jsondata:Name {value: "allowed_countries"} + ("AC"|"AD"|"AE"|"AF"|"AG"|"AI"|"AL"|"AM"|"AO"|"AQ"|"AR"|"AT"|"AU"|"AW"|"AX"|"AZ"|"BA"|"BB"|"BD"|"BE"|"BF"|"BG"|"BH"|"BI"|"BJ"|"BL"|"BM"|"BN"|"BO"|"BQ"|"BR"|"BS"|"BT"|"BV"|"BW"|"BY"|"BZ"|"CA"|"CD"|"CF"|"CG"|"CH"|"CI"|"CK"|"CL"|"CM"|"CN"|"CO"|"CR"|"CV"|"CW"|"CY"|"CZ"|"DE"|"DJ"|"DK"|"DM"|"DO"|"DZ"|"EC"|"EE"|"EG"|"EH"|"ER"|"ES"|"ET"|"FI"|"FJ"|"FK"|"FO"|"FR"|"GA"|"GB"|"GD"|"GE"|"GF"|"GG"|"GH"|"GI"|"GL"|"GM"|"GN"|"GP"|"GQ"|"GR"|"GS"|"GT"|"GU"|"GW"|"GY"|"HK"|"HN"|"HR"|"HT"|"HU"|"ID"|"IE"|"IL"|"IM"|"IN"|"IO"|"IQ"|"IS"|"IT"|"JE"|"JM"|"JO"|"JP"|"KE"|"KG"|"KH"|"KI"|"KM"|"KN"|"KR"|"KW"|"KY"|"KZ"|"LA"|"LB"|"LC"|"LI"|"LK"|"LR"|"LS"|"LT"|"LU"|"LV"|"LY"|"MA"|"MC"|"MD"|"ME"|"MF"|"MG"|"MK"|"ML"|"MM"|"MN"|"MO"|"MQ"|"MR"|"MS"|"MT"|"MU"|"MV"|"MW"|"MX"|"MY"|"MZ"|"NA"|"NC"|"NE"|"NG"|"NI"|"NL"|"NO"|"NP"|"NR"|"NU"|"NZ"|"OM"|"PA"|"PE"|"PF"|"PG"|"PH"|"PK"|"PL"|"PM"|"PN"|"PR"|"PS"|"PT"|"PY"|"QA"|"RE"|"RO"|"RS"|"RU"|"RW"|"SA"|"SB"|"SC"|"SE"|"SG"|"SH"|"SI"|"SJ"|"SK"|"SL"|"SM"|"SN"|"SO"|"SR"|"SS"|"ST"|"SV"|"SX"|"SZ"|"TA"|"TC"|"TD"|"TF"|"TG"|"TH"|"TJ"|"TK"|"TL"|"TM"|"TN"|"TO"|"TR"|"TT"|"TV"|"TW"|"TZ"|"UA"|"UG"|"US"|"UY"|"UZ"|"VA"|"VC"|"VE"|"VG"|"VN"|"VU"|"WF"|"WS"|"XK"|"YE"|"YT"|"ZA"|"ZM"|"ZW"|"ZZ")[] allowedCountries; +}; + +@constraint:String {maxLength: 5000} +public type PaymentMethodDomainspaymentMethodDomainBodyExpandItemsString string; + +# Subscriptions allow you to charge a customer on a recurring basis. +# +# Related guide: [Creating subscriptions](https://stripe.com/docs/billing/subscriptions/creating) +public type Subscription record { + # The fixed values used to calculate the `billing_cycle_anchor` + @jsondata:Name {value: "billing_cycle_anchor_config"} + SubscriptionsResourceBillingCycleAnchorConfig? billingCycleAnchorConfig?; + # 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 + record {|string...;|} metadata; + # If the subscription has been canceled with the `at_period_end` flag set to `true`, `cancel_at_period_end` on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # You can use this [SetupIntent](https://stripe.com/docs/api/setup_intents) to collect user authentication when creating a subscription without immediate payment or updating a subscription's payment method, allowing you to optimize for off-session payments. Learn more in the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication#scenario-2) + @jsondata:Name {value: "pending_setup_intent"} + string|SetupIntent? pendingSetupIntent?; + # If specified, [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates) that will be applied to the subscription once the `latest_invoice` has been paid + @jsondata:Name {value: "pending_update"} + SubscriptionsResourcePendingUpdate? pendingUpdate?; + # If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with `cancel_at_period_end`, `canceled_at` will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Number of days a customer has to pay invoices generated by this subscription. This value will be `null` for subscriptions where `collection_method=charge_automatically` + @jsondata:Name {value: "days_until_due"} + int? daysUntilDue?; + # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + string? description?; + # Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + Discount? discount?; + # Details about why this subscription was cancelled + @jsondata:Name {value: "cancellation_details"} + CancellationDetails? cancellationDetails?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account + @jsondata:Name {value: "application_fee_percent"} + decimal? applicationFeePercent?; + # If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](/billing/subscriptions/pause-payment) + @jsondata:Name {value: "pause_collection"} + SubscriptionsResourcePauseCollection? pauseCollection?; + # The account (if any) the subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices + @jsondata:Name {value: "transfer_data"} + SubscriptionTransferData? transferData?; + # The discounts applied to the subscription. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount + SubscriptionDiscounts[] discounts; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Start of the current period that the subscription has been invoiced for + @jsondata:Name {value: "current_period_start"} + int currentPeriodStart; + # Date when the subscription was first created. The date might differ from the `created` date due to backdating + @jsondata:Name {value: "start_date"} + int startDate; + @jsondata:Name {value: "invoice_settings"} + SubscriptionsResourceSubscriptionInvoiceSettings invoiceSettings; + # Payment settings passed on to invoices created by the subscription + @jsondata:Name {value: "payment_settings"} + SubscriptionsResourcePaymentSettings? paymentSettings?; + # The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription + @jsondata:Name {value: "default_tax_rates"} + TaxRate[]? defaultTaxRates?; + # ID of the test clock this subscription belongs to + @jsondata:Name {value: "test_clock"} + string|TestHelpersTestClock? testClock?; + # The most recent invoice this subscription has generated + @jsondata:Name {value: "latest_invoice"} + string|Invoice? latestInvoice?; + # ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_source"} + string|BankAccount|Card|Source? defaultSource?; + # The account (if any) the charge was made on behalf of for charges associated with this subscription. See the Connect documentation for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_payment_method"} + string|PaymentMethod? defaultPaymentMethod?; + # If the subscription has a trial, the end of that trial + @jsondata:Name {value: "trial_end"} + int? trialEnd?; + # End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created + @jsondata:Name {value: "current_period_end"} + int currentPeriodEnd; + # Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval + @jsondata:Name {value: "pending_invoice_item_interval"} + SubscriptionPendingInvoiceItemInterval? pendingInvoiceItemInterval?; + # Settings related to subscription trials + @jsondata:Name {value: "trial_settings"} + SubscriptionsTrialsResourceTrialSettings? trialSettings?; + # The reference point that aligns future [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle) dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals. The timestamp is in UTC format + @jsondata:Name {value: "billing_cycle_anchor"} + int billingCycleAnchor; + # The schedule attached to the subscription + string|SubscriptionSchedule? schedule?; + @jsondata:Name {value: "automatic_tax"} + SubscriptionAutomaticTax automaticTax; + # ID of the Connect Application that created the subscription + string|Application|DeletedApplication? application?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod; + # If the subscription has a trial, the beginning of that trial + @jsondata:Name {value: "trial_start"} + int? trialStart?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + @jsondata:Name {value: "billing_thresholds"} + SubscriptionBillingThresholds? billingThresholds?; + # Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at `pending_invoice_item_interval` + @jsondata:Name {value: "next_pending_invoice_item_invoice"} + int? nextPendingInvoiceItemInvoice?; + SubscriptionItemList items; + # If the subscription has ended, the date the subscription ended + @jsondata:Name {value: "ended_at"} + int? endedAt?; + # A date in the future at which the subscription will automatically get canceled + @jsondata:Name {value: "cancel_at"} + int? cancelAt?; + # ID of the customer who owns the subscription + string|Customer|DeletedCustomer customer; + # String representing the object's type. Objects of the same type share the same value + "subscription" 'object; + # Possible values are `incomplete`, `incomplete_expired`, `trialing`, `active`, `past_due`, `canceled`, `unpaid`, or `paused`. + # + # For `collection_method=charge_automatically` a subscription moves into `incomplete` if the initial payment attempt fails. A subscription in this status can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an `active` status. If the first invoice is not paid within 23 hours, the subscription transitions to `incomplete_expired`. This is a terminal status, the open invoice will be voided and no further invoices will be generated. + # + # A subscription that is currently in a trial period is `trialing` and moves to `active` when the trial period is over. + # + # A subscription can only enter a `paused` status [when a trial ends without a payment method](/billing/subscriptions/trials#create-free-trials-without-payment). A `paused` subscription doesn't generate invoices and can be resumed after your customer adds their payment method. The `paused` status is different from [pausing collection](/billing/subscriptions/pause-payment), which still generates invoices and leaves the subscription's status unchanged. + # + # If subscription `collection_method=charge_automatically`, it becomes `past_due` when payment is required but cannot be paid (due to failed payment or awaiting additional user actions). Once Stripe has exhausted all payment retry attempts, the subscription will become `canceled` or `unpaid` (depending on your subscriptions settings). + # + # If subscription `collection_method=send_invoice` it becomes `past_due` when its invoice is not paid by the due date, and `canceled` or `unpaid` if it is still not paid by an additional deadline after that. Note that when a subscription has a status of `unpaid`, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices + "active"|"canceled"|"incomplete"|"incomplete_expired"|"past_due"|"paused"|"trialing"|"unpaid" status; +}; + +# +public type IssuingDisputeList record { + IssuingDispute[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/disputes`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SetupAttemptPaymentMethodDetailsRevolutPay record { +}; + +# The delivery of a specified quantity of carbon for an order +public type ClimateRemovalsOrderDeliveries record { + # Once retired, a URL to the registry entry for the tons from this delivery + @jsondata:Name {value: "registry_url"} + string? registryUrl?; + ClimateSupplier supplier; + # Specific location of this delivery + ClimateRemovalsLocation? location?; + # Time at which the delivery occurred. Measured in seconds since the Unix epoch + @jsondata:Name {value: "delivered_at"} + int deliveredAt; + # Quantity of carbon removal supplied by this delivery + @jsondata:Name {value: "metric_tons"} + string metricTons; +}; + +# +public type IssuingCardholderCompany record { + # Whether the company's business ID number was provided + @jsondata:Name {value: "tax_id_provided"} + boolean taxIdProvided; +}; + +# +public type BillingMeterResourceBillingMeterStatusTransitions record { + # The time the meter was deactivated, if any. Measured in seconds since Unix epoch + @jsondata:Name {value: "deactivated_at"} + int? deactivatedAt?; +}; + +# The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to +public type TransferDataParams1 record { + int amount?; + string destination; +}; + +# Change to a FinancialAccount's balance +public type TreasuryTransactionsResourceBalanceImpact record { + # The change made to funds that are not spendable yet, but will become available at a later time + @jsondata:Name {value: "inbound_pending"} + int inboundPending; + # The change made to funds the user can spend right now + int cash; + # The change made to funds in the account, but not spendable because they are being held for pending outbound flows + @jsondata:Name {value: "outbound_pending"} + int outboundPending; +}; + +public type ChargesBody record {| + # Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99) + int amount?; + # 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` + record {|string...;|}|"" metadata?; + # A string that identifies this transaction as part of a group. For details, see [Grouping transactions](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions radarOptions?; + # The Stripe account ID for which these funds are intended. Automatically set if you use the `destination` parameter. For details, see [Creating Separate Charges and Transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant) + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + record {string account; int amount?;}|string destination?; + # Whether to immediately capture the charge. Defaults to `true`. When `false`, the charge issues an authorization (or pre-authorization), and will need to be [captured](https://stripe.com/docs/api#capture_charge) later. Uncaptured charges expire after a set number of days (7 by default). For more information, see the [authorizing charges and settling later](https://stripe.com/docs/charges/placing-a-hold) documentation + boolean capture?; + # An arbitrary string which you can attach to a `Charge` object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing + @constraint:String {maxLength: 40000} + string description?; + # A payment source to be charged. This can be the ID of a [card](https://stripe.com/docs/api#cards) (i.e., credit or debit card), a [bank account](https://stripe.com/docs/api#bank_accounts), a [source](https://stripe.com/docs/api#sources), a [token](https://stripe.com/docs/api#tokens), or a [connected account](https://stripe.com/docs/connect/account-debits#charging-a-connected-account). For certain sources---namely, [cards](https://stripe.com/docs/api#cards), [bank accounts](https://stripe.com/docs/api#bank_accounts), and attached [sources](https://stripe.com/docs/api#sources)---you must also pass the ID of the associated customer + @constraint:String {maxLength: 5000} + string 'source?; + # For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs transferData?; + # Specifies which fields in the response should be expanded + ChargesBodyExpandItemsString[] expand?; + OptionalFieldsShipping shipping?; + # The email address to which this charge's [receipt](https://stripe.com/docs/dashboard/receipts) will be sent. The receipt will not be sent until the charge is paid, and no receipts will be sent for test mode charges. If this charge is for a [Customer](https://stripe.com/docs/api/customers/object), the email address specified here will override the customer's email address. If `receipt_email` is specified for a charge in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails) + @jsondata:Name {value: "receipt_email"} + string receiptEmail?; + @jsondata:Name {value: "application_fee"} + int applicationFee?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; + # A fee in cents (or local equivalent) that will be applied to the charge and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the `Stripe-Account` header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; + # A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js) + record {string address_city?; string address_country?; string address_line1?; string address_line2?; string address_state?; string address_zip?; string cvc?; int exp_month; int exp_year; record {|string...;|} metadata?; string name?; string number; "card" 'object?;}|string card?; + # The ID of an existing customer that will be charged in this request + @constraint:String {maxLength: 500} + string customer?; +|}; + +# Represents the Queries record for the operation: GetCreditNotes +public type GetCreditNotesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCreditNotesQueriesExpandItemsString[] expand?; + # Only return credit notes that were created during the given date interval + Created7 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return credit notes for the invoice specified by this invoice ID + @constraint:String {maxLength: 5000} + string invoice?; + # Only return credit notes for the customer specified by this customer ID + @constraint:String {maxLength: 5000} + string customer?; +}; + +# Represents the Queries record for the operation: GetEntitlementsFeatures +public type GetEntitlementsFeaturesQueries record { + # If set, filter results to only include features with the given archive status + boolean archived?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetEntitlementsFeaturesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # If set, filter results to only include features with the given lookup_key + @http:Query {name: "lookup_key"} + string lookupKey?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentMethodEps record { + # The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau` + "arzte_und_apotheker_bank"|"austrian_anadi_bank_ag"|"bank_austria"|"bankhaus_carl_spangler"|"bankhaus_schelhammer_und_schattera_ag"|"bawag_psk_ag"|"bks_bank_ag"|"brull_kallmus_bank_ag"|"btv_vier_lander_bank"|"capital_bank_grawe_gruppe_ag"|"deutsche_bank_ag"|"dolomitenbank"|"easybank_ag"|"erste_bank_und_sparkassen"|"hypo_alpeadriabank_international_ag"|"hypo_bank_burgenland_aktiengesellschaft"|"hypo_noe_lb_fur_niederosterreich_u_wien"|"hypo_oberosterreich_salzburg_steiermark"|"hypo_tirol_bank_ag"|"hypo_vorarlberg_bank_ag"|"marchfelder_bank"|"oberbank_ag"|"raiffeisen_bankengruppe_osterreich"|"schoellerbank_ag"|"sparda_bank_wien"|"volksbank_gruppe"|"volkskreditbank_ag"|"vr_bank_braunau"? bank?; +}; + +# +public type TreasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails record { + @jsondata:Name {value: "financial_account"} + ReceivedPaymentMethodDetailsFinancialAccount financialAccount?; + @jsondata:Name {value: "billing_details"} + TreasurySharedResourceBillingDetails billingDetails; + # Set when `type` is `balance` + "payments" balance?; + @jsondata:Name {value: "us_bank_account"} + TreasurySharedResourceInitiatingPaymentMethodDetailsUsBankAccount usBankAccount?; + # Set when `type` is `issuing_card`. This is an [Issuing Card](https://stripe.com/docs/api#issuing_cards) ID + @jsondata:Name {value: "issuing_card"} + string issuingCard?; + # Polymorphic type matching the originating money movement's source. This can be an external account, a Stripe balance, or a FinancialAccount + "balance"|"financial_account"|"issuing_card"|"stripe"|"us_bank_account" 'type; +}; + +# +public type AccountCardIssuingSettings record { + @jsondata:Name {value: "tos_acceptance"} + CardIssuingAccountTermsOfService tosAcceptance?; +}; + +# +public type SubscriptionSchedulesResourceDefaultSettings record { + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingSubscriptionScheduleSetting invoiceSettings; + # The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices + @jsondata:Name {value: "transfer_data"} + SubscriptionTransferData? transferData?; + @jsondata:Name {value: "automatic_tax"} + SubscriptionSchedulesResourceDefaultSettingsAutomaticTax automaticTax?; + # The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings + @jsondata:Name {value: "default_payment_method"} + string|PaymentMethod? defaultPaymentMethod?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice"? collectionMethod?; + # Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + string? description?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period + @jsondata:Name {value: "billing_thresholds"} + SubscriptionBillingThresholds? billingThresholds?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule + @jsondata:Name {value: "application_fee_percent"} + decimal? applicationFeePercent?; + # Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle) + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start" billingCycleAnchor; +}; + +# +public type PortalLoginPage record { + # If `true`, a shareable `url` will be generated that will take your customers to a hosted login page for the customer portal. + # + # If `false`, the previously generated `url`, if any, will be deactivated + boolean enabled; + # A shareable URL to the hosted portal login page. Your customers will be able to log in with their [email](https://stripe.com/docs/api/customers/object#customer_object-email) and receive a link to their customer portal + string? url?; +}; + +@constraint:String {maxLength: 5000} +public type IdReversalsBodyExpandItemsString string; + +# +public type PaymentMethodCardGeneratedCard record { + # The charge that created this object + string? charge?; + # Transaction-specific details of the payment method used in the payment + @jsondata:Name {value: "payment_method_details"} + CardGeneratedFromPaymentMethodDetails? paymentMethodDetails?; + # The ID of the SetupAttempt that generated this PaymentMethod, if any + @jsondata:Name {value: "setup_attempt"} + string|SetupAttempt? setupAttempt?; +}; + +# Additional purchase information that is optionally provided by the merchant +public type PurchaseDetailsSpecs record { + LodgingSpecs lodging?; + @constraint:String {maxLength: 5000} + string reference?; + FleetSpecs1 fleet?; + FlightSpecs flight?; + FuelSpecs1 fuel?; + ReceiptSpecs[] receipt?; +}; + +@constraint:String {maxLength: 5000} +public type DisputeSubmitBodyExpandItemsString string; + +public type ThreeDSecureSpecs record { + "attempt_acknowledged"|"authenticated"|"failed"|"required" result; +}; + +# +public type PaymentMethodTwint record { +}; + +@constraint:String {maxLength: 5000} +public type GetProductsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type PortalSubscriptionUpdateProductPricesItemsString string; + +@constraint:String {maxLength: 5000} +public type GetEntitlementsActiveEntitlementsIdQueriesExpandItemsString string; + +# +public type IssuingNetworkTokenList record { + IssuingToken[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type ClimateRemovalsSuppliersList record { + ClimateSupplier[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/climate/suppliers`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type Created15RangeQuerySpecs162 int; + +# +public type PaymentPagesCheckoutSessionCustomText record { + # Custom text that should be displayed after the payment confirmation button + @jsondata:Name {value: "after_submit"} + PaymentPagesCheckoutSessionCustomTextPosition? afterSubmit?; + # Custom text that should be displayed alongside the payment confirmation button + PaymentPagesCheckoutSessionCustomTextPosition? submit?; + # Custom text that should be displayed in place of the default terms of service agreement text + @jsondata:Name {value: "terms_of_service_acceptance"} + PaymentPagesCheckoutSessionCustomTextPosition? termsOfServiceAcceptance?; + # Custom text that should be displayed alongside shipping address collection + @jsondata:Name {value: "shipping_address"} + PaymentPagesCheckoutSessionCustomTextPosition? shippingAddress?; +}; + +# +public type CardMandatePaymentMethodDetails record { +}; + +# +public type PaymentMethodOptionsCardPresentRouting record { + # Requested routing priority + @jsondata:Name {value: "requested_priority"} + "domestic"|"international"? requestedPriority?; +}; + +# Initiating payment method details for the object +public type SourceParams record { + @jsondata:Name {value: "us_bank_account"} + UsBankAccountSourceParams usBankAccount?; + "us_bank_account" 'type; +}; + +# +public type Fee record { + # Amount of the fee, in cents + int amount; + # ID of the Connect application that earned the fee + string? application?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Type of the fee, one of: `application_fee`, `payment_method_passthrough_fee`, `stripe_fee` or `tax` + @constraint:String {maxLength: 5000} + string 'type; +}; + +# A list of reversals that have been applied to the transfer +public type TransferReversalList1 record { + # Details about each object + TransferReversal[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type IndividualSpecs1 record { + @jsondata:Name {value: "maiden_name"} + string maidenName?; + @jsondata:Name {value: "id_number"} + string idNumber?; + record {|string...;|}|"" metadata?; + AddressSpecs address?; + @jsondata:Name {value: "registered_address"} + AddressSpecs registeredAddress?; + string gender?; + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "political_exposure"} + "existing"|"none" politicalExposure?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs addressKana?; + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + @jsondata:Name {value: "last_name"} + string lastName?; + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + string phone?; + record {int day; int month; int year;}|"" dob?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs addressKanji?; + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + IndividualRelationshipSpecs relationship?; + @jsondata:Name {value: "first_name"} + string firstName?; + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + string email?; + PersonVerificationSpecs verification?; + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; +}; + +public type FinancialConnectionsSessionsBody record {| + # Specifies which fields in the response should be expanded + FinancialConnectionsSessionsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "account_holder"} + AccountholderParams1 accountHolder; + # List of data features that you would like to request access to. + # + # Possible values are `balances`, `transactions`, `ownership`, and `payment_method` + (FinancialConnectionsSessionsBodyPermissionsItemsString)[] permissions; + # List of data features that you would like to retrieve upon account creation + ("balances"|"ownership"|"transactions")[] prefetch?; + # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app + @jsondata:Name {value: "return_url"} + string returnUrl?; + FiltersParams filters?; +|}; + +public type InvoicesBody record {| + # 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` + record {|string...;|}|"" metadata?; + # Footer to be displayed on the invoice + @constraint:String {maxLength: 5000} + string footer?; + @jsondata:Name {value: "shipping_details"} + RecipientShippingWithOptionalFieldsAddress shippingDetails?; + # The number of days from when the invoice is created until it is due. Valid only for invoices where `collection_method=send_invoice` + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + # An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard + @constraint:String {maxLength: 1500} + string description?; + # The ID of the subscription to invoice, if any. If set, the created invoice will only include pending invoice items for that subscription. The subscription's billing cycle and regular subscription events won't be affected + @constraint:String {maxLength: 5000} + string subscription?; + Param1 issuer?; + # Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor` + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs4 transferData?; + # Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically + @constraint:String {maxLength: 26} + string number?; + # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action + @jsondata:Name {value: "auto_advance"} + boolean autoAdvance?; + # The coupons and promotion codes to redeem into discounts for the invoice. If not specified, inherits the discount from the invoice's customer. Pass an empty string to avoid inheriting any discounts + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "from_invoice"} + FromInvoice fromInvoice?; + # The currency to create this invoice in. Defaults to that of `customer` if not specified + string currency?; + @jsondata:Name {value: "payment_settings"} + PaymentSettings1 paymentSettings?; + # The tax rates that will apply to any line item that does not have `tax_rates` set + @jsondata:Name {value: "default_tax_rates"} + InvoicesBodyDefaulttaxratesItemsString[] defaultTaxRates?; + # ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source + @jsondata:Name {value: "default_source"} + string defaultSource?; + # The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "shipping_cost"} + ShippingCost shippingCost?; + # A list of up to 4 custom fields to be displayed on the invoice + @jsondata:Name {value: "custom_fields"} + record {string name; string value;}[]|"" customFields?; + # ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + # The date on which payment for this invoice is due. Valid only for invoices where `collection_method=send_invoice` + @jsondata:Name {value: "due_date"} + int dueDate?; + # How to handle pending invoice items on invoice creation. Defaults to `exclude` if the parameter is omitted + @jsondata:Name {value: "pending_invoice_items_behavior"} + "exclude"|"include" pendingInvoiceItemsBehavior?; + RenderingParam rendering?; + # The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt + @jsondata:Name {value: "effective_at"} + int effectiveAt?; + # Specifies which fields in the response should be expanded + InvoicesBodyExpandItemsString[] expand?; + # The account tax IDs associated with the invoice. Only editable when the invoice is a draft + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParam automaticTax?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees) + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; + # The ID of the customer who will be billed + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# A SetupAttempt describes one attempted confirmation of a SetupIntent, +# whether that confirmation is successful or unsuccessful. You can use +# SetupAttempts to inspect details of a specific attempt at setting up a +# payment method using a SetupIntent +public type SetupAttempt record { + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # ID of the SetupIntent that this attempt belongs to + @jsondata:Name {value: "setup_intent"} + string|SetupIntent setupIntent; + # Indicates the directions of money movement for which this payment method is intended to be used. + # + # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes + @jsondata:Name {value: "flow_directions"} + ("inbound"|"outbound")[]? flowDirections?; + # The value of [on_behalf_of](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-on_behalf_of) on the SetupIntent at the time of this confirmation + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The value of [usage](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-usage) on the SetupIntent at the time of this confirmation, one of `off_session` or `on_session` + @constraint:String {maxLength: 5000} + string usage; + @jsondata:Name {value: "payment_method_details"} + SetupAttemptPaymentMethodDetails paymentMethodDetails; + # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + # + # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer + @jsondata:Name {value: "attach_to_self"} + boolean attachToSelf?; + # The value of [application](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-application) on the SetupIntent at the time of this confirmation + string|Application? application?; + # The error encountered during this attempt to confirm the SetupIntent, if any + @jsondata:Name {value: "setup_error"} + ApiErrors? setupError?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # ID of the payment method used with this SetupAttempt + @jsondata:Name {value: "payment_method"} + string|PaymentMethod paymentMethod; + # The value of [customer](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-customer) on the SetupIntent at the time of this confirmation + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "setup_attempt" 'object; + # Status of this SetupAttempt, one of `requires_confirmation`, `requires_action`, `processing`, `succeeded`, `failed`, or `abandoned` + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type PaymentLinksResourceCustomText record { + # Custom text that should be displayed after the payment confirmation button + @jsondata:Name {value: "after_submit"} + PaymentLinksResourceCustomTextPosition? afterSubmit?; + # Custom text that should be displayed alongside the payment confirmation button + PaymentLinksResourceCustomTextPosition? submit?; + # Custom text that should be displayed in place of the default terms of service agreement text + @jsondata:Name {value: "terms_of_service_acceptance"} + PaymentLinksResourceCustomTextPosition? termsOfServiceAcceptance?; + # Custom text that should be displayed alongside shipping address collection + @jsondata:Name {value: "shipping_address"} + PaymentLinksResourceCustomTextPosition? shippingAddress?; +}; + +public type DeclineChargeOnSpecs record { + @jsondata:Name {value: "avs_failure"} + boolean avsFailure?; + @jsondata:Name {value: "cvc_failure"} + boolean cvcFailure?; +}; + +public type SetupIntentsintentBodyPaymentmethodtypesItemsString string; + +# Represents the Queries record for the operation: GetApplicationFeesFeeRefundsId +public type GetApplicationFeesFeeRefundsIdQueries record { + # Specifies which fields in the response should be expanded + GetApplicationFeesFeeRefundsIdQueriesExpandItemsString[] expand?; +}; + +public type InvoiceAccountTaxIds AccountTaxIdsAnyOf1|TaxId|DeletedTaxId; + +@constraint:String {maxLength: 5000} +public type InvoicesCreatePreviewBodyExpandItemsString string; + +# +public type PaymentLinksResourceAutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # If `true`, tax will be calculated automatically using the customer's location + boolean enabled; +}; + +# Issue a credit note to adjust an invoice's amount after the invoice is finalized. +# +# Related guide: [Credit notes](https://stripe.com/docs/billing/invoices/credit-notes) +public type CreditNote record { + # Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory` + "duplicate"|"fraudulent"|"order_change"|"product_unsatisfactory"? reason?; + # The time that the credit note was voided + @jsondata:Name {value: "voided_at"} + int? voidedAt?; + # 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 + record {|string...;|}? metadata?; + # Customer balance transaction related to this credit note + @jsondata:Name {value: "customer_balance_transaction"} + string|CustomerBalanceTransaction? customerBalanceTransaction?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The integer amount in cents (or local equivalent) representing the total amount of discount that was credited + @jsondata:Name {value: "discount_amount"} + int discountAmount; + # Customer-facing text that appears on the credit note PDF + string? memo?; + # This is the sum of all the shipping amounts + @jsondata:Name {value: "amount_shipping"} + int amountShipping; + # Type of this credit note, one of `pre_payment` or `post_payment`. A `pre_payment` credit note means it was issued when the invoice was open. A `post_payment` credit note means it was issued when the invoice was paid + "post_payment"|"pre_payment" 'type; + # Amount that was credited outside of Stripe + @jsondata:Name {value: "out_of_band_amount"} + int? outOfBandAmount?; + # A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice + @constraint:String {maxLength: 5000} + string number; + # The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount + int total; + # The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts + @jsondata:Name {value: "subtotal_excluding_tax"} + int? subtotalExcludingTax?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + CreditNoteLinesList1 lines; + # The aggregate amounts calculated per discount for all line items + @jsondata:Name {value: "discount_amounts"} + DiscountsResourceDiscountAmount[] discountAmounts; + # The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax + int amount; + # The details of the cost of shipping, including the ShippingRate applied to the invoice + @jsondata:Name {value: "shipping_cost"} + InvoicesResourceShippingCost? shippingCost?; + # The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts + @jsondata:Name {value: "total_excluding_tax"} + int? totalExcludingTax?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The aggregate amounts calculated per tax rate for all line items + @jsondata:Name {value: "tax_amounts"} + CreditNoteTaxAmount[] taxAmounts; + # The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF + @jsondata:Name {value: "effective_at"} + int? effectiveAt?; + # The link to download the PDF of the credit note + @constraint:String {maxLength: 5000} + string pdf; + # The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts + int subtotal; + # ID of the invoice + string|Invoice invoice; + # ID of the customer + string|Customer|DeletedCustomer customer; + # String representing the object's type. Objects of the same type share the same value + "credit_note" 'object; + # Refund related to this credit note + string|Refund? refund?; + # Status of this credit note, one of `issued` or `void`. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding) + "issued"|"void" status; +}; + +# A Location represents a grouping of readers. +# +# Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations) +public type TerminalLocation record { + # 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 + record {|string...;|} metadata; + Address address; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The display name of the location + @jsondata:Name {value: "display_name"} + string displayName; + # The ID of a configuration that will be used to customize all readers in this location + @jsondata:Name {value: "configuration_overrides"} + string configurationOverrides?; + # String representing the object's type. Objects of the same type share the same value + "terminal.location" 'object; +}; + +# SWIFT Records contain U.S. bank account details per the SWIFT format +public type FundingInstructionsBankTransferSwiftRecord record { + # The account number + @jsondata:Name {value: "account_number"} + string accountNumber; + # The SWIFT code + @jsondata:Name {value: "swift_code"} + string swiftCode; + # The bank name + @jsondata:Name {value: "bank_name"} + string bankName; +}; + +# +public type PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode record { + # The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR code, and supports QR code refreshing on expiration + @jsondata:Name {value: "hosted_instructions_url"} + string hostedInstructionsUrl; + @jsondata:Name {value: "qr_code"} + PaymentIntentNextActionCashappQrCode qrCode; + # The url for mobile redirect based auth + @jsondata:Name {value: "mobile_auth_url"} + string mobileAuthUrl; +}; + +public type CustomerFundingInstructionsBody record {| + # Specifies which fields in the response should be expanded + CustomerFundingInstructionsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "bank_transfer"} + BankTransferParams bankTransfer; + # The `funding_type` to get the instructions for + @jsondata:Name {value: "funding_type"} + "bank_transfer" fundingType; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; +|}; + +@constraint:String {maxLength: 5000} +public type SubscriptionSchedulesBodyExpandItemsString string; + +# Transactions represent changes to a [FinancialAccount's](https://stripe.com/docs/api#financial_accounts) balance +public type TreasuryTransaction record { + # The FinancialAccount associated with this object + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) transferred + int amount; + # Details of the flow that created the Transaction + @jsondata:Name {value: "flow_details"} + TreasuryTransactionsResourceFlowDetails? flowDetails?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description; + TreasuryTransactionsResourceTransactionEntryList1? entries?; + # Type of the flow that created the Transaction + @jsondata:Name {value: "flow_type"} + "credit_reversal"|"debit_reversal"|"inbound_transfer"|"issuing_authorization"|"other"|"outbound_payment"|"outbound_transfer"|"received_credit"|"received_debit" flowType; + @jsondata:Name {value: "balance_impact"} + TreasuryTransactionsResourceBalanceImpact balanceImpact; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + TreasuryTransactionsResourceAbstractTransactionResourceStatusTransitions statusTransitions; + # ID of the flow that created the Transaction + string? flow?; + # String representing the object's type. Objects of the same type share the same value + "treasury.transaction" 'object; + # Status of the Transaction + "open"|"posted"|"void" status; +}; + +# +public type PaymentMethodWechatPay record { +}; + +@constraint:String {maxLength: 5000} +public type DefaultTaxRatesAnyOf1 string; + +public type Created4RangeQuerySpecs42 int; + +# +public type PaymentMethodDetailsCardPresentReceipt record { + # The type of account being debited or credited + @jsondata:Name {value: "account_type"} + "checking"|"credit"|"prepaid"|"unknown" accountType?; + # Mnenomic of the Application Identifier + @jsondata:Name {value: "application_preferred_name"} + string? applicationPreferredName?; + # Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature` + @jsondata:Name {value: "cardholder_verification_method"} + string? cardholderVerificationMethod?; + # Identifier for this transaction + @jsondata:Name {value: "authorization_code"} + string? authorizationCode?; + # The outcome of a series of EMV functions performed by the card reader + @jsondata:Name {value: "terminal_verification_results"} + string? terminalVerificationResults?; + # EMV tag 9F26, cryptogram generated by the integrated circuit chip + @jsondata:Name {value: "application_cryptogram"} + string? applicationCryptogram?; + # An indication of various EMV functions performed during the transaction + @jsondata:Name {value: "transaction_status_information"} + string? transactionStatusInformation?; + # EMV tag 8A. A code returned by the card issuer + @jsondata:Name {value: "authorization_response_code"} + string? authorizationResponseCode?; + # EMV tag 84. Similar to the application identifier stored on the integrated circuit chip + @jsondata:Name {value: "dedicated_file_name"} + string? dedicatedFileName?; +}; + +public type OrdersorderBody record {| + # Specifies which fields in the response should be expanded + OrdersorderBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set + record {string|"" public_name;}|"" beneficiary?; +|}; + +# +public type ConnectEmbeddedPayoutsFeatures record { + # Whether to allow creation of instant payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise + @jsondata:Name {value: "instant_payouts"} + boolean instantPayouts; + # Whether to allow payout schedule to be changed. Default `true` when Stripe owns Loss Liability, default `false` otherwise + @jsondata:Name {value: "edit_payout_schedule"} + boolean editPayoutSchedule; + # Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for custom accounts (or accounts where the platform is compliance owner). Otherwise, bank account collection is determined by compliance requirements + @jsondata:Name {value: "external_account_collection"} + boolean externalAccountCollection; + # Whether to allow creation of standard payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise + @jsondata:Name {value: "standard_payouts"} + boolean standardPayouts; +}; + +public type TransactionRefreshParams record { + @constraint:String {maxLength: 5000} + string after; +}; + +@constraint:String {maxLength: 5000} +public type GetForwardingRequestsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetTestHelpersTestClocks +public type GetTestHelpersTestClocksQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTestHelpersTestClocksQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type CreditNotesBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetFinancialConnectionsAccounts +public type GetFinancialConnectionsAccountsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetFinancialConnectionsAccountsQueriesExpandItemsString[] expand?; + # If present, only return accounts that belong to the specified account holder. `account_holder[customer]` and `account_holder[account]` are mutually exclusive + @http:Query {name: "account_holder"} + AccountholderParams accountHolder?; + # If present, only return accounts that were collected as part of the given session + @constraint:String {maxLength: 5000} + string session?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# The account or customer the tax ID belongs to. Defaults to `owner[type]=self` +public type OwnerParams1 record { + "account"|"application"|"customer"|"self" 'type; + string account?; + @constraint:String {maxLength: 5000} + string customer?; +}; + +# +public type GelatoIdNumberReportError record { + # A human-readable message giving the reason for the failure. These messages can be shown to your users + string? reason?; + # A short machine-readable string giving the reason for the verification failure + "id_number_insufficient_document_data"|"id_number_mismatch"|"id_number_unverified_other"? code?; +}; + +# Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required +public type OneTimePriceDataWithProductData1 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "product_data"} + ProductData productData?; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# +public type ConnectEmbeddedPaymentsFeatures record { + # Whether to allow capturing and cancelling payment intents. This is `true` by default + @jsondata:Name {value: "capture_payments"} + boolean capturePayments; + # Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default + @jsondata:Name {value: "dispute_management"} + boolean disputeManagement; + # Whether to allow sending refunds. This is `true` by default + @jsondata:Name {value: "refund_management"} + boolean refundManagement; + # Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default + @jsondata:Name {value: "destination_on_behalf_of_charge_management"} + boolean destinationOnBehalfOfChargeManagement; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceMulticapture record { + # Indicates whether or not multiple captures are supported + "available"|"unavailable" status; +}; + +@constraint:String {maxLength: 5000} +public type PayoutCancelBodyExpandItemsString string; + +public type PaymentMethodDetailsInteracPresentPreferredlocalesItemsString string; + +@constraint:String {maxLength: 5000} +public type RadarValueListItemsBodyExpandItemsString string; + +# +public type PaymentIntentNextActionWechatPayRedirectToIosApp record { + # An universal link that redirect to WeChat Pay app + @jsondata:Name {value: "native_url"} + string nativeUrl; +}; + +public type Created45RangeQuerySpecs542 int; + +# +public type CouponCurrencyOption record { + # Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer + @jsondata:Name {value: "amount_off"} + int amountOff; +}; + +public type MandateAcceptanceParams record { + int date?; + MandateOfflineAcceptanceParams offline?; + string ip?; + MandateOnlineAcceptanceParams online?; + "offline"|"online" 'type?; + @jsondata:Name {value: "user_agent"} + string userAgent?; + "accepted"|"pending"|"refused"|"revoked" status; +}; + +@constraint:String {maxLength: 5000} +public type AccountRejectBodyExpandItemsString string; + +public type AccounttaxidsItemsString string; + +public type NetworksOptionsParam record { + ("ach"|"us_domestic_wire")[] requested?; +}; + +public type AuthenticationExemptionSpecs record { + "low_value_transaction"|"transaction_risk_analysis"|"unknown" 'type; + @jsondata:Name {value: "claimed_by"} + "acquirer"|"issuer" claimedBy; +}; + +# Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts +public type CompanySpecs record { + LegalEntityAndKycAddressSpecs address?; + @jsondata:Name {value: "name_kanji"} + string nameKanji?; + @jsondata:Name {value: "ownership_declaration"} + CompanyOwnershipDeclaration ownershipDeclaration?; + @jsondata:Name {value: "registration_number"} + string registrationNumber?; + @jsondata:Name {value: "executives_provided"} + boolean executivesProvided?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs addressKana?; + @jsondata:Name {value: "export_purpose_code"} + string exportPurposeCode?; + @jsondata:Name {value: "directors_provided"} + boolean directorsProvided?; + ""|"free_zone_establishment"|"free_zone_llc"|"government_instrumentality"|"governmental_unit"|"incorporated_non_profit"|"incorporated_partnership"|"limited_liability_partnership"|"llc"|"multi_member_llc"|"private_company"|"private_corporation"|"private_partnership"|"public_company"|"public_corporation"|"public_partnership"|"registered_charity"|"single_member_llc"|"sole_establishment"|"sole_proprietorship"|"tax_exempt_government_instrumentality"|"unincorporated_association"|"unincorporated_non_profit"|"unincorporated_partnership" structure?; + @jsondata:Name {value: "tax_id"} + string taxId?; + @jsondata:Name {value: "tax_id_registrar"} + string taxIdRegistrar?; + @constraint:String {maxLength: 5000} + string phone?; + @jsondata:Name {value: "export_license_id"} + string exportLicenseId?; + @constraint:String {maxLength: 100} + string name?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs addressKanji?; + @jsondata:Name {value: "vat_id"} + string vatId?; + @jsondata:Name {value: "name_kana"} + string nameKana?; + VerificationSpecs verification?; + @jsondata:Name {value: "owners_provided"} + boolean ownersProvided?; +}; + +public type OnBehalfOf1 OnBehalfOf1AnyOf1|OnBehalfOf1OnBehalfOf1AnyOf12; + +public type ExternalAccountRequirementsPendingverificationItemsString string; + +# +public type SetupAttemptPaymentMethodDetailsUsBankAccount record { +}; + +# +public type PaymentMethodDetailsCustomerBalance record { +}; + +public type IdVerifyBody1 record {| + # Specifies which fields in the response should be expanded + IdVerifyBody1ExpandItemsString[] expand?; + # Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account + int[] amounts?; +|}; + +# +public type DeletedRadarValueListItem record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "radar.value_list_item" 'object; +}; + +# Represents the Queries record for the operation: GetFilesFile +public type GetFilesFileQueries record { + # Specifies which fields in the response should be expanded + GetFilesFileQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodOptionsBoleto record { + # The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time + @jsondata:Name {value: "expires_after_days"} + int expiresAfterDays; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +# +public type CheckoutCashappPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type CardholderscardholderBody record {| + # The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`. + # This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder + @jsondata:Name {value: "preferred_locales"} + ("de"|"en"|"es"|"fr"|"it")[] preferredLocales?; + # Specifies which fields in the response should be expanded + CardholderscardholderBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + IndividualParam individual?; + @jsondata:Name {value: "spending_controls"} + AuthorizationControlsParamV2 spendingControls?; + CompanyParam company?; + # The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure) for more details + @jsondata:Name {value: "phone_number"} + string phoneNumber?; + # The cardholder's email address + string email?; + BillingSpecs billing?; + # Specifies whether to permit authorizations on this cardholder's cards + "active"|"inactive" status?; +|}; + +@constraint:String {maxLength: 5000} +public type CouponAppliesToProductsItemsString string; + +# Products describe the specific goods or services you offer to your customers. +# For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product. +# They can be used in conjunction with [Prices](https://stripe.com/docs/api#prices) to configure pricing in Payment Links, Checkout, and Subscriptions. +# +# Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), +# [share a Payment Link](https://stripe.com/docs/payment-links), +# [accept payments with Checkout](https://stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront), +# and more about [Products and Prices](https://stripe.com/docs/products-prices/overview) +public type Product record { + # A list of up to 8 URLs of images for this product, meant to be displayable to the customer + ProductImagesItemsString[] images; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product + @jsondata:Name {value: "default_price"} + string|Price? defaultPrice?; + # Whether the product is currently available for purchase + boolean active; + # The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes + string? description?; + # A URL of a publicly-accessible webpage for this product + string? url?; + # The dimensions of this product for shipping purposes + @jsondata:Name {value: "package_dimensions"} + PackageDimensions? packageDimensions?; + # Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table) + @jsondata:Name {value: "marketing_features"} + ProductMarketingFeature[] marketingFeatures; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID + @jsondata:Name {value: "tax_code"} + string|TaxCode? taxCode?; + # Whether this product is shipped (i.e., physical goods) + boolean? shippable?; + # The product's name, meant to be displayable to the customer + @constraint:String {maxLength: 5000} + string name; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal + @jsondata:Name {value: "unit_label"} + string? unitLabel?; + # Time at which the object was last updated. Measured in seconds since the Unix epoch + int updated; + # String representing the object's type. Objects of the same type share the same value + "product" 'object; +}; + +public type Created10RangeQuerySpecs102 int; + +# Represents the Queries record for the operation: GetTaxCalculationsCalculationLineItems +public type GetTaxCalculationsCalculationLineItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTaxCalculationsCalculationLineItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type InvoicesPaymentSettings record { + # ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the invoice's default_payment_method or default_source, if set + @jsondata:Name {value: "default_mandate"} + string? defaultMandate?; + # The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice) + @jsondata:Name {value: "payment_method_types"} + ("ach_credit_transfer"|"ach_debit"|"acss_debit"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"konbini"|"link"|"p24"|"paynow"|"paypal"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"us_bank_account"|"wechat_pay")[]? paymentMethodTypes?; + # Payment-method-specific configuration to provide to the invoice’s PaymentIntent + @jsondata:Name {value: "payment_method_options"} + InvoicesPaymentMethodOptions? paymentMethodOptions?; +}; + +public type TreasuryOutboundTransfersBody record {| + # Statement descriptor to be shown on the receiving end of an OutboundTransfer. Maximum 10 characters for `ach` transfers or 140 characters for `us_domestic_wire` transfers. The default value is "transfer" + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + # The FinancialAccount to pull funds from + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) to be transferred + int amount; + # Specifies which fields in the response should be expanded + TreasuryOutboundTransfersBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "destination_payment_method_options"} + PaymentMethodOptions3 destinationPaymentMethodOptions?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # The PaymentMethod to use as the payment instrument for the OutboundTransfer + @jsondata:Name {value: "destination_payment_method"} + string destinationPaymentMethod?; +|}; + +# +public type TreasuryReceivedDebitsResourceReversalDetails record { + # Set if a ReceivedDebit can't be reversed + @jsondata:Name {value: "restricted_reason"} + "already_reversed"|"deadline_passed"|"network_restricted"|"other"|"source_flow_restricted"? restrictedReason?; + # Time before which a ReceivedDebit can be reversed + int? deadline?; +}; + +public type SetupIntentsBody record {| + # The ID of the payment method configuration to use with this SetupIntent + @jsondata:Name {value: "payment_method_configuration"} + string paymentMethodConfiguration?; + # 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` + record {|string...;|} metadata?; + # Indicates the directions of money movement for which this payment method is intended to be used. + # + # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes + @jsondata:Name {value: "flow_directions"} + ("inbound"|"outbound")[] flowDirections?; + # The Stripe account ID created for this SetupIntent + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + # The list of payment method types (for example, card) that this SetupIntent can use. If you don't provide this, it defaults to ["card"] + @jsondata:Name {value: "payment_method_types"} + SetupIntentsBodyPaymentmethodtypesItemsString[] paymentMethodTypes?; + # Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session` + "off_session"|"on_session" usage?; + # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. + # + # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer + @jsondata:Name {value: "attach_to_self"} + boolean attachToSelf?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 1000} + string description?; + @jsondata:Name {value: "single_use"} + SetupIntentSingleUseParams singleUse?; + # ID of the ConfirmationToken used to confirm this SetupIntent. + # + # If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence + @jsondata:Name {value: "confirmation_token"} + string confirmationToken?; + # Set to `true` to attempt to confirm this SetupIntent immediately. This parameter defaults to `false`. If a card is the attached payment method, you can provide a `return_url` in case further authentication is necessary + boolean confirm?; + # Specifies which fields in the response should be expanded + SetupIntentsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_payment_methods"} + AutomaticPaymentMethodsParam1 automaticPaymentMethods?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams1 paymentMethodData?; + # The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. To redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm) + @jsondata:Name {value: "return_url"} + string returnUrl?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam16 paymentMethodOptions?; + # This hash contains details about the mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm) + @jsondata:Name {value: "mandate_data"} + record {record {int accepted_at?; record {} offline?; record {string ip_address; string user_agent;} online?; "offline"|"online" 'type;} customer_acceptance;}|"" mandateData?; + # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions + @jsondata:Name {value: "use_stripe_sdk"} + boolean useStripeSdk?; + # ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent + @jsondata:Name {value: "payment_method"} + string paymentMethod?; + # ID of the Customer this SetupIntent belongs to, if one exists. + # + # If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# +public type InvoicesResourceShippingCost record { + # Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0 + @jsondata:Name {value: "amount_tax"} + int amountTax; + # The ID of the ShippingRate for this invoice + @jsondata:Name {value: "shipping_rate"} + string|ShippingRate? shippingRate?; + # Total shipping cost after taxes are applied + @jsondata:Name {value: "amount_total"} + int amountTotal; + # The taxes applied to the shipping rate + LineItemsTaxAmount[] taxes?; + # Total shipping cost before any taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; +}; + +public type PaymentLinksBody record {| + # Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount. + # + # Can only be set in `subscription` mode. Defaults to `always`. + # + # If you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials) + @jsondata:Name {value: "payment_method_collection"} + "always"|"if_required" paymentMethodCollection?; + # The custom message to be displayed to a customer when a payment link is no longer active + @jsondata:Name {value: "inactive_message"} + string inactiveMessage?; + # 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`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link + record {|string...;|} metadata?; + @jsondata:Name {value: "after_completion"} + AfterCompletionParams afterCompletion?; + # The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported + @jsondata:Name {value: "line_items"} + LineItemsCreateParams[] lineItems; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "transfer_data"} + TransferDataParams1 transferData?; + @jsondata:Name {value: "consent_collection"} + ConsentCollectionParams1 consentCollection?; + @jsondata:Name {value: "subscription_data"} + SubscriptionDataParams1 subscriptionData?; + # Enables user redeemable promotion codes + @jsondata:Name {value: "allow_promotion_codes"} + boolean allowPromotionCodes?; + # Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers) + @jsondata:Name {value: "customer_creation"} + "always"|"if_required" customerCreation?; + @jsondata:Name {value: "phone_number_collection"} + PhoneNumberCollectionParams1 phoneNumberCollection?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) and supported by each line item's price + string currency?; + # Configuration for collecting the customer's billing address. Defaults to `auto` + @jsondata:Name {value: "billing_address_collection"} + "auto"|"required" billingAddressCollection?; + @jsondata:Name {value: "invoice_creation"} + InvoiceCreationCreateParams invoiceCreation?; + # The account on behalf of which to charge + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "shipping_address_collection"} + ShippingAddressCollectionParams1 shippingAddressCollection?; + # Collect additional information from your customer using custom fields. Up to 3 fields are supported + @jsondata:Name {value: "custom_fields"} + CustomFieldParam1[] customFields?; + # The list of payment method types that customers can use. If no value is passed, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods) (20+ payment methods [supported](https://stripe.com/docs/payments/payment-methods/integration-options#payment-method-product-support)) + @jsondata:Name {value: "payment_method_types"} + ("affirm"|"afterpay_clearpay"|"alipay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip")[] paymentMethodTypes?; + @jsondata:Name {value: "payment_intent_data"} + PaymentIntentDataParams1 paymentIntentData?; + RestrictionsParams restrictions?; + # The shipping rate options to apply to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link + @jsondata:Name {value: "shipping_options"} + ShippingOptionParams1[] shippingOptions?; + # Describes the type of transaction being performed in order to customize relevant text on the page, such as the submit button. Changing this value will also affect the hostname in the [url](https://stripe.com/docs/api/payment_links/payment_links/object#url) property (example: `donate.stripe.com`) + @jsondata:Name {value: "submit_type"} + "auto"|"book"|"donate"|"pay" submitType?; + # Specifies which fields in the response should be expanded + PaymentLinksBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParams1 automaticTax?; + @jsondata:Name {value: "tax_id_collection"} + TaxIdCollectionParams taxIdCollection?; + @jsondata:Name {value: "custom_text"} + CustomTextParam customText?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Can only be applied when there are no line items with recurring prices + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; +|}; + +@constraint:String {maxLength: 5000} +public type GetChargesQueriesExpandItemsString string; + +public type IdRefundsBody record {| + # A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee + int amount?; + # Specifies which fields in the response should be expanded + IdRefundsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; +|}; + +public type PaymentMethodAttachBody record {| + # Specifies which fields in the response should be expanded + PaymentMethodAttachBodyExpandItemsString[] expand?; + # The ID of the customer to which to attach the PaymentMethod + @constraint:String {maxLength: 5000} + string customer; +|}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerCashBalanceTransactionsQueriesExpandItemsString string; + +public type CustomFieldLabelParam record { + @constraint:String {maxLength: 50} + string custom; + "custom" 'type; +}; + +public type AuthorizationControlsParamAllowedcategoriesItemsString "ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards"; + +# Represents the Queries record for the operation: GetTaxTransactionsTransactionLineItems +public type GetTaxTransactionsTransactionLineItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTaxTransactionsTransactionLineItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Represents the Queries record for the operation: GetAccountsAccountPersons +public type GetAccountsAccountPersonsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetAccountsAccountPersonsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Filters on the list of people returned based on the person's relationship to the account's company + AllPeopleRelationshipSpecs1 relationship?; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxTransactionsTransactionQueriesExpandItemsString string; + +public type PaymentMethodInteracPresentPreferredlocalesItemsString string; + +# +public type IssuingAuthorizationTreasury record { + # The array of [ReceivedDebits](https://stripe.com/docs/api/treasury/received_debits) associated with this authorization + @jsondata:Name {value: "received_debits"} + IssuingAuthorizationTreasuryReceiveddebitsItemsString[] receivedDebits; + # The array of [ReceivedCredits](https://stripe.com/docs/api/treasury/received_credits) associated with this authorization + @jsondata:Name {value: "received_credits"} + IssuingAuthorizationTreasuryReceivedcreditsItemsString[] receivedCredits; + # The Treasury [Transaction](https://stripe.com/docs/api/treasury/transactions) associated with this authorization + string? 'transaction?; +}; + +public type AccountCapabilityRequirementsCurrentlydueItemsString string; + +# +public type AccountMonthlyEstimatedRevenue record { + # A non-negative integer representing how much to charge in the [smallest currency unit](https://docs.stripe.com/currencies#zero-decimal) + int amount; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; +}; + +public type LineItemsUpdateParams record { + int quantity?; + @jsondata:Name {value: "adjustable_quantity"} + AdjustableQuantityParams adjustableQuantity?; + @constraint:String {maxLength: 5000} + string id; +}; + +# +public type PaymentLinksResourceAfterCompletion record { + PaymentLinksResourceCompletionBehaviorRedirect redirect?; + @jsondata:Name {value: "hosted_confirmation"} + PaymentLinksResourceCompletionBehaviorConfirmationPage hostedConfirmation?; + # The specified behavior after the purchase is complete + "hosted_confirmation"|"redirect" 'type; +}; + +public type PayoutReverseBody record {| + # Specifies which fields in the response should be expanded + PayoutReverseBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; +|}; + +# Represents the Queries record for the operation: GetReportingReportTypes +public type GetReportingReportTypesQueries record { + # Specifies which fields in the response should be expanded + GetReportingReportTypesQueriesExpandItemsString[] expand?; +}; + +# +public type ShippingRateFixedAmount record { + # A non-negative integer in cents representing how much to charge + int amount; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|ShippingRateCurrencyOption...;|} currencyOptions?; +}; + +# Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount` +public type FixedAmountUpdate record { + @jsondata:Name {value: "currency_options"} + record {|CurrencyOptionUpdate...;|} currencyOptions?; +}; + +public type OneTimePriceDataWithNegativeAmounts record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsAlipay record { +}; + +public type PaymentIntentsBodyPaymentmethodtypesItemsString string; + +# +public type CheckoutCustomerBalancePaymentMethodOptions record { + @jsondata:Name {value: "bank_transfer"} + CheckoutCustomerBalanceBankTransferPaymentMethodOptions bankTransfer?; + # The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer` + @jsondata:Name {value: "funding_type"} + "bank_transfer"? fundingType?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode +public type PaymentIntentDataUpdateParams record { + @jsondata:Name {value: "statement_descriptor"} + string|"" statementDescriptor?; + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "transfer_group"} + string|"" transferGroup?; + string|"" description?; + @jsondata:Name {value: "statement_descriptor_suffix"} + string|"" statementDescriptorSuffix?; +}; + +# +public type PaymentMethodDetailsCardWalletMasterpass record { + # Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? name?; + # Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "billing_address"} + Address? billingAddress?; + # Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "shipping_address"} + Address? shippingAddress?; + # Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated + string? email?; +}; + +@constraint:String {maxLength: 5000} +public type GetRefundsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type PaymentMethodCardPresentNetworksAvailableItemsString string; + +# ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount +public type TreasuryReceivedDebit record { + # The FinancialAccount that funds were pulled from + @jsondata:Name {value: "financial_account"} + string? financialAccount?; + # Amount (in cents) transferred + int amount; + # Reason for the failure. A ReceivedDebit might fail because the FinancialAccount doesn't have sufficient funds, is closed, or is frozen + @jsondata:Name {value: "failure_code"} + "account_closed"|"account_frozen"|"insufficient_funds"|"other"? failureCode?; + @jsondata:Name {value: "initiating_payment_method_details"} + TreasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails initiatingPaymentMethodDetails?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "linked_flows"} + TreasuryReceivedDebitsResourceLinkedFlows linkedFlows; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description; + # The network used for the ReceivedDebit + "ach"|"card"|"stripe" network; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Details describing when a ReceivedDebit might be reversed + @jsondata:Name {value: "reversal_details"} + TreasuryReceivedDebitsResourceReversalDetails? reversalDetails?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The Transaction associated with this object + string|TreasuryTransaction? 'transaction?; + # String representing the object's type. Objects of the same type share the same value + "treasury.received_debit" 'object; + # Status of the ReceivedDebit. ReceivedDebits are created with a status of either `succeeded` (approved) or `failed` (declined). The failure reason can be found under the `failure_code` + "failed"|"succeeded" status; +}; + +public type OneTimePriceDataWithProductData record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "product_data"} + ProductData productData?; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +public type SourceTypeCard record { + @jsondata:Name {value: "address_zip_check"} + string? addressZipCheck?; + string? country?; + string? last4?; + string? funding?; + @jsondata:Name {value: "exp_month"} + int? expMonth?; + @jsondata:Name {value: "exp_year"} + int? expYear?; + @jsondata:Name {value: "tokenization_method"} + string? tokenizationMethod?; + @jsondata:Name {value: "cvc_check"} + string? cvcCheck?; + string fingerprint?; + string? name?; + @jsondata:Name {value: "address_line1_check"} + string? addressLine1Check?; + @jsondata:Name {value: "dynamic_last4"} + string? dynamicLast4?; + @jsondata:Name {value: "three_d_secure"} + string threeDSecure?; + string? brand?; +}; + +public type RefundsrefundBody record {| + # Specifies which fields in the response should be expanded + RefundsrefundBodyExpandItemsString[] expand?; + record {|string...;|}|"" metadata?; +|}; + +# +public type CheckoutBoletoPaymentMethodOptions record { + # The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time + @jsondata:Name {value: "expires_after_days"} + int expiresAfterDays; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +# +public type BillingMeterResourceAggregationSettings record { + # Specifies how events are aggregated + "count"|"sum" formula; +}; + +public type InlineResponse2001 Card|BankAccount|Source; + +# +public type PaymentMethodConfigResourcePaymentMethodProperties record { + # Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active + boolean available; + @jsondata:Name {value: "display_preference"} + PaymentMethodConfigResourceDisplayPreference displayPreference; +}; + +public type InlineResponse2003 TerminalConfiguration|DeletedTerminalConfiguration; + +public type InlineResponse2002 PaymentSource|DeletedPaymentSource; + +public type InlineResponse2005 TerminalReader|DeletedTerminalReader; + +public type InlineResponse2004 TerminalLocation|DeletedTerminalLocation; + +# If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method +public type Param21 record { + "alior_bank"|"bank_millennium"|"bank_nowy_bfg_sa"|"bank_pekao_sa"|"banki_spbdzielcze"|"blik"|"bnp_paribas"|"boz"|"citi_handlowy"|"credit_agricole"|"envelobank"|"etransfer_pocztowy24"|"getin_bank"|"ideabank"|"ing"|"inteligo"|"mbank_mtransfer"|"nest_przelew"|"noble_pay"|"pbac_z_ipko"|"plus_bank"|"santander_przelew24"|"tmobile_usbugi_bankowe"|"toyota_bank"|"velobank"|"volkswagen_bank" bank?; +}; + +# +public type IssuingAuthorizationFleetData record { + # The type of purchase + @jsondata:Name {value: "purchase_type"} + "fuel_and_non_fuel_purchase"|"fuel_purchase"|"non_fuel_purchase"? purchaseType?; + # Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry + @jsondata:Name {value: "cardholder_prompt_data"} + IssuingAuthorizationFleetCardholderPromptData? cardholderPromptData?; + # The type of fuel service + @jsondata:Name {value: "service_type"} + "full_service"|"non_fuel_transaction"|"self_service"? serviceType?; + # More information about the total amount. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed. This information is not guaranteed to be accurate as some merchants may provide unreliable data + @jsondata:Name {value: "reported_breakdown"} + IssuingAuthorizationFleetReportedBreakdown? reportedBreakdown?; +}; + +# If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account +public type Param22 record { + @constraint:String {maxLength: 5000} + string iban; +}; + +# If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method +public type Param23 record { + "AT"|"BE"|"DE"|"ES"|"IT"|"NL" country; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationFinalizeAmountBodyExpandItemsString string; + +# +public type UsageEventsResourceUsageRecordSummaryList record { + UsageRecordSummary[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type RefundList record { + # Details about each object + Refund[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method +public type Param20 record { + DateOfBirth dob?; +}; + +# +public type BankConnectionsResourceBalanceApiResourceCreditBalance record { + # The credit that has been used by the account holder. + # + # Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + # + # Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder + record {|int...;|}? used?; +}; + +# +public type CheckoutLinkPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +public type Created12RangeQuerySpecs122 int; + +# +public type PortalSubscriptionCancel record { + # Whether to cancel subscriptions immediately or at the end of the billing period + "at_period_end"|"immediately" mode; + @jsondata:Name {value: "cancellation_reason"} + PortalSubscriptionCancellationReason cancellationReason; + # Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior; + # Whether the feature is enabled + boolean enabled; +}; + +# +public type PaymentMethodDetailsCardWalletLink record { +}; + +public type Created7RangeQuerySpecs72 int; + +# Hash containing carrier text, for use with physical bundles that support carrier text +public type CarrierTextParam record { + @jsondata:Name {value: "footer_body"} + string|"" footerBody?; + @jsondata:Name {value: "header_title"} + string|"" headerTitle?; + @jsondata:Name {value: "header_body"} + string|"" headerBody?; + @jsondata:Name {value: "footer_title"} + string|"" footerTitle?; +}; + +# +public type SetupAttemptPaymentMethodDetailsCardChecks record { + # If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "cvc_check"} + string? cvcCheck?; + # If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_line1_check"} + string? addressLine1Check?; + # If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_postal_code_check"} + string? addressPostalCodeCheck?; +}; + +public type Param10 record { + DateOfBirth dob?; +}; + +public type Param11 record { + "alior_bank"|"bank_millennium"|"bank_nowy_bfg_sa"|"bank_pekao_sa"|"banki_spbdzielcze"|"blik"|"bnp_paribas"|"boz"|"citi_handlowy"|"credit_agricole"|"envelobank"|"etransfer_pocztowy24"|"getin_bank"|"ideabank"|"ing"|"inteligo"|"mbank_mtransfer"|"nest_przelew"|"noble_pay"|"pbac_z_ipko"|"plus_bank"|"santander_przelew24"|"tmobile_usbugi_bankowe"|"toyota_bank"|"velobank"|"volkswagen_bank" bank?; +}; + +public type Param12 record { + @constraint:String {maxLength: 5000} + string iban; +}; + +public type Param13 record { + "AT"|"BE"|"DE"|"ES"|"IT"|"NL" country; +}; + +# +public type TaxProductResourceLineItemTaxRateDetails record { + # The tax type, such as `vat` or `sales_tax` + @jsondata:Name {value: "tax_type"} + "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat" taxType; + # A localized display name for tax type, intended to be human-readable. For example, "Local Sales and Use Tax", "Value-added tax (VAT)", or "Umsatzsteuer (USt.)" + @jsondata:Name {value: "display_name"} + string displayName; + # The tax rate percentage as a string. For example, 8.5% is represented as "8.5" + @jsondata:Name {value: "percentage_decimal"} + string percentageDecimal; +}; + +# +public type DiscountsResourceDiscountAmount record { + # The amount, in cents (or local equivalent), of the discount + int amount; + # The discount that was applied to get this discount amount + string|Discount|DeletedDiscount discount; +}; + +@constraint:String {maxLength: 5000} +public type IdReturnBodyExpandItemsString string; + +# +public type PaymentMethodDetailsCardChecks record { + # If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "cvc_check"} + string? cvcCheck?; + # If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_line1_check"} + string? addressLine1Check?; + # If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked` + @jsondata:Name {value: "address_postal_code_check"} + string? addressPostalCodeCheck?; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscount +public type GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscountQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscountQueriesExpandItemsString[] expand?; +}; + +# +public type AccountTreasurySettings record { + @jsondata:Name {value: "tos_acceptance"} + AccountTermsOfService tosAcceptance?; +}; + +# +public type CustomerPaymentMethodResourceList record { + PaymentMethod[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentLinksResourceSubscriptionData record { + @jsondata:Name {value: "invoice_settings"} + PaymentLinksResourceSubscriptionDataInvoiceSettings invoiceSettings; + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on [Subscriptions](https://stripe.com/docs/api/subscriptions) generated from this payment link + record {|string...;|} metadata; + # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + string? description?; + # Integer representing the number of trial period days before the customer is charged for the first time + @jsondata:Name {value: "trial_period_days"} + int? trialPeriodDays?; + # Settings related to subscription trials + @jsondata:Name {value: "trial_settings"} + SubscriptionsTrialsResourceTrialSettings? trialSettings?; +}; + +public type OneTimePriceData1 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +public type IssuingCardholderAuthorizationControlsBlockedmerchantcountriesItemsString string; + +# If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method +public type Param18 record { + "affin_bank"|"agrobank"|"alliance_bank"|"ambank"|"bank_islam"|"bank_muamalat"|"bank_of_china"|"bank_rakyat"|"bsn"|"cimb"|"deutsche_bank"|"hong_leong_bank"|"hsbc"|"kfh"|"maybank2e"|"maybank2u"|"ocbc"|"pb_enterprise"|"public_bank"|"rhb"|"standard_chartered"|"uob" bank; +}; + +# Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline +public type RecurringPriceData1 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + RecurringAdhoc recurring; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method +public type Param19 record { + "abn_amro"|"asn_bank"|"bunq"|"handelsbanken"|"ing"|"knab"|"moneyou"|"n26"|"nn"|"rabobank"|"regiobank"|"revolut"|"sns_bank"|"triodos_bank"|"van_lanschot"|"yoursafe" bank?; +}; + +# Parameters required for the redirect flow. Required if the source is authenticated by a redirect (`flow` is `redirect`) +public type RedirectParams record { + @jsondata:Name {value: "return_url"} + string returnUrl; +}; + +# If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account +public type Param14 record { + @jsondata:Name {value: "bsb_number"} + string bsbNumber; + @jsondata:Name {value: "account_number"} + string accountNumber; +}; + +# If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account +public type Param15 record { + @jsondata:Name {value: "account_number"} + string accountNumber?; + @jsondata:Name {value: "sort_code"} + string sortCode?; +}; + +# If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method +public type Param16 record { + @jsondata:Name {value: "tax_id"} + string taxId; +}; + +# If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method +public type Param17 record { + "arzte_und_apotheker_bank"|"austrian_anadi_bank_ag"|"bank_austria"|"bankhaus_carl_spangler"|"bankhaus_schelhammer_und_schattera_ag"|"bawag_psk_ag"|"bks_bank_ag"|"brull_kallmus_bank_ag"|"btv_vier_lander_bank"|"capital_bank_grawe_gruppe_ag"|"deutsche_bank_ag"|"dolomitenbank"|"easybank_ag"|"erste_bank_und_sparkassen"|"hypo_alpeadriabank_international_ag"|"hypo_bank_burgenland_aktiengesellschaft"|"hypo_noe_lb_fur_niederosterreich_u_wien"|"hypo_oberosterreich_salzburg_steiermark"|"hypo_tirol_bank_ag"|"hypo_vorarlberg_bank_ag"|"marchfelder_bank"|"oberbank_ag"|"raiffeisen_bankengruppe_osterreich"|"schoellerbank_ag"|"sparda_bank_wien"|"volksbank_gruppe"|"volkskreditbank_ag"|"vr_bank_braunau" bank?; +}; + +# Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required +public type RecurringPriceData2 record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + RecurringAdhoc recurring; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# +public type IssuingCardShippingCustoms record { + # A registration number used for customs in Europe. See [https://www.gov.uk/eori](https://www.gov.uk/eori) for the UK and [https://ec.europa.eu/taxation_customs/business/customs-procedures-import-and-export/customs-procedures/economic-operators-registration-and-identification-number-eori_en](https://ec.europa.eu/taxation_customs/business/customs-procedures-import-and-export/customs-procedures/economic-operators-registration-and-identification-number-eori_en) for the EU + @jsondata:Name {value: "eori_number"} + string? eoriNumber?; +}; + +public type HeaderParam record { + @constraint:String {maxLength: 5000} + string name; + @constraint:String {maxLength: 5000} + string value; +}; + +public type SubscriptionSchedulesscheduleBody record {| + # Specifies which fields in the response should be expanded + SubscriptionSchedulesscheduleBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription + @jsondata:Name {value: "end_behavior"} + "cancel"|"none"|"release"|"renew" endBehavior?; + @jsondata:Name {value: "default_settings"} + DefaultSettingsParams defaultSettings?; + # If the update changes the current phase, indicates whether the changes should be prorated. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + # List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. Note that past phases can be omitted + PhaseConfigurationParams2[] phases?; +|}; + +# Represents the Queries record for the operation: GetSigmaScheduledQueryRunsScheduledQueryRun +public type GetSigmaScheduledQueryRunsScheduledQueryRunQueries record { + # Specifies which fields in the response should be expanded + GetSigmaScheduledQueryRunsScheduledQueryRunQueriesExpandItemsString[] expand?; +}; + +# +public type TaxProductResourceTaxSettingsStatusDetailsResourceActive record { +}; + +# +public type CardIssuingAccountTermsOfService record { + # The Unix timestamp marking when the account representative accepted the service agreement + int? date?; + # The IP address from which the account representative accepted the service agreement + string? ip?; + # The user agent of the browser from which the account representative accepted the service agreement + @jsondata:Name {value: "user_agent"} + string userAgent?; +}; + +# Represents the Queries record for the operation: GetShippingRates +public type GetShippingRatesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetShippingRatesQueriesExpandItemsString[] expand?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created37 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return shipping rates that are active or inactive + boolean active?; + # Only return shipping rates for the given currency + string currency?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Represents the Queries record for the operation: GetIssuingTransactions +public type GetIssuingTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingTransactionsQueriesExpandItemsString[] expand?; + # Only return transactions that were created during the given date interval + Created22 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return transactions that belong to the given cardholder + @constraint:String {maxLength: 5000} + string cardholder?; + # Only return transactions that have the given type. One of `capture` or `refund` + "capture"|"refund" 'type?; + # Only return transactions that belong to the given card + @constraint:String {maxLength: 5000} + string card?; +}; + +# A set of key-value pairs you can attach to a charge giving information about its riskiness. If you believe a charge is fraudulent, include a `user_report` key with a value of `fraudulent`. If you believe a charge is safe, include a `user_report` key with a value of `safe`. Stripe will use the information you send to improve our fraud detection algorithms +public type FraudDetails record { + @jsondata:Name {value: "user_report"} + ""|"fraudulent"|"safe" userReport; +}; + +@constraint:String {maxLength: 5000} +public type BalanceTransactionstransactionBodyExpandItemsString string; + +# +public type EmailSent record { + # The timestamp when the email was sent + @jsondata:Name {value: "email_sent_at"} + int emailSentAt; + # The recipient's email address + @jsondata:Name {value: "email_sent_to"} + string emailSentTo; +}; + +# +public type ThreeDSecureDetailsCharge record { + # For authenticated transactions: how the customer was authenticated by + # the issuing bank + @jsondata:Name {value: "authentication_flow"} + "challenge"|"frictionless"? authenticationFlow?; + # Indicates the outcome of 3D Secure authentication + "attempt_acknowledged"|"authenticated"|"exempted"|"failed"|"not_supported"|"processing_error"? result?; + # The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID + # (dsTransId) for this payment + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # The Electronic Commerce Indicator (ECI). A protocol-level field + # indicating what degree of authentication was performed + @jsondata:Name {value: "electronic_commerce_indicator"} + "01"|"02"|"05"|"06"|"07"? electronicCommerceIndicator?; + # The exemption requested via 3DS and accepted by the issuer at authentication time + @jsondata:Name {value: "exemption_indicator"} + "low_risk"|"none"? exemptionIndicator?; + # Whether Stripe requested the value of `exemption_indicator` in the transaction. This will depend on + # the outcome of Stripe's internal risk assessment + @jsondata:Name {value: "exemption_indicator_applied"} + boolean exemptionIndicatorApplied?; + # The version of 3D Secure that was used + "1.0.2"|"2.1.0"|"2.2.0"? version?; + # Additional information about why 3D Secure succeeded or failed based + # on the `result` + @jsondata:Name {value: "result_reason"} + "abandoned"|"bypassed"|"canceled"|"card_not_enrolled"|"network_not_supported"|"protocol_error"|"rejected"? resultReason?; +}; + +@constraint:String {maxLength: 5000} +public type AccountSubscribeBodyExpandItemsString string; + +public type LineItem1 record { + int amount; + int quantity; + @constraint:String {maxLength: 5000} + string description; +}; + +# Payment-method-specific configuration for this PaymentIntent +public type PaymentMethodOptionsParam15 record { + record {"none" setup_future_usage?;}|"" paynow?; + record {string code?; ""|"none" setup_future_usage?;}|"" blik?; + @jsondata:Name {value: "interac_present"} + record {}|"" interacPresent?; + @jsondata:Name {value: "acss_debit"} + record {record {string|"" custom_mandate_url?; string interval_description?; "combined"|"interval"|"sporadic" payment_schedule?; "business"|"personal" transaction_type?;} mandate_options?; ""|"none"|"off_session"|"on_session" setup_future_usage?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" acssDebit?; + @jsondata:Name {value: "bacs_debit"} + record {""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" bacsDebit?; + record {int expires_after_days?; ""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" boleto?; + record {""|"manual" capture_method?; ""|"none"|"off_session" setup_future_usage?;}|"" link?; + @jsondata:Name {value: "amazon_pay"} + record {""|"manual" capture_method?; ""|"none"|"off_session" setup_future_usage?;}|"" amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + record {""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" auBecsDebit?; + record {int expires_after_days?; "none" setup_future_usage?;}|"" oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + record {""|"manual" capture_method?; string reference?; "none" setup_future_usage?;}|"" afterpayClearpay?; + record {string|"" reference?; "none" setup_future_usage?;}|"" swish?; + record {"none" setup_future_usage?;}|"" twint?; + @jsondata:Name {value: "us_bank_account"} + record {record {record {(filtersAccountsubcategoriesItemsString)[] account_subcategories?;} filters?; (financial_connectionsPermissionsItemsString)[] permissions?; ("balances"|"ownership"|"transactions")[] prefetch?; string return_url?;} financial_connections?; record {""|"paper" collection_method?;} mandate_options?; record {("ach"|"us_domestic_wire")[] requested?;} networks?; ""|"fastest"|"standard" preferred_settlement_speed?; ""|"none"|"off_session"|"on_session" setup_future_usage?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {record {record {string country;} eu_bank_transfer?; ("aba"|"iban"|"sepa"|"sort_code"|"spei"|"swift"|"zengin")[] requested_address_types?; "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer" 'type;} bank_transfer?; "bank_transfer" funding_type?; "none" setup_future_usage?;}|"" customerBalance?; + record {""|"manual" capture_method?; ""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" cashapp?; + @jsondata:Name {value: "wechat_pay"} + record {string app_id?; "android"|"ios"|"web" 'client; "none" setup_future_usage?;}|"" wechatPay?; + record {""|"manual" capture_method?; "cs-CZ"|"da-DK"|"de-AT"|"de-DE"|"de-LU"|"el-GR"|"en-GB"|"en-US"|"es-ES"|"fi-FI"|"fr-BE"|"fr-FR"|"fr-LU"|"hu-HU"|"it-IT"|"nl-BE"|"nl-NL"|"pl-PL"|"pt-PT"|"sk-SK"|"sv-SE" preferred_locale?; string reference?; string risk_correlation_id?; ""|"none"|"off_session" setup_future_usage?;}|"" paypal?; + record {int expires_after_seconds?; int expires_at?; "none" setup_future_usage?;}|"" pix?; + @jsondata:Name {value: "revolut_pay"} + record {""|"manual" capture_method?; ""|"none"|"off_session" setup_future_usage?;}|"" revolutPay?; + record {"none" setup_future_usage?;}|"" giropay?; + record {"none" setup_future_usage?;}|"" zip?; + record {""|"none"|"off_session" setup_future_usage?;}|"" alipay?; + record {""|"none"|"off_session" setup_future_usage?;}|"" ideal?; + record {"none" setup_future_usage?;}|"" eps?; + record {string|"" confirmation_number?; int|"" expires_after_days?; int|"" expires_at?; string|"" product_description?; "none" setup_future_usage?;}|"" konbini?; + @jsondata:Name {value: "card_present"} + record {boolean request_extended_authorization?; boolean request_incremental_authorization_support?; record {"domestic"|"international" requested_priority?;} routing?;}|"" cardPresent?; + record {""|"de"|"en"|"es"|"fr"|"it"|"nl"|"pl" preferred_language?; ""|"none"|"off_session" setup_future_usage?;}|"" sofort?; + record {"none" setup_future_usage?;}|"" fpx?; + record {"none" setup_future_usage?;}|"" promptpay?; + record {""|"manual" capture_method?; string preferred_locale?; "none" setup_future_usage?;}|"" affirm?; + record {""|"manual" capture_method?; "none" setup_future_usage?;}|"" mobilepay?; + record {"de"|"en"|"fr"|"nl" preferred_language?; ""|"none"|"off_session" setup_future_usage?;}|"" bancontact?; + record {"none" setup_future_usage?;}|"" grabpay?; + record {""|"manual" capture_method?; "cs-CZ"|"da-DK"|"de-AT"|"de-CH"|"de-DE"|"el-GR"|"en-AT"|"en-AU"|"en-BE"|"en-CA"|"en-CH"|"en-CZ"|"en-DE"|"en-DK"|"en-ES"|"en-FI"|"en-FR"|"en-GB"|"en-GR"|"en-IE"|"en-IT"|"en-NL"|"en-NO"|"en-NZ"|"en-PL"|"en-PT"|"en-RO"|"en-SE"|"en-US"|"es-ES"|"es-US"|"fi-FI"|"fr-BE"|"fr-CA"|"fr-CH"|"fr-FR"|"it-CH"|"it-IT"|"nb-NO"|"nl-BE"|"nl-NL"|"pl-PL"|"pt-PT"|"ro-RO"|"sv-FI"|"sv-SE" preferred_locale?; "none" setup_future_usage?;}|"" klarna?; + record {"none" setup_future_usage?; boolean tos_shown_and_accepted?;}|"" p24?; + @jsondata:Name {value: "sepa_debit"} + record {record {} mandate_options?; ""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" sepaDebit?; + record {""|"manual" capture_method?; string cvc_token?; record {boolean enabled?; record {int count; "month" interval; "fixed_count" 'type;}|"" plan?;} installments?; record {int amount; "fixed"|"maximum" amount_type; string description?; int end_date?; "day"|"month"|"sporadic"|"week"|"year" interval; int interval_count?; string reference; int start_date; ("india")[] supported_types?;} mandate_options?; "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa" network?; "if_available"|"never" request_extended_authorization?; "if_available"|"never" request_incremental_authorization?; "if_available"|"never" request_multicapture?; "if_available"|"never" request_overcapture?; "any"|"automatic"|"challenge" request_three_d_secure?; boolean require_cvc_recollection?; ""|"none"|"off_session"|"on_session" setup_future_usage?; string|"" statement_descriptor_suffix_kana?; string|"" statement_descriptor_suffix_kanji?; record {"A"|"C"|"I"|"N"|"R"|"U"|"Y" ares_trans_status?; string cryptogram; "01"|"02"|"05"|"06"|"07" electronic_commerce_indicator?; "low_risk"|"none" exemption_indicator?; record {record {"0"|"1"|"2"|"3"|"4"|"A" cb_avalgo; string cb_exemption?; int cb_score?;} cartes_bancaires?;} network_options?; string requestor_challenge_indicator?; string transaction_id; "1.0.2"|"2.1.0"|"2.2.0" version;} three_d_secure?;}|"" card?; + record {"none" setup_future_usage?;}|"" multibanco?; +}; + +# Payment method-specific configuration for this SetupIntent +public type PaymentMethodOptionsParam16 record { + @jsondata:Name {value: "acss_debit"} + SetupIntentPaymentMethodOptionsParam acssDebit?; + @jsondata:Name {value: "us_bank_account"} + SetupIntentPaymentMethodOptionsParam3 usBankAccount?; + record {} link?; + @jsondata:Name {value: "sepa_debit"} + SetupIntentPaymentMethodOptionsParam2 sepaDebit?; + @jsondata:Name {value: "amazon_pay"} + record {} amazonPay?; + @jsondata:Name {value: "card_present"} + record {} cardPresent?; + PaymentMethodOptionsParam16 paypal?; + SetupIntentParam card?; +}; + +public type PaymentMethodOptionsParam13 record { + "android"|"ios"|"web" 'client; + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; + @jsondata:Name {value: "app_id"} + string appId?; +}; + +# +public type PaymentIntentNextActionKonbiniFamilymart record { + # The confirmation number + @jsondata:Name {value: "confirmation_number"} + string confirmationNumber?; + # The payment code + @jsondata:Name {value: "payment_code"} + string paymentCode; +}; + +# Payment method-specific configuration for this PaymentIntent +public type PaymentMethodOptionsParam14 record { + record {"none" setup_future_usage?;}|"" paynow?; + record {string code?; ""|"none" setup_future_usage?;}|"" blik?; + @jsondata:Name {value: "interac_present"} + record {}|"" interacPresent?; + @jsondata:Name {value: "acss_debit"} + record {record {string|"" custom_mandate_url?; string interval_description?; "combined"|"interval"|"sporadic" payment_schedule?; "business"|"personal" transaction_type?;} mandate_options?; ""|"none"|"off_session"|"on_session" setup_future_usage?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" acssDebit?; + @jsondata:Name {value: "bacs_debit"} + record {""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" bacsDebit?; + record {int expires_after_days?; ""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" boleto?; + record {""|"manual" capture_method?; ""|"none"|"off_session" setup_future_usage?;}|"" link?; + @jsondata:Name {value: "amazon_pay"} + record {""|"manual" capture_method?; ""|"none"|"off_session" setup_future_usage?;}|"" amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + record {""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" auBecsDebit?; + record {int expires_after_days?; "none" setup_future_usage?;}|"" oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + record {""|"manual" capture_method?; string reference?; "none" setup_future_usage?;}|"" afterpayClearpay?; + record {string|"" reference?; "none" setup_future_usage?;}|"" swish?; + record {"none" setup_future_usage?;}|"" twint?; + @jsondata:Name {value: "us_bank_account"} + record {record {record {(filtersAccountsubcategoriesItemsString)[] account_subcategories?;} filters?; (financial_connectionsPermissionsItemsString)[] permissions?; ("balances"|"ownership"|"transactions")[] prefetch?; string return_url?;} financial_connections?; record {""|"paper" collection_method?;} mandate_options?; record {("ach"|"us_domestic_wire")[] requested?;} networks?; ""|"fastest"|"standard" preferred_settlement_speed?; ""|"none"|"off_session"|"on_session" setup_future_usage?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {record {record {string country;} eu_bank_transfer?; ("aba"|"iban"|"sepa"|"sort_code"|"spei"|"swift"|"zengin")[] requested_address_types?; "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer" 'type;} bank_transfer?; "bank_transfer" funding_type?; "none" setup_future_usage?;}|"" customerBalance?; + record {""|"manual" capture_method?; ""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" cashapp?; + @jsondata:Name {value: "wechat_pay"} + record {string app_id?; "android"|"ios"|"web" 'client; "none" setup_future_usage?;}|"" wechatPay?; + record {""|"manual" capture_method?; "cs-CZ"|"da-DK"|"de-AT"|"de-DE"|"de-LU"|"el-GR"|"en-GB"|"en-US"|"es-ES"|"fi-FI"|"fr-BE"|"fr-FR"|"fr-LU"|"hu-HU"|"it-IT"|"nl-BE"|"nl-NL"|"pl-PL"|"pt-PT"|"sk-SK"|"sv-SE" preferred_locale?; string reference?; string risk_correlation_id?; ""|"none"|"off_session" setup_future_usage?;}|"" paypal?; + record {int expires_after_seconds?; int expires_at?; "none" setup_future_usage?;}|"" pix?; + @jsondata:Name {value: "revolut_pay"} + record {""|"manual" capture_method?; ""|"none"|"off_session" setup_future_usage?;}|"" revolutPay?; + record {"none" setup_future_usage?;}|"" giropay?; + record {"none" setup_future_usage?;}|"" zip?; + record {""|"none"|"off_session" setup_future_usage?;}|"" alipay?; + record {""|"none"|"off_session" setup_future_usage?;}|"" ideal?; + record {"none" setup_future_usage?;}|"" eps?; + record {string|"" confirmation_number?; int|"" expires_after_days?; int|"" expires_at?; string|"" product_description?; "none" setup_future_usage?;}|"" konbini?; + @jsondata:Name {value: "card_present"} + record {boolean request_extended_authorization?; boolean request_incremental_authorization_support?; record {"domestic"|"international" requested_priority?;} routing?;}|"" cardPresent?; + record {""|"de"|"en"|"es"|"fr"|"it"|"nl"|"pl" preferred_language?; ""|"none"|"off_session" setup_future_usage?;}|"" sofort?; + record {"none" setup_future_usage?;}|"" fpx?; + record {"none" setup_future_usage?;}|"" promptpay?; + record {""|"manual" capture_method?; string preferred_locale?; "none" setup_future_usage?;}|"" affirm?; + record {""|"manual" capture_method?; "none" setup_future_usage?;}|"" mobilepay?; + record {"de"|"en"|"fr"|"nl" preferred_language?; ""|"none"|"off_session" setup_future_usage?;}|"" bancontact?; + record {"none" setup_future_usage?;}|"" grabpay?; + record {""|"manual" capture_method?; "cs-CZ"|"da-DK"|"de-AT"|"de-CH"|"de-DE"|"el-GR"|"en-AT"|"en-AU"|"en-BE"|"en-CA"|"en-CH"|"en-CZ"|"en-DE"|"en-DK"|"en-ES"|"en-FI"|"en-FR"|"en-GB"|"en-GR"|"en-IE"|"en-IT"|"en-NL"|"en-NO"|"en-NZ"|"en-PL"|"en-PT"|"en-RO"|"en-SE"|"en-US"|"es-ES"|"es-US"|"fi-FI"|"fr-BE"|"fr-CA"|"fr-CH"|"fr-FR"|"it-CH"|"it-IT"|"nb-NO"|"nl-BE"|"nl-NL"|"pl-PL"|"pt-PT"|"ro-RO"|"sv-FI"|"sv-SE" preferred_locale?; "none" setup_future_usage?;}|"" klarna?; + record {"none" setup_future_usage?; boolean tos_shown_and_accepted?;}|"" p24?; + @jsondata:Name {value: "sepa_debit"} + record {record {} mandate_options?; ""|"none"|"off_session"|"on_session" setup_future_usage?;}|"" sepaDebit?; + record {""|"manual" capture_method?; string cvc_token?; record {boolean enabled?; record {int count; "month" interval; "fixed_count" 'type;}|"" plan?;} installments?; record {int amount; "fixed"|"maximum" amount_type; string description?; int end_date?; "day"|"month"|"sporadic"|"week"|"year" interval; int interval_count?; string reference; int start_date; ("india")[] supported_types?;} mandate_options?; "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa" network?; "if_available"|"never" request_extended_authorization?; "if_available"|"never" request_incremental_authorization?; "if_available"|"never" request_multicapture?; "if_available"|"never" request_overcapture?; "any"|"automatic"|"challenge" request_three_d_secure?; boolean require_cvc_recollection?; ""|"none"|"off_session"|"on_session" setup_future_usage?; string|"" statement_descriptor_suffix_kana?; string|"" statement_descriptor_suffix_kanji?; record {"A"|"C"|"I"|"N"|"R"|"U"|"Y" ares_trans_status?; string cryptogram; "01"|"02"|"05"|"06"|"07" electronic_commerce_indicator?; "low_risk"|"none" exemption_indicator?; record {record {"0"|"1"|"2"|"3"|"4"|"A" cb_avalgo; string cb_exemption?; int cb_score?;} cartes_bancaires?;} network_options?; string requestor_challenge_indicator?; string transaction_id; "1.0.2"|"2.1.0"|"2.2.0" version;} three_d_secure?;}|"" card?; + record {"none" setup_future_usage?;}|"" multibanco?; +}; + +public type PaymentMethodOptionsParam11 record { + @constraint:String {maxLength: 5000} + string reference?; +}; + +public type PaymentMethodOptionsParam12 record { + @jsondata:Name {value: "financial_connections"} + LinkedAccountOptionsParam financialConnections?; + @jsondata:Name {value: "verification_method"} + "automatic"|"instant" verificationMethod?; + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +public type PaymentMethodOptionsParam10 record { + @jsondata:Name {value: "expires_after_seconds"} + int expiresAfterSeconds?; +}; + +public type PersonalizationDesignspersonalizationDesignBody record {| + # Specifies which fields in the response should be expanded + PersonalizationDesignspersonalizationDesignBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + PreferencesParam preferences?; + # Hash containing carrier text, for use with physical bundles that support carrier text + @jsondata:Name {value: "carrier_text"} + record {string|"" footer_body?; string|"" footer_title?; string|"" header_body?; string|"" header_title?;}|"" carrierText?; + # Friendly display name. Providing an empty string will set the field to null + string|"" name?; + # A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters + @jsondata:Name {value: "lookup_key"} + string|"" lookupKey?; + # The physical bundle object belonging to this personalization design + @jsondata:Name {value: "physical_bundle"} + string physicalBundle?; + # The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo` + @jsondata:Name {value: "card_logo"} + string|"" cardLogo?; + # If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design + @jsondata:Name {value: "transfer_lookup_key"} + boolean transferLookupKey?; +|}; + +public type IdReversalsBody record {| + # A positive integer in cents (or local equivalent) representing how much of this transfer to reverse. Can only reverse up to the unreversed amount remaining of the transfer. Partial transfer reversals are only allowed for transfers to Stripe Accounts. Defaults to the entire transfer amount + int amount?; + # Specifies which fields in the response should be expanded + IdReversalsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Boolean indicating whether the application fee should be refunded when reversing this transfer. If a full transfer reversal is given, the full application fee will be refunded. Otherwise, the application fee will be refunded with an amount proportional to the amount of the transfer reversed + @jsondata:Name {value: "refund_application_fee"} + boolean refundApplicationFee?; + # An arbitrary string which you can attach to a reversal object. This will be unset if you POST an empty value + @constraint:String {maxLength: 5000} + string description?; +|}; + +# +public type PaymentMethodDetailsCardInstallmentsPlan record { + # For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card + int? count?; + # For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card. + # One of `month` + "month"? interval?; + # Type of installment plan, one of `fixed_count` + "fixed_count" 'type; +}; + +public type OptionalFieldsAddress record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +@constraint:String {maxLength: 5000} +public type AccountRefreshBody1ExpandItemsString string; + +# +public type PaymentIntentPaymentMethodOptionsSepaDebit record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + @jsondata:Name {value: "mandate_options"} + PaymentIntentPaymentMethodOptionsMandateOptionsSepaDebit mandateOptions?; +}; + +# +public type PaymentMethodOptionsCustomerBalanceBankTransfer record { + @jsondata:Name {value: "eu_bank_transfer"} + PaymentMethodOptionsCustomerBalanceEuBankAccount euBankTransfer?; + # List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned. + # + # Permitted values include: `sort_code`, `zengin`, `iban`, or `spei` + @jsondata:Name {value: "requested_address_types"} + ("aba"|"iban"|"sepa"|"sort_code"|"spei"|"swift"|"zengin")[] requestedAddressTypes?; + # The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer` + "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer"? 'type?; +}; + +public type EuBankAccountParams record { + @constraint:String {maxLength: 5000} + string country; +}; + +public type Access record { + boolean requested; +}; + +@constraint:String {maxLength: 5000} +public type CardsidBody1ExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetBalanceHistoryIdQueriesExpandItemsString string; + +public type IdSucceedBody record {| + # Specifies which fields in the response should be expanded + IdSucceedBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 500} +public type FilesAnyOf1 string; + +# +public type PaymentIntentNextActionKonbiniLawson record { + # The confirmation number + @jsondata:Name {value: "confirmation_number"} + string confirmationNumber?; + # The payment code + @jsondata:Name {value: "payment_code"} + string paymentCode; +}; + +# Represents the Queries record for the operation: GetClimateSuppliers +public type GetClimateSuppliersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetClimateSuppliersQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryInboundTransfersQueriesExpandItemsString string; + +# +public type TaxProductRegistrationsResourceCountryOptionsUnitedStates record { + # Two-letter US state code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)) + @constraint:String {maxLength: 5000} + string state; + @jsondata:Name {value: "local_amusement_tax"} + TaxProductRegistrationsResourceCountryOptionsUsLocalAmusementTax localAmusementTax?; + @jsondata:Name {value: "local_lease_tax"} + TaxProductRegistrationsResourceCountryOptionsUsLocalLeaseTax localLeaseTax?; + # Type of registration in the US + "local_amusement_tax"|"local_lease_tax"|"state_communications_tax"|"state_sales_tax" 'type; +}; + +public type FlowDataAfterCompletionParam record { + AfterCompletionRedirectParam redirect?; + @jsondata:Name {value: "hosted_confirmation"} + AfterCompletionHostedConfirmationParam hostedConfirmation?; + "hosted_confirmation"|"portal_homepage"|"redirect" 'type; +}; + +# +public type BankConnectionsResourceLinkedAccountList record { + # Details about each object + FinancialConnectionsAccount[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/financial_connections/accounts`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type DefaulttaxratesItemsString string; + +# Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner +public type OutboundTransfers1 record { + AccessWithAchDetails ach?; + @jsondata:Name {value: "us_domestic_wire"} + Access usDomesticWire?; +}; + +@constraint:String {maxLength: 5000} +public type TransactionstransactionBodyExpandItemsString string; + +# Configure fields for the Checkout Session to gather active consent from customers +public type ConsentCollectionParams record { + "auto"|"none" promotions?; + @jsondata:Name {value: "payment_method_reuse_agreement"} + PaymentMethodReuseAgreementParams paymentMethodReuseAgreement?; + @jsondata:Name {value: "terms_of_service"} + "none"|"required" termsOfService?; +}; + +public type DataParams record { + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + string value; +}; + +@constraint:String {maxLength: 5000} +public type GetIdentityVerificationReportsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetApplePayDomains +public type GetApplePayDomainsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + @http:Query {name: "domain_name"} + string domainName?; + # Specifies which fields in the response should be expanded + GetApplePayDomainsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentIntentNextActionKonbiniStores record { + # Ministop instruction details + PaymentIntentNextActionKonbiniMinistop? ministop?; + # Seicomart instruction details + PaymentIntentNextActionKonbiniSeicomart? seicomart?; + # Lawson instruction details + PaymentIntentNextActionKonbiniLawson? lawson?; + # FamilyMart instruction details + PaymentIntentNextActionKonbiniFamilymart? familymart?; +}; + +# +public type QuotesResourceStatusTransitions record { + # The time that the quote was finalized. Measured in seconds since Unix epoch + @jsondata:Name {value: "finalized_at"} + int? finalizedAt?; + # The time that the quote was canceled. Measured in seconds since Unix epoch + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # The time that the quote was accepted. Measured in seconds since Unix epoch + @jsondata:Name {value: "accepted_at"} + int? acceptedAt?; +}; + +public type SourceTypeCardPresent record { + @jsondata:Name {value: "read_method"} + string? readMethod?; + string? country?; + string? last4?; + string? funding?; + string? reader?; + @jsondata:Name {value: "application_cryptogram"} + string applicationCryptogram?; + @jsondata:Name {value: "pos_entry_mode"} + string posEntryMode?; + @jsondata:Name {value: "evidence_customer_signature"} + string? evidenceCustomerSignature?; + @jsondata:Name {value: "exp_month"} + int? expMonth?; + @jsondata:Name {value: "authorization_response_code"} + string authorizationResponseCode?; + @jsondata:Name {value: "exp_year"} + int? expYear?; + @jsondata:Name {value: "pos_device_id"} + string? posDeviceId?; + @jsondata:Name {value: "application_preferred_name"} + string applicationPreferredName?; + @jsondata:Name {value: "authorization_code"} + string? authorizationCode?; + @jsondata:Name {value: "evidence_transaction_certificate"} + string? evidenceTransactionCertificate?; + @jsondata:Name {value: "terminal_verification_results"} + string terminalVerificationResults?; + @jsondata:Name {value: "data_type"} + string? dataType?; + string fingerprint?; + @jsondata:Name {value: "cvm_type"} + string cvmType?; + @jsondata:Name {value: "transaction_status_information"} + string transactionStatusInformation?; + @jsondata:Name {value: "dedicated_file_name"} + string dedicatedFileName?; + @jsondata:Name {value: "emv_auth_data"} + string emvAuthData?; + string? brand?; +}; + +# Represents the Queries record for the operation: GetSourcesSourceMandateNotificationsMandateNotification +public type GetSourcesSourceMandateNotificationsMandateNotificationQueries record { + # Specifies which fields in the response should be expanded + GetSourcesSourceMandateNotificationsMandateNotificationQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type DisputeCloseBodyExpandItemsString string; + +# +public type TransferSchedule record { + # The day of the week funds will be paid out, of the style 'monday', 'tuesday', etc. Only shown if `interval` is weekly + @jsondata:Name {value: "weekly_anchor"} + string weeklyAnchor?; + # How frequently funds will be paid out. One of `manual` (payouts only created via API call), `daily`, `weekly`, or `monthly` + @constraint:String {maxLength: 5000} + string interval; + # The number of days charges for the account will be held before being paid out + @jsondata:Name {value: "delay_days"} + int delayDays; + # The day of the month funds will be paid out. Only shown if `interval` is monthly. Payouts scheduled between the 29th and 31st of the month are sent on the last day of shorter months + @jsondata:Name {value: "monthly_anchor"} + int monthlyAnchor?; +}; + +# +public type IssuingTransactionFleetReportedBreakdown record { + # Breakdown of fuel portion of the purchase + IssuingTransactionFleetFuelPriceData? fuel?; + # Information about tax included in this transaction + IssuingTransactionFleetTaxData? tax?; + # Breakdown of non-fuel portion of the purchase + @jsondata:Name {value: "non_fuel"} + IssuingTransactionFleetNonFuelPriceData? nonFuel?; +}; + +# The customer's current subscriptions, if any +public type SubscriptionList1 record { + # Details about each object + Subscription[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodRevolutPay record { +}; + +@constraint:String {maxLength: 5000} +public type GetSourcesSourceSourceTransactionsSourceTransactionQueriesExpandItemsString string; + +public type SourceTypeSofort record { + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + @jsondata:Name {value: "bank_code"} + string? bankCode?; + string? country?; + @jsondata:Name {value: "bank_name"} + string? bankName?; + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + string? bic?; + @jsondata:Name {value: "preferred_language"} + string? preferredLanguage?; +}; + +# Configures how this subscription behaves during the trial period +public type SubscriptionsTrialsResourceTrialSettings record { + @jsondata:Name {value: "end_behavior"} + SubscriptionsTrialsResourceEndBehavior endBehavior; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerDiscountQueriesExpandItemsString string; + +# +public type ThreeDSecureUsage record { + # Whether 3D Secure is supported on this card + boolean supported; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryTransactionEntriesQueriesExpandItemsString string; + +# Additional information about an `individual` cardholder +public type IndividualParam record { + @jsondata:Name {value: "card_issuing"} + CardIssuingParam cardIssuing?; + DateOfBirthSpecs dob?; + @jsondata:Name {value: "last_name"} + string lastName?; + @jsondata:Name {value: "first_name"} + string firstName?; + PersonVerificationParam verification?; +}; + +# The person's verification status +public type PersonVerificationSpecs1 record { + PersonVerificationDocumentSpecs document?; + @jsondata:Name {value: "additional_document"} + PersonVerificationDocumentSpecs additionalDocument?; +}; + +public type ReviewApproveBody record {| + # Specifies which fields in the response should be expanded + ReviewApproveBodyExpandItemsString[] expand?; +|}; + +# Represents the Queries record for the operation: GetBillingMeters +public type GetBillingMetersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetBillingMetersQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Filter results to only include meters with the given status + "active"|"inactive" status?; +}; + +# +public type IssuingTransactionTreasury record { + # The Treasury [ReceivedCredit](https://stripe.com/docs/api/treasury/received_credits) representing this Issuing transaction if it is a refund + @jsondata:Name {value: "received_credit"} + string? receivedCredit?; + # The Treasury [ReceivedDebit](https://stripe.com/docs/api/treasury/received_debits) representing this Issuing transaction if it is a capture + @jsondata:Name {value: "received_debit"} + string? receivedDebit?; +}; + +# +public type ApplePayDomainList record { + ApplePayDomain[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/apple_pay/domains`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetIssuingCardsCard +public type GetIssuingCardsCardQueries record { + # Specifies which fields in the response should be expanded + GetIssuingCardsCardQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetPromotionCodesQueriesExpandItemsString string; + +# +public type RadarListListList record { + RadarValueList[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/radar/value_lists`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetRadarValueLists +public type GetRadarValueListsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # A value contained within a value list - returns all value lists containing this value + @constraint:String {maxLength: 800} + string contains?; + # Specifies which fields in the response should be expanded + GetRadarValueListsQueriesExpandItemsString[] expand?; + # Only return value lists that were created during the given date interval + Created31 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # The alias used to reference the value list when writing rules + @constraint:String {maxLength: 100} + string alias?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Represents the Queries record for the operation: GetTaxCodesId +public type GetTaxCodesIdQueries record { + # Specifies which fields in the response should be expanded + GetTaxCodesIdQueriesExpandItemsString[] expand?; +}; + +public type bank_account_ownership_verificationFilesItemsString string; + +# +public type GelatoDocumentReportError record { + # A human-readable message giving the reason for the failure. These messages can be shown to your users + string? reason?; + # A short machine-readable string giving the reason for the verification failure + "document_expired"|"document_type_not_supported"|"document_unverified_other"? code?; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryTransactionEntriesIdQueriesExpandItemsString string; + +# +public type TreasuryReceivedCreditsResourceReversalDetails record { + # Set if a ReceivedCredit cannot be reversed + @jsondata:Name {value: "restricted_reason"} + "already_reversed"|"deadline_passed"|"network_restricted"|"other"|"source_flow_restricted"? restrictedReason?; + # Time before which a ReceivedCredit can be reversed + int? deadline?; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingCardholdersQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type LocationslocationBodyExpandItemsString string; + +public type RadarOptionsWithHiddenOptions1 record { + @constraint:String {maxLength: 5000} + string session?; +}; + +@constraint:String {maxLength: 5000} +public type GetCountrySpecsCountryQueriesExpandItemsString string; + +public type AuthorizationControlsParamV2AllowedmerchantcountriesItemsString string; + +# +public type PaymentLinksResourceCustomFieldsNumeric record { + # The maximum character length constraint for the customer's input + @jsondata:Name {value: "maximum_length"} + int? maximumLength?; + # The minimum character length requirement for the customer's input + @jsondata:Name {value: "minimum_length"} + int? minimumLength?; +}; + +# Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session) +public type RadarOptionsWithHiddenOptions2 record { + @constraint:String {maxLength: 5000} + string session?; +}; + +public type LinkedAccountOptionsParam1 record { + (LinkedAccountOptionsParam1PermissionsItemsString)[] permissions?; + ("balances"|"ownership"|"transactions")[] prefetch?; + @jsondata:Name {value: "return_url"} + string returnUrl?; + LinkedAccountOptionsFiltersParam filters?; +}; + +# Settings that restrict the redemption of the promotion code +public type RestrictionsParams2 record { + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption3...;|} currencyOptions?; +}; + +# Settings that restrict the redemption of the promotion code +public type RestrictionsParams1 record { + @jsondata:Name {value: "first_time_transaction"} + boolean firstTimeTransaction?; + @jsondata:Name {value: "minimum_amount_currency"} + string minimumAmountCurrency?; + @jsondata:Name {value: "minimum_amount"} + int minimumAmount?; + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption3...;|} currencyOptions?; +}; + +@constraint:String {maxLength: 5000} +public type QuoteFinalizeBodyExpandItemsString string; + +# You can [create physical or virtual cards](https://stripe.com/docs/issuing/cards) that are issued to cardholders +public type IssuingCard record { + # The financial account this card is attached to + @jsondata:Name {value: "financial_account"} + string? financialAccount?; + # The last 4 digits of the card number + @constraint:String {maxLength: 5000} + string last4; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "spending_controls"} + IssuingCardAuthorizationControls spendingControls; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The expiration month of the card + @jsondata:Name {value: "exp_month"} + int expMonth; + # Information relating to digital wallets (like Apple Pay and Google Pay) + IssuingCardWallets? wallets?; + # The expiration year of the card + @jsondata:Name {value: "exp_year"} + int expYear; + # The reason why the card was canceled + @jsondata:Name {value: "cancellation_reason"} + "design_rejected"|"lost"|"stolen"? cancellationReason?; + IssuingCardholder cardholder; + # The type of the card + "physical"|"virtual" 'type; + # The latest card that replaces this card, if any + @jsondata:Name {value: "replaced_by"} + string|IssuingCard? replacedBy?; + # The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the ["Retrieve a card" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via "List all cards" or any other endpoint + @constraint:String {maxLength: 5000} + string cvc?; + # The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the ["Retrieve a card" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via "List all cards" or any other endpoint + @constraint:String {maxLength: 5000} + string number?; + # The personalization design object belonging to this card + @jsondata:Name {value: "personalization_design"} + string|IssuingPersonalizationDesign? personalizationDesign?; + # Where and how the card will be shipped + IssuingCardShipping? shipping?; + # The reason why the previous card needed to be replaced + @jsondata:Name {value: "replacement_reason"} + "damaged"|"expired"|"lost"|"stolen"? replacementReason?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Supported currencies are `usd` in the US, `eur` in the EU, and `gbp` in the UK + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The brand of the card + @constraint:String {maxLength: 5000} + string brand; + # The card this card replaces, if any + @jsondata:Name {value: "replacement_for"} + string|IssuingCard? replacementFor?; + # String representing the object's type. Objects of the same type share the same value + "issuing.card" 'object; + # Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive` + "active"|"canceled"|"inactive" status; +}; + +public type OutboundTransferFailBody record {| + # Specifies which fields in the response should be expanded + OutboundTransferFailBodyExpandItemsString[] expand?; +|}; + +# +public type ClimateRemovalsLocation record { + # Two-letter ISO code representing the country where the supplier is located + @constraint:String {maxLength: 5000} + string country; + # The city where the supplier is located + string? city?; + # The geographic latitude where the supplier is located + decimal? latitude?; + # The state/county/province/region where the supplier is located + string? region?; + # The geographic longitude where the supplier is located + decimal? longitude?; +}; + +public type InvoiceDiscounts DiscountsAnyOf1|Discount|DeletedDiscount; + +# If you have [scheduled a Sigma query](https://stripe.com/docs/sigma/scheduled-queries), you'll +# receive a `sigma.scheduled_query_run.created` webhook each time the query +# runs. The webhook contains a `ScheduledQueryRun` object, which you can use to +# retrieve the query results +public type ScheduledQueryRun record { + # When the query was run, Sigma contained a snapshot of your Stripe data at this time + @jsondata:Name {value: "data_load_time"} + int dataLoadTime; + # Time at which the result expires and is no longer available for download + @jsondata:Name {value: "result_available_until"} + int resultAvailableUntil; + # The file object representing the results of the query + File? file?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + SigmaScheduledQueryRunError 'error?; + # Title of the query + @constraint:String {maxLength: 5000} + string title; + # String representing the object's type. Objects of the same type share the same value + "scheduled_query_run" 'object; + # SQL for the query + @constraint:String {maxLength: 100000} + string sql; + # The query's execution status, which will be `completed` for successful runs, and `canceled`, `failed`, or `timed_out` otherwise + @constraint:String {maxLength: 5000} + string status; +}; + +public type SetupIntentPaymentMethodOptionsParam record { + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + "cad"|"usd" currency?; + @jsondata:Name {value: "mandate_options"} + SetupIntentPaymentMethodOptionsMandateOptionsParam mandateOptions?; +}; + +public type ShippingShipBody record {| + # Specifies which fields in the response should be expanded + ShippingShipBodyExpandItemsString[] expand?; +|}; + +public type PersonVerificationDocumentSpecs record { + @constraint:String {maxLength: 500} + string back?; + @constraint:String {maxLength: 500} + string front?; +}; + +# Point in Time +public type GelatoDataDocumentReportIssuedDate record { + # Numerical month between 1 and 12 + int? month?; + # The four-digit year + int? year?; + # Numerical day between 1 and 31 + int? day?; +}; + +public type PaymentMethodConfigurationsBody record {| + PaymentMethodParam32 paynow?; + # Configuration's parent configuration. Specify to create a child configuration + @constraint:String {maxLength: 100} + string parent?; + PaymentMethodParam12 blik?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodParam2 acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodParam10 bacsDebit?; + PaymentMethodParam13 boleto?; + PaymentMethodParam24 jcb?; + PaymentMethodParam27 link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodParam6 amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodParam9 auBecsDebit?; + PaymentMethodParam30 oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodParam4 afterpayClearpay?; + PaymentMethodParam38 swish?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam39 usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodParam17 customerBalance?; + PaymentMethodParam16 cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodParam40 wechatPay?; + PaymentMethodParam33 paypal?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodParam35 revolutPay?; + PaymentMethodParam20 giropay?; + PaymentMethodParam41 zip?; + PaymentMethodParam5 alipay?; + PaymentMethodParam23 ideal?; + @jsondata:Name {value: "google_pay"} + PaymentMethodParam21 googlePay?; + PaymentMethodParam18 eps?; + @jsondata:Name {value: "apple_pay_later"} + PaymentMethodParam8 applePayLater?; + PaymentMethodParam26 konbini?; + PaymentMethodParam37 sofort?; + PaymentMethodParam19 fpx?; + PaymentMethodParam34 promptpay?; + PaymentMethodParam3 affirm?; + @jsondata:Name {value: "apple_pay"} + PaymentMethodParam7 applePay?; + PaymentMethodParam28 mobilepay?; + PaymentMethodParam11 bancontact?; + # Specifies which fields in the response should be expanded + PaymentMethodConfigurationsBodyExpandItemsString[] expand?; + PaymentMethodParam22 grabpay?; + PaymentMethodParam25 klarna?; + PaymentMethodParam31 p24?; + # Configuration name + @constraint:String {maxLength: 100} + string name?; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodParam36 sepaDebit?; + PaymentMethodParam14 card?; + @jsondata:Name {value: "cartes_bancaires"} + PaymentMethodParam15 cartesBancaires?; + PaymentMethodParam29 multibanco?; +|}; + +@constraint:String {maxLength: 5000} +public type SetupIntentsintentBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type InvoiceRemoveLinesBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTreasuryReceivedDebitsQueriesExpandItemsString string; + +public type IntentApplyCustomerBalanceBody record {| + # Amount that you intend to apply to this PaymentIntent from the customer’s cash balance. + # + # A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (for example, 100 cents to charge 1 USD or 100 to charge 100 JPY, a zero-decimal currency). + # + # The maximum amount is the amount of the PaymentIntent. + # + # When you omit the amount, it defaults to the remaining amount requested on the PaymentIntent + int amount?; + # Specifies which fields in the response should be expanded + IntentApplyCustomerBalanceBodyExpandItemsString[] expand?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; +|}; + +# +public type BillingMeterResourceCustomerMappingSettings record { + # The key in the meter event payload to use for mapping the event to a customer + @jsondata:Name {value: "event_payload_key"} + string eventPayloadKey; + # The method for mapping a meter event to a customer + "by_id" 'type; +}; + +# InboundTransfers contains inbound transfers features for a FinancialAccount +public type TreasuryFinancialAccountsResourceInboundTransfers record { + TreasuryFinancialAccountsResourceAchToggleSettings ach?; +}; + +# When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data` +public type SubscriptionDataUpdateParams record { + @jsondata:Name {value: "invoice_settings"} + SubscriptionDataInvoiceSettingsParams invoiceSettings?; + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "trial_settings"} + record {record {"cancel"|"create_invoice"|"pause" missing_payment_method;} end_behavior;}|"" trialSettings?; +}; + +public type TreasuryCreditReversalsBody record {| + # Specifies which fields in the response should be expanded + TreasuryCreditReversalsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The ReceivedCredit to reverse + @jsondata:Name {value: "received_credit"} + string receivedCredit; +|}; + +# +public type OfflineAcceptance record { +}; + +# Represents the Queries record for the operation: GetInvoices +public type GetInvoicesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetInvoicesQueriesExpandItemsString[] expand?; + # Only return invoices that were created during the given date interval + Created16 created?; + # The collection method of the invoice to retrieve. Either `charge_automatically` or `send_invoice` + @http:Query {name: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + @http:Query {name: "due_date"} + DueDate dueDate?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return invoices for the subscription specified by this subscription ID + @constraint:String {maxLength: 5000} + string subscription?; + # Only return invoices for the customer specified by this customer ID + @constraint:String {maxLength: 5000} + string customer?; + # The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview) + "draft"|"open"|"paid"|"uncollectible"|"void" status?; +}; + +# Represents the Queries record for the operation: GetTransfersTransfer +public type GetTransfersTransferQueries record { + # Specifies which fields in the response should be expanded + GetTransfersTransferQueriesExpandItemsString[] expand?; +}; + +# The dimensions of this product for shipping purposes +public type PackageDimensionsSpecs record { + decimal length; + decimal width; + decimal weight; + decimal height; +}; + +# +public type PaymentMethodSofort record { + # Two-letter ISO code representing the country the bank account is located in + string? country?; +}; + +public type ConfigurationItemParams record { + record {|string...;|} metadata?; + @jsondata:Name {value: "price_data"} + RecurringPriceData priceData?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + @jsondata:Name {value: "billing_thresholds"} + record {int usage_gte;}|"" billingThresholds?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type GetPricesQueriesExpandItemsString string; + +public type Created33RangeQuerySpecs362 int; + +@constraint:String {maxLength: 5000} +public type FinancialConnectionsSessionsBodyExpandItemsString string; + +public type InstallmentsParam record { + boolean enabled?; +}; + +@constraint:String {maxLength: 5000} +public type CustomerTaxIdsBodyExpandItemsString string; + +public type SubscriptionBillingCycleAnchor1SubscriptionBillingCycleAnchor1AnyOf12 int; + +# Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint. +@display {label: "Connection Config"} +public type ConnectionConfig record {| + # Configurations related to client authentication + http:BearerTokenConfig|http:CredentialsConfig auth; + # The HTTP version understood by the client + http:HttpVersion httpVersion = http:HTTP_2_0; + # Configurations related to HTTP/1.x protocol + http:ClientHttp1Settings http1Settings = {}; + # Configurations related to HTTP/2 protocol + http:ClientHttp2Settings http2Settings = {}; + # The maximum time to wait (in seconds) for a response before closing the connection + decimal timeout = 30; + # The choice of setting `forwarded`/`x-forwarded` header + string forwarded = "disable"; + # Configurations associated with Redirection + http:FollowRedirects followRedirects?; + # Configurations associated with request pooling + http:PoolConfiguration poolConfig?; + # HTTP caching related configurations + http:CacheConfig cache = {}; + # Specifies the way of handling compression (`accept-encoding`) header + http:Compression compression = http:COMPRESSION_AUTO; + # Configurations associated with the behaviour of the Circuit Breaker + http:CircuitBreakerConfig circuitBreaker?; + # Configurations associated with retrying + http:RetryConfig retryConfig?; + # Configurations associated with cookies + http:CookieConfig cookieConfig?; + # Configurations associated with inbound response size limits + http:ResponseLimitConfigs responseLimits = {}; + # SSL/TLS-related options + http:ClientSecureSocket secureSocket?; + # Proxy server related options + http:ProxyConfig proxy?; + # Provides settings related to client socket configuration + http:ClientSocketConfig socketConfig = {}; + # Enables the inbound payload validation functionality which provided by the constraint package. Enabled by default + boolean validation = true; + # Enables relaxed data binding on the client side. When enabled, `nil` values are treated as optional, + # and absent fields are handled as `nilable` types. Enabled by default. + boolean laxDataBinding = true; +|}; + +# +public type PaymentPagesCheckoutSessionCustomFieldsOption record { + # The label for the option, displayed to the customer. Up to 100 characters + @constraint:String {maxLength: 5000} + string label; + # The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters + @constraint:String {maxLength: 5000} + string value; +}; + +public type PricespriceBody record {| + # Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + # Specifies which fields in the response should be expanded + PricespriceBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # A brief description of the price, hidden from customers + @constraint:String {maxLength: 5000} + string nickname?; + # Whether the price can be used for new purchases. Defaults to `true` + boolean active?; + # A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters + @jsondata:Name {value: "lookup_key"} + string lookupKey?; + # Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|record {record {boolean enabled; int maximum?; int minimum?; int preset?;} custom_unit_amount?; "exclusive"|"inclusive"|"unspecified" tax_behavior?; record {int flat_amount?; string flat_amount_decimal?; int unit_amount?; string unit_amount_decimal?; "inf"|int up_to;}[] tiers?; int unit_amount?; string unit_amount_decimal?;}...;|}|"" currencyOptions?; + # If set to true, will atomically remove the lookup key from the existing price, and assign it to this price + @jsondata:Name {value: "transfer_lookup_key"} + boolean transferLookupKey?; +|}; + +# The full address of the location. If you're updating the `address` field, avoid changing the `country`. If you need to modify the `country` field, create a new `Location` object and re-register any existing readers to that location +public type OptionalFieldsAddress1 record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1?; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceAdjustedForOverdraft record { + # The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds taken out of your Stripe balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction balanceTransaction; + # The [Cash Balance Transaction](https://stripe.com/docs/api/cash_balance_transactions/object) that brought the customer balance negative, triggering the clawback of funds + @jsondata:Name {value: "linked_transaction"} + string|CustomerCashBalanceTransaction linkedTransaction; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceRefundedFromPaymentTransaction record { + # The [Refund](https://stripe.com/docs/api/refunds/object) that moved these funds into the customer's cash balance + string|Refund refund; +}; + +# Represents the Queries record for the operation: GetPaymentMethods +public type GetPaymentMethodsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPaymentMethodsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type?; + # The ID of the customer whose PaymentMethods will be retrieved + @constraint:String {maxLength: 5000} + string customer?; +}; + +public type AccountCapabilityRequirementsEventuallydueItemsString string; + +@constraint:String {maxLength: 5000} +public type IdVerifyBody1ExpandItemsString string; + +public type Created39RangeQuerySpecs452 int; + +@constraint:String {maxLength: 5000} +public type GetDisputesDisputeQueriesExpandItemsString string; + +# +public type TerminalConfigurationConfigurationResourceRebootWindow record { + # Integer between 0 to 23 that represents the start hour of the reboot time window + @jsondata:Name {value: "start_hour"} + int startHour; + # Integer between 0 to 23 that represents the end hour of the reboot time window. The value must be different than the start_hour + @jsondata:Name {value: "end_hour"} + int endHour; +}; + +public type IdVoidBody record {| + # Specifies which fields in the response should be expanded + IdVoidBodyExpandItemsString[] expand?; +|}; + +public type TerminalLocationsBody record {| + # Specifies which fields in the response should be expanded + TerminalLocationsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + CreateLocationAddressParam address; + # A name for the location + @jsondata:Name {value: "display_name"} + string displayName; + # The ID of a configuration that will be used to customize all readers in this location + @jsondata:Name {value: "configuration_overrides"} + string configurationOverrides?; +|}; + +# Represents the Queries record for the operation: GetInvoicesUpcomingLines +public type GetInvoicesUpcomingLinesQueries record { + # A list of up to 20 subscription items, each with an attached price. This field has been deprecated and will be removed in a future API version. Use `subscription_details.items` instead + @http:Query {name: "subscription_items"} + SubscriptionItemUpdateParams[] subscriptionItems?; + # List of invoice items to add or update in the upcoming invoice preview + @http:Query {name: "invoice_items"} + InvoiceItemPreviewParams[] invoiceItems?; + # For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.billing_cycle_anchor` instead + @http:Query {name: "subscription_billing_cycle_anchor"} + SubscriptionBillingCycleAnchor1 subscriptionBillingCycleAnchor?; + # The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions + @constraint:String {maxLength: 5000} + string subscription?; + # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account + Param3 issuer?; + # This simulates the subscription being canceled or expired immediately. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_now` instead + @http:Query {name: "subscription_cancel_now"} + boolean subscriptionCancelNow?; + # Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set + @http:Query {name: "customer_details"} + CustomerDetailsParam2 customerDetails?; + # Boolean indicating whether this subscription should cancel at the end of the current period. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at_period_end` instead + @http:Query {name: "subscription_cancel_at_period_end"} + boolean subscriptionCancelAtPeriodEnd?; + # The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts + Discounts1 discounts?; + # For paused subscriptions, setting `subscription_resume_at` to `now` will preview the invoice that will be generated if the subscription is resumed. This field has been deprecated and will be removed in a future API version. Use `subscription_details.resume_at` instead + @http:Query {name: "subscription_resume_at"} + "now" subscriptionResumeAt?; + # Date a subscription is intended to start (can be future or past). This field has been deprecated and will be removed in a future API version. Use `subscription_details.start_date` instead + @http:Query {name: "subscription_start_date"} + int subscriptionStartDate?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # The currency to preview this invoice in. Defaults to that of `customer` if not specified + string currency?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period and within the current phase of the schedule backing this subscription, if the schedule exists. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration_behavior` cannot be set to 'none'. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_date` instead + @http:Query {name: "subscription_proration_date"} + int subscriptionProrationDate?; + # The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields + @http:Query {name: "schedule_details"} + ScheduleDetailsParams2 scheduleDetails?; + # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details + @http:Query {name: "on_behalf_of"} + OnBehalfOf1 onBehalfOf?; + # If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_items` or `subscription` is required. This field has been deprecated and will be removed in a future API version. Use `subscription_details.trial_end` instead + @http:Query {name: "subscription_trial_end"} + SubscriptionTrialEnd1 subscriptionTrialEnd?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields + @constraint:String {maxLength: 5000} + string schedule?; + # Specifies which fields in the response should be expanded + GetInvoicesUpcomingLinesQueriesExpandItemsString[] expand?; + # Settings for automatic tax lookup for this invoice preview + @http:Query {name: "automatic_tax"} + AutomaticTaxParam3 automaticTax?; + # The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields + @http:Query {name: "subscription_details"} + SubscriptionDetailsParams2 subscriptionDetails?; + # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at` instead + @http:Query {name: "subscription_cancel_at"} + SubscriptionCancelAt1 subscriptionCancelAt?; + # If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have `tax_rates` set. This field has been deprecated and will be removed in a future API version. Use `subscription_details.default_tax_rates` instead + @http:Query {name: "subscription_default_tax_rates"} + SubscriptionDefaultTaxRates1 subscriptionDefaultTaxRates?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_behavior` instead + @http:Query {name: "subscription_proration_behavior"} + "always_invoice"|"create_prorations"|"none" subscriptionProrationBehavior?; + # Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified + @http:Query {name: "preview_mode"} + "next"|"recurring" previewMode?; + # The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set + @constraint:String {maxLength: 5000} + string customer?; +}; + +# +public type ExchangeRateList record { + ExchangeRate[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/exchange_rates`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Toggle settings for enabling/disabling the ABA address feature +public type TreasuryFinancialAccountsResourceAbaToggleSettings record { + # Whether the FinancialAccount should have the Feature + boolean requested; + # Additional details; includes at least one entry when the status is not `active` + @jsondata:Name {value: "status_details"} + TreasuryFinancialAccountsResourceTogglesSettingStatusDetails[] statusDetails; + # Whether the Feature is operational + "active"|"pending"|"restricted" status; +}; + +public type Created RangeQuerySpecs|CreatedRangeQuerySpecs2; + +# Represents the Queries record for the operation: GetCustomersCustomerTaxIdsId +public type GetCustomersCustomerTaxIdsIdQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerTaxIdsIdQueriesExpandItemsString[] expand?; +}; + +public type ControllerFeesSpecs record { + "account"|"application" payer?; +}; + +# Details about the request forwarded to the destination endpoint +public type ForwardedRequestDetails record { + # The headers to include in the forwarded request. Can be omitted if no additional headers (excluding Stripe-generated ones such as the Content-Type header) should be included + ForwardedRequestHeader[] headers; + # The HTTP method used to call the destination endpoint + @jsondata:Name {value: "http_method"} + "POST" httpMethod; + # The body payload to send to the destination endpoint + @constraint:String {maxLength: 5000} + string body; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerPaymentMethodsPaymentMethod +public type GetCustomersCustomerPaymentMethodsPaymentMethodQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerPaymentMethodsPaymentMethodQueriesExpandItemsString[] expand?; +}; + +# +public type SetupAttemptPaymentMethodDetailsBacsDebit record { +}; + +@constraint:String {maxLength: 5000} +public type EphemeralKeyskeyBodyExpandItemsString string; + +public type DocumentsParam3Files FilesAnyOf12|FilesFilesAnyOf122; + +public type InboundTransferCancelBody record {| + # Specifies which fields in the response should be expanded + InboundTransferCancelBodyExpandItemsString[] expand?; +|}; + +public type Discounts1AnyOf1 DiscountsDataParam[]; + +# +public type SetupAttemptPaymentMethodDetailsKlarna record { +}; + +@constraint:String {maxLength: 5000} +public type GetClimateProductsProductQueriesExpandItemsString string; + +public type InvoiceUpdateLinesBody record {| + # 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`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data + @jsondata:Name {value: "invoice_metadata"} + record {|string...;|}|"" invoiceMetadata?; + # Specifies which fields in the response should be expanded + InvoiceUpdateLinesBodyExpandItemsString[] expand?; + # The line items to update + LinesDataParam2[] lines; +|}; + +# +public type TaxProductResourceTaxCalculationShippingCost record { + # Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive" taxBehavior; + # The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount + int amount; + # The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping + @jsondata:Name {value: "tax_code"} + string taxCode; + # The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_tax"} + int amountTax; + # The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object) + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; + # Detailed account of taxes relevant to shipping cost + @jsondata:Name {value: "tax_breakdown"} + TaxProductResourceLineItemTaxBreakdown[] taxBreakdown?; +}; + +@constraint:String {maxLength: 5000} +public type GetCreditNotesPreviewQueriesExpandItemsString string; + +public type CountrySpecSupportedpaymentcurrenciesItemsString string; + +public type SubscriptionCancelAt1SubscriptionCancelAt1AnyOf12 ""; + +public type Created38RangeQuerySpecs432 int; + +@constraint:String {maxLength: 5000} +public type AppliesToParamsProductsItemsString string; + +@constraint:String {maxLength: 5000} +public type GetChargesSearchQueriesExpandItemsString string; + +public type FileLinksBody record {| + # Specifies which fields in the response should be expanded + FileLinksBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The link isn't usable after this future timestamp + @jsondata:Name {value: "expires_at"} + int expiresAt?; + # The ID of the file. The file's `purpose` must be one of the following: `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `finance_report_run`, `identity_document_downloadable`, `pci_document`, `selfie`, `sigma_scheduled_query`, `tax_document_user_upload`, or `terminal_reader_splashscreen` + @constraint:String {maxLength: 5000} + string file; +|}; + +@constraint:String {maxLength: 5000} +public type ReadersreaderBodyExpandItemsString string; + +# +public type PaymentPagesCheckoutSessionCustomFields record { + PaymentPagesCheckoutSessionCustomFieldsNumeric numeric?; + # Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false` + boolean optional; + PaymentPagesCheckoutSessionCustomFieldsLabel label; + PaymentPagesCheckoutSessionCustomFieldsText text?; + # The type of the field + "dropdown"|"numeric"|"text" 'type; + PaymentPagesCheckoutSessionCustomFieldsDropdown dropdown?; + # String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters + @constraint:String {maxLength: 5000} + string 'key; +}; + +@constraint:String {maxLength: 5000} +public type GetSigmaScheduledQueryRunsScheduledQueryRunQueriesExpandItemsString string; + +# +public type TreasuryReceivedCreditsResourceReceivedCreditList record { + # Details about each object + TreasuryReceivedCredit[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodInteracPresent record { + # How card details were read in this transaction + @jsondata:Name {value: "read_method"} + "contact_emv"|"contactless_emv"|"contactless_magstripe_mode"|"magnetic_stripe_fallback"|"magnetic_stripe_track2"? readMethod?; + # 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 + string? country?; + # The last four digits of the card + string? last4?; + # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip + @jsondata:Name {value: "preferred_locales"} + PaymentMethodInteracPresentPreferredlocalesItemsString[]? preferredLocales?; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + string? funding?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay + @jsondata:Name {value: "cardholder_name"} + string? cardholderName?; + # Contains information about card networks that can be used to process the payment + PaymentMethodCardPresentNetworks? networks?; + # Card brand. Can be `interac`, `mastercard` or `visa` + string? brand?; +}; + +public type Created35RangeQuerySpecs382 int; + +# Represents the Queries record for the operation: GetTerminalReadersReader +public type GetTerminalReadersReaderQueries record { + # Specifies which fields in the response should be expanded + GetTerminalReadersReaderQueriesExpandItemsString[] expand?; +}; + +# +public type GelatoVerifiedOutputs record { + # The user's verified id number type + @jsondata:Name {value: "id_number_type"} + "br_cpf"|"sg_nric"|"us_ssn"? idNumberType?; + # The user's verified id number + @jsondata:Name {value: "id_number"} + string? idNumber?; + # The user's verified address + Address? address?; + # The user's verified phone number + string? phone?; + # The user’s verified date of birth + GelatoDataVerifiedOutputsDate? dob?; + # The user's verified last name + @jsondata:Name {value: "last_name"} + string? lastName?; + # The user's verified first name + @jsondata:Name {value: "first_name"} + string? firstName?; + # The user's verified email address + string? email?; +}; + +@constraint:String {maxLength: 5000} +public type ValueListsvalueListBodyExpandItemsString string; + +# Configure actions after a Checkout Session has expired +public type AfterExpirationParams record { + RecoveryParams recovery?; +}; + +# +public type GelatoSessionEmailOptions record { + # Request one time password verification of `provided_details.email` + @jsondata:Name {value: "require_verification"} + boolean requireVerification?; +}; + +@constraint:String {maxLength: 5000} +public type GetReviewsQueriesExpandItemsString string; + +public type SubscriptionTrialEnd1AnyOf1 "now"; + +public type SubscriptionTrialEnd1 SubscriptionTrialEnd1AnyOf1|SubscriptionTrialEnd1SubscriptionTrialEnd1AnyOf12; + +# +public type PlatformEarningFeeSource record { + # Charge ID that created this application fee + @constraint:String {maxLength: 5000} + string charge?; + # Payout ID that created this application fee + @constraint:String {maxLength: 5000} + string payout?; + # Type of object that created the application fee, either `charge` or `payout` + "charge"|"payout" 'type; +}; + +# +public type PaymentMethodDetailsTwint record { +}; + +public type DocumentsParam6Files FilesAnyOf15|FilesFilesAnyOf152; + +public type RadarValueListsBody record {| + # Specifies which fields in the response should be expanded + RadarValueListsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Type of the items in the value list. One of `card_fingerprint`, `us_bank_account_fingerprint`, `sepa_debit_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, `case_sensitive_string`, or `customer_id`. Use `string` if the item type is unknown or mixed + @jsondata:Name {value: "item_type"} + "card_bin"|"card_fingerprint"|"case_sensitive_string"|"country"|"customer_id"|"email"|"ip_address"|"sepa_debit_fingerprint"|"string"|"us_bank_account_fingerprint" itemType?; + # The human-readable name of the value list + @constraint:String {maxLength: 100} + string name; + # The name of the value list for use in rules + @constraint:String {maxLength: 100} + string alias; +|}; + +# +public type SetupIntentPaymentMethodOptionsSepaDebit record { + @jsondata:Name {value: "mandate_options"} + SetupIntentPaymentMethodOptionsMandateOptionsSepaDebit mandateOptions?; +}; + +# +public type InvoicesResourceFromInvoice record { + # The relation between this invoice and the cloned invoice + @constraint:String {maxLength: 5000} + string action; + # The invoice that was cloned + string|Invoice invoice; +}; + +# Represents the Queries record for the operation: GetPaymentLinksPaymentLink +public type GetPaymentLinksPaymentLinkQueries record { + # Specifies which fields in the response should be expanded + GetPaymentLinksPaymentLinkQueriesExpandItemsString[] expand?; +}; + +public type Created36RangeQuerySpecs392 int; + +# FinancialAddresses contain identifying information that resolves to a FinancialAccount +public type TreasuryFinancialAccountsResourceFinancialAddress record { + # The list of networks that the address supports + @jsondata:Name {value: "supported_networks"} + ("ach"|"us_domestic_wire")[] supportedNetworks?; + TreasuryFinancialAccountsResourceAbaRecord aba?; + # The type of financial address + "aba" 'type; +}; + +# +public type TaxProductRegistrationsResourceCountryOptionsCanada record { + # Type of registration in Canada + "province_standard"|"simplified"|"standard" 'type; + @jsondata:Name {value: "province_standard"} + TaxProductRegistrationsResourceCountryOptionsCaProvinceStandard provinceStandard?; +}; + +# +public type FinancialReportingFinanceReportRunRunParameters record { + # Ending timestamp of data to be included in the report run. Can be any UTC timestamp between 1 second after the user specified `interval_start` and 1 second before this report's last `data_available_end` value + @jsondata:Name {value: "interval_end"} + int intervalEnd?; + # Connected account ID by which to filter the report run + @jsondata:Name {value: "connected_account"} + string connectedAccount?; + # The set of output columns requested for inclusion in the report run + FinancialReportingFinanceReportRunRunParametersColumnsItemsString[] columns?; + # Defaults to `Etc/UTC`. The output timezone for all timestamps in the report. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones). Has no effect on `interval_start` or `interval_end` + @constraint:String {maxLength: 5000} + string timezone?; + # Category of balance transactions to be included in the report run + @jsondata:Name {value: "reporting_category"} + string reportingCategory?; + # Payout ID by which to filter the report run + @constraint:String {maxLength: 5000} + string payout?; + # Currency of objects to be included in the report run + string currency?; + # Starting timestamp of data to be included in the report run. Can be any UTC timestamp between 1 second after this report's `data_available_start` and 1 second before the user specified `interval_end` value + @jsondata:Name {value: "interval_start"} + int intervalStart?; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceTransferredToBalance record { + # The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds transferred to your Stripe balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction balanceTransaction; +}; + +public type AccountRejectBody record {| + # The reason for rejecting the account. Can be `fraud`, `terms_of_service`, or `other` + @constraint:String {maxLength: 5000} + string reason; + # Specifies which fields in the response should be expanded + AccountRejectBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type GetIdentityVerificationSessionsSessionQueriesExpandItemsString string; + +public type Simplified record { + "simplified" 'type; +}; + +# +public type IssuingTransactionReceiptData record { + # The total for this line item in cents + int? total?; + # The quantity of the item + decimal? quantity?; + # The description of the item. The maximum length of this field is 26 characters + string? description?; + # The unit cost of the item in cents + @jsondata:Name {value: "unit_cost"} + int? unitCost?; +}; + +# A product_feature represents an attachment between a feature and a product. +# When a product is purchased that has a feature attached, Stripe will create an entitlement to the feature for the purchasing customer +public type ProductFeature record { + @jsondata:Name {value: "entitlement_feature"} + EntitlementsFeature entitlementFeature; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "product_feature" 'object; +}; + +public type PlansBody record {| + # The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks) + @jsondata:Name {value: "interval_count"} + int intervalCount?; + # A positive integer in cents (or local equivalent) (or 0 for a free plan) representing how much to charge on a recurring basis + int amount?; + # 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` + record {|string...;|}|"" metadata?; + record {boolean active?; string id?; record {|string...;|} metadata?; string name; string statement_descriptor?; string tax_code?; string unit_label?;}|string product?; + # Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme` + Tier[] tiers?; + # The meter tracking the usage of a metered price + @constraint:String {maxLength: 5000} + string meter?; + # Same as `amount`, but accepts a decimal value with at most 12 decimal places. Only one of `amount` and `amount_decimal` can be set + @jsondata:Name {value: "amount_decimal"} + string amountDecimal?; + @jsondata:Name {value: "transform_usage"} + TransformUsageParam transformUsage?; + # Whether the plan is currently available for new subscriptions. Defaults to `true` + boolean active?; + # Specifies a usage aggregation strategy for plans of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for using the last usage record reported within a period, `last_ever` for using the last usage record ever (across period bounds) or `max` which uses the usage record with the maximum reported usage during a period. Defaults to `sum` + @jsondata:Name {value: "aggregate_usage"} + "last_during_period"|"last_ever"|"max"|"sum" aggregateUsage?; + # Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes + @jsondata:Name {value: "billing_scheme"} + "per_unit"|"tiered" billingScheme?; + # Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan) + @jsondata:Name {value: "trial_period_days"} + int trialPeriodDays?; + # Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows + @jsondata:Name {value: "tiers_mode"} + "graduated"|"volume" tiersMode?; + # Specifies which fields in the response should be expanded + PlansBodyExpandItemsString[] expand?; + # Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed` + @jsondata:Name {value: "usage_type"} + "licensed"|"metered" usageType?; + # A brief description of the plan, hidden from customers + @constraint:String {maxLength: 5000} + string nickname?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Specifies billing frequency. Either `day`, `week`, `month` or `year` + "day"|"month"|"week"|"year" interval; + # An identifier randomly generated by Stripe. Used to identify this plan when subscribing a customer. You can optionally override this ID, but the ID must be unique across all plans in your Stripe account. You can, however, use the same plan ID in both live and test modes + @constraint:String {maxLength: 5000} + string id?; +|}; + +# When a non-stripe BIN is used, any use of an [issued card](https://stripe.com/docs/issuing) must be settled directly with the card network. The net amount owed is represented by an Issuing `Settlement` object +public type IssuingSettlement record { + # The date that the transactions are cleared and posted to user's accounts + @jsondata:Name {value: "clearing_date"} + int clearingDate; + # 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 + record {|string...;|} metadata; + # The total interchange received as reimbursement for the transactions + @jsondata:Name {value: "interchange_fees"} + int interchangeFees; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The Bank Identification Number reflecting this settlement record + @constraint:String {maxLength: 5000} + string bin; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The total net amount required to settle with the network + @jsondata:Name {value: "net_total"} + int netTotal; + # The total number of transactions reflected in this settlement + @jsondata:Name {value: "transaction_count"} + int transactionCount; + # One of `international` or `uk_national_net` + @jsondata:Name {value: "settlement_service"} + string settlementService; + # The total amount of fees owed to the network + @jsondata:Name {value: "network_fees"} + int networkFees; + # The card network for this settlement report. One of ["visa"] + "visa" network; + # The Settlement Identification Number assigned by the network + @jsondata:Name {value: "network_settlement_identifier"} + string networkSettlementIdentifier; + # The total transaction amount reflected in this settlement + @jsondata:Name {value: "transaction_volume"} + int transactionVolume; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "issuing.settlement" 'object; +}; + +# +public type TreasuryOutboundTransfersResourceReturnedDetails record { + # Reason for the return + "account_closed"|"account_frozen"|"bank_account_restricted"|"bank_ownership_changed"|"declined"|"incorrect_account_holder_name"|"invalid_account_number"|"invalid_currency"|"no_account"|"other" code; + # The Transaction associated with this object + string|TreasuryTransaction 'transaction; +}; + +# When an [issued card](https://stripe.com/docs/issuing) is used to make a purchase, an Issuing `Authorization` +# object is created. [Authorizations](https://stripe.com/docs/issuing/purchases/authorizations) must be approved for the +# purchase to be completed successfully. +# +# Related guide: [Issued card authorizations](https://stripe.com/docs/issuing/purchases/authorizations) +public type IssuingAuthorization record { + # Fleet-specific information for authorizations using Fleet cards + IssuingAuthorizationFleetData? fleet?; + # Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_details"} + IssuingAuthorizationAmountDetails? amountDetails?; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Information about fuel that was purchased with this transaction. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed + IssuingAuthorizationFuelData? fuel?; + @jsondata:Name {value: "merchant_data"} + IssuingAuthorizationMerchantData merchantData; + # The local currency that was presented to the cardholder for the authorization. This currency can be different from the cardholder currency and the `currency` field on this authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "merchant_currency"} + string merchantCurrency; + # Whether the authorization has been approved + boolean approved; + # List of balance transactions associated with this authorization + @jsondata:Name {value: "balance_transactions"} + BalanceTransaction[] balanceTransactions; + # Details about the authorization, such as identifiers, set by the card network + @jsondata:Name {value: "network_data"} + IssuingAuthorizationNetworkData? networkData?; + # The pending authorization request. This field will only be non-null during an `issuing_authorization.request` webhook + @jsondata:Name {value: "pending_request"} + IssuingAuthorizationPendingRequest? pendingRequest?; + # The currency of the cardholder. This currency can be different from the currency presented at authorization and the `merchant_currency` field on this authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The total amount that was authorized or rejected. This amount is in the `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). `merchant_amount` should be the same as `amount`, unless `merchant_currency` and `currency` are different + @jsondata:Name {value: "merchant_amount"} + int merchantAmount; + # The total amount that was authorized or rejected. This amount is in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). `amount` should be the same as `merchant_amount`, unless `currency` and `merchant_currency` are different + int amount; + # History of every time a `pending_request` authorization was approved/declined, either by you directly or by Stripe (e.g. based on your spending_controls). If the merchant changes the authorization by performing an incremental authorization, you can look at this field to see the previous requests for the authorization. This field can be helpful in determining why a given authorization was approved/declined + @jsondata:Name {value: "request_history"} + IssuingAuthorizationRequest[] requestHistory; + @jsondata:Name {value: "verification_data"} + IssuingAuthorizationVerificationData verificationData; + # The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized + string? wallet?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The cardholder to whom this authorization belongs + string|IssuingCardholder? cardholder?; + # List of [transactions](https://stripe.com/docs/api/issuing/transactions) associated with this authorization + IssuingTransaction[] transactions; + # [Token](https://stripe.com/docs/api/issuing/tokens/object) object used for this authorization. If a network token was not used for this authorization, this field will be null + string|IssuingToken? token?; + # [Treasury](https://stripe.com/docs/api/treasury) details related to this authorization if it was created on a [FinancialAccount](https://stripe.com/docs/api/treasury/financial_accounts) + IssuingAuthorizationTreasury? treasury?; + # How the card details were provided + @jsondata:Name {value: "authorization_method"} + "chip"|"contactless"|"keyed_in"|"online"|"swipe" authorizationMethod; + IssuingCard card; + # String representing the object's type. Objects of the same type share the same value + "issuing.authorization" 'object; + # The current status of the authorization in its lifecycle + "closed"|"pending"|"reversed" status; +}; + +public type InvoicePayBody record {| + # Specifies which fields in the response should be expanded + InvoicePayBodyExpandItemsString[] expand?; + # ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the payment_method param or the invoice's default_payment_method or default_source, if set + string|"" mandate?; + # Boolean representing whether an invoice is paid outside of Stripe. This will result in no charge being made. Defaults to `false` + @jsondata:Name {value: "paid_out_of_band"} + boolean paidOutOfBand?; + # In cases where the source used to pay the invoice has insufficient funds, passing `forgive=true` controls whether a charge should be attempted for the full amount available on the source, up to the amount to fully pay the invoice. This effectively forgives the difference between the amount available on the source and the amount due. + # + # Passing `forgive=false` will fail the charge if the source hasn't been pre-funded with the right amount. An example for this case is with ACH Credit Transfers and wires: if the amount wired is less than the amount due by a small amount, you might want to forgive the difference. Defaults to `false` + boolean forgive?; + # Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `true` (off-session) + @jsondata:Name {value: "off_session"} + boolean offSession?; + # A payment source to be charged. The source must be the ID of a source belonging to the customer associated with the invoice being paid + @constraint:String {maxLength: 5000} + string 'source?; + # A PaymentMethod to be charged. The PaymentMethod must be the ID of a PaymentMethod belonging to the customer associated with the invoice being paid + @jsondata:Name {value: "payment_method"} + string paymentMethod?; +|}; + +# +public type PromotionCodesResourcePromotionCodeList record { + PromotionCode[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/promotion_codes`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetApplicationFeesIdQueriesExpandItemsString string; + +# +public type DeletedTestHelpersTestClock record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "test_helpers.test_clock" 'object; +}; + +# The `Charge` object represents a single attempt to move money into your Stripe account. +# PaymentIntent confirmation is the most common way to create Charges, but transferring +# money to a different Stripe account through Connect also creates Charges. +# Some legacy payment flows create Charges directly, which is not recommended for new integrations +public type Charge record { + # ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes) + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + @jsondata:Name {value: "billing_details"} + BillingDetails billingDetails; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "radar_options"} + RadarRadarOptions radarOptions?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Message to user further explaining reason for charge failure if available + @jsondata:Name {value: "failure_message"} + string? failureMessage?; + # Information on fraud assessments for the charge + @jsondata:Name {value: "fraud_details"} + ChargeFraudDetails? fraudDetails?; + # Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the charge if a partial refund was issued) + @jsondata:Name {value: "amount_refunded"} + int amountRefunded; + RefundList1? refunds?; + # For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details + @jsondata:Name {value: "transfer_data"} + ChargeTransferData? transferData?; + # This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt + @jsondata:Name {value: "receipt_url"} + string? receiptUrl?; + # Shipping information for the charge + Shipping? shipping?; + # ID of the review associated with this charge if one exists + string|Review? review?; + # If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured + boolean captured; + # The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined + @jsondata:Name {value: "calculated_statement_descriptor"} + string? calculatedStatementDescriptor?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false + boolean refunded; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Details about whether the payment was accepted, and why. See [understanding declines](https://stripe.com/docs/declines) for details + ChargeOutcome? outcome?; + # ID of the payment method used in this charge + @jsondata:Name {value: "payment_method"} + string? paymentMethod?; + # Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99) + int amount; + # Whether the charge has been disputed + boolean disputed; + # Error code explaining reason for charge failure if available (see [the errors section](https://stripe.com/docs/error-codes) for a list of codes) + @jsondata:Name {value: "failure_code"} + string? failureCode?; + # A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details + @jsondata:Name {value: "transfer_group"} + string? transferGroup?; + # The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers) for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Details about the payment method at the time of the transaction + @jsondata:Name {value: "payment_method_details"} + PaymentMethodDetails? paymentMethodDetails?; + # Amount in cents (or local equivalent) captured (can be less than the amount attribute on the charge if a partial capture was made) + @jsondata:Name {value: "amount_captured"} + int amountCaptured; + # The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details + @jsondata:Name {value: "source_transfer"} + string|Transfer? sourceTransfer?; + # ID of the balance transaction that describes the reversal of the balance on your account due to payment failure + @jsondata:Name {value: "failure_balance_transaction"} + string|BalanceTransaction? failureBalanceTransaction?; + # This is the transaction number that appears on email receipts sent for this charge. This attribute will be `null` until a receipt has been sent + @jsondata:Name {value: "receipt_number"} + string? receiptNumber?; + # ID of the transfer to the `destination` account (only applicable if the charge was created using the `destination` parameter) + string|Transfer transfer?; + # ID of the Connect application that created the charge + string|Application? application?; + # This is the email address that the receipt for this charge was sent to + @jsondata:Name {value: "receipt_email"} + string? receiptEmail?; + # `true` if the charge succeeded, or was successfully authorized for later capture + boolean paid; + # The application fee (if any) for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) for details + @jsondata:Name {value: "application_fee"} + string|ApplicationFee? applicationFee?; + # ID of the PaymentIntent associated with this charge, if one exists + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent? paymentIntent?; + # ID of the invoice this charge is for if one exists + string|Invoice? invoice?; + # Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor + @jsondata:Name {value: "statement_descriptor_suffix"} + string? statementDescriptorSuffix?; + # The amount of the application fee (if any) requested for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) for details + @jsondata:Name {value: "application_fee_amount"} + int? applicationFeeAmount?; + # ID of the customer this charge is for if one exists + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "charge" 'object; + # The status of the payment is either `succeeded`, `pending`, or `failed` + "failed"|"pending"|"succeeded" status; +}; + +# +public type MandateUsBankAccount record { + # Mandate collection method + @jsondata:Name {value: "collection_method"} + "paper" collectionMethod?; +}; + +public type AuthorizationControlsParamV2BlockedcategoriesItemsString "ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards"; + +# A list of TransactionEntries that are part of this Transaction. This cannot be expanded in any list endpoints +public type TreasuryTransactionsResourceTransactionEntryList1 record { + # Details about each object + TreasuryTransactionEntry[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/treasury/transaction_entries`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type AccountRefreshBody record {| + # The list of account features that you would like to refresh + ("balance"|"ownership"|"transactions")[] features; + # Specifies which fields in the response should be expanded + AccountRefreshBodyExpandItemsString[] expand?; +|}; + +# +public type PersonList record { + Person[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SourceTypeAuBecsDebit record { + @jsondata:Name {value: "bsb_number"} + string? bsbNumber?; + string? last4?; + string? fingerprint?; +}; + +@constraint:String {maxLength: 5000} +public type GetSourcesSourceSourceTransactionsQueriesExpandItemsString string; + +# +public type NotificationEventList record { + Event[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/events`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type TaxProductResourceTaxBreakdown record { + # Specifies whether the tax amount is included in the line item amount + boolean inclusive; + # The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + @jsondata:Name {value: "tax_rate_details"} + TaxProductResourceTaxRateDetails taxRateDetails; + # The reasoning behind this tax, for example, if the product is tax exempt. We might extend the possible values for this field to support new tax rules + @jsondata:Name {value: "taxability_reason"} + "customer_exempt"|"not_collecting"|"not_subject_to_tax"|"not_supported"|"portion_product_exempt"|"portion_reduced_rated"|"portion_standard_rated"|"product_exempt"|"product_exempt_holiday"|"proportionally_rated"|"reduced_rated"|"reverse_charge"|"standard_rated"|"taxable_basis_reduced"|"zero_rated" taxabilityReason; + # The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "taxable_amount"} + int taxableAmount; +}; + +# TransactionEntries represent individual units of money movements within a single [Transaction](https://stripe.com/docs/api#transactions) +public type TreasuryTransactionEntry record { + # The FinancialAccount associated with this object + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Details of the flow associated with the TransactionEntry + @jsondata:Name {value: "flow_details"} + TreasuryTransactionsResourceFlowDetails? flowDetails?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The specific money movement that generated the TransactionEntry + "credit_reversal"|"credit_reversal_posting"|"debit_reversal"|"inbound_transfer"|"inbound_transfer_return"|"issuing_authorization_hold"|"issuing_authorization_release"|"other"|"outbound_payment"|"outbound_payment_cancellation"|"outbound_payment_failure"|"outbound_payment_posting"|"outbound_payment_return"|"outbound_transfer"|"outbound_transfer_cancellation"|"outbound_transfer_failure"|"outbound_transfer_posting"|"outbound_transfer_return"|"received_credit"|"received_debit" 'type; + # When the TransactionEntry will impact the FinancialAccount's balance + @jsondata:Name {value: "effective_at"} + int effectiveAt; + # Type of the flow associated with the TransactionEntry + @jsondata:Name {value: "flow_type"} + "credit_reversal"|"debit_reversal"|"inbound_transfer"|"issuing_authorization"|"other"|"outbound_payment"|"outbound_transfer"|"received_credit"|"received_debit" flowType; + @jsondata:Name {value: "balance_impact"} + TreasuryTransactionsResourceBalanceImpact balanceImpact; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Token of the flow associated with the TransactionEntry + string? flow?; + # The Transaction associated with this object + string|TreasuryTransaction 'transaction; + # String representing the object's type. Objects of the same type share the same value + "treasury.transaction_entry" 'object; +}; + +public type GetIssuingPersonalizationDesignsQueriesLookupkeysItemsString string; + +# Verifications that Stripe performed on information that the cardholder provided to the merchant +public type VerificationDataSpecs record { + @jsondata:Name {value: "cvc_check"} + "match"|"mismatch"|"not_provided" cvcCheck?; + @jsondata:Name {value: "expiry_check"} + "match"|"mismatch"|"not_provided" expiryCheck?; + @jsondata:Name {value: "address_line1_check"} + "match"|"mismatch"|"not_provided" addressLine1Check?; + @jsondata:Name {value: "three_d_secure"} + ThreeDSecureSpecs threeDSecure?; + @jsondata:Name {value: "address_postal_code_check"} + "match"|"mismatch"|"not_provided" addressPostalCodeCheck?; + @jsondata:Name {value: "authentication_exemption"} + AuthenticationExemptionSpecs authenticationExemption?; +}; + +public type Created27RangeQuerySpecs302 int; + +# A Transaction represents a real transaction that affects a Financial Connections Account balance +public type FinancialConnectionsTransaction record { + # The amount of this transaction, in cents (or local equivalent) + int amount; + # Time at which the transaction was transacted. Measured in seconds since the Unix epoch + @jsondata:Name {value: "transacted_at"} + int transactedAt; + # The token of the transaction refresh that last updated or created this transaction + @jsondata:Name {value: "transaction_refresh"} + string transactionRefresh; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The description of this transaction + @constraint:String {maxLength: 5000} + string description; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + BankConnectionsResourceTransactionResourceStatusTransitions statusTransitions; + # Time at which the object was last updated. Measured in seconds since the Unix epoch + int updated; + # The ID of the Financial Connections Account this transaction belongs to + @constraint:String {maxLength: 5000} + string account; + # String representing the object's type. Objects of the same type share the same value + "financial_connections.transaction" 'object; + # The status of the transaction + "pending"|"posted"|"void" status; +}; + +public type Created21RangeQuerySpecs232 int; + +# +public type DeletedTerminalReader record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "terminal.reader" 'object; +}; + +# +public type PaymentMethodDetailsAuBecsDebit record { + # Bank-State-Branch number of the bank account + @jsondata:Name {value: "bsb_number"} + string? bsbNumber?; + # Last four digits of the bank account number + string? last4?; + # ID of the mandate used to make this payment + @constraint:String {maxLength: 5000} + string mandate?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; +}; + +# +public type DiscountsResourceStackableDiscount record { + # ID of the coupon to create a new discount for + string|Coupon? coupon?; + # ID of the promotion code to create a new discount for + @jsondata:Name {value: "promotion_code"} + string|PromotionCode? promotionCode?; + # ID of an existing discount on the object (or one of its ancestors) to reuse + string|Discount? discount?; +}; + +# +public type CardGeneratedFromPaymentMethodDetails record { + # The type of payment method transaction-specific details from the transaction that generated this `card` payment method. Always `card_present` + @constraint:String {maxLength: 5000} + string 'type; + @jsondata:Name {value: "card_present"} + PaymentMethodDetailsCardPresent cardPresent?; +}; + +public type TransfersBody record {| + # A positive integer in cents (or local equivalent) representing how much to transfer + int amount?; + # Specifies which fields in the response should be expanded + TransfersBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + # The ID of a connected Stripe account. See the Connect documentation for details + string destination; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # You can use this parameter to transfer funds from a charge before they are added to your available balance. A pending balance will transfer immediately but the funds will not become available until the original charge becomes available. [See the Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-availability) for details + @jsondata:Name {value: "source_transaction"} + string sourceTransaction?; + # 3-letter [ISO code for currency](https://stripe.com/docs/payouts) + string currency; + # The source balance to use for this transfer. One of `bank_account`, `card`, or `fpx`. For most users, this will default to `card` + @jsondata:Name {value: "source_type"} + "bank_account"|"card"|"fpx" sourceType?; +|}; + +# A hash containing directions for what this Coupon will apply discounts to +public type AppliesToParams record { + AppliesToParamsProductsItemsString[] products?; +}; + +# +public type PaymentPagesCheckoutSessionCurrencyConversion record { + # Creation currency of the CheckoutSession before localization + @jsondata:Name {value: "source_currency"} + string sourceCurrency; + # Total of all items in source currency after discounts and taxes are applied + @jsondata:Name {value: "amount_total"} + int amountTotal; + # Exchange rate used to convert source currency amounts to customer currency amounts + @jsondata:Name {value: "fx_rate"} + string fxRate; + # Total of all items in source currency before discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int amountSubtotal; +}; + +# +public type PaymentMethodDetailsPix record { + # Unique transaction id generated by BCB + @jsondata:Name {value: "bank_transaction_id"} + string? bankTransactionId?; +}; + +# +public type IssuingCardholderList record { + IssuingCardholder[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/cardholders`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type QuotesResourceComputed record { + QuotesResourceUpfront upfront; + # The definitive totals and line items the customer will be charged on a recurring basis. Takes into account the line items with recurring prices and discounts with `duration=forever` coupons only. Defaults to `null` if no inputted line items with recurring prices + QuotesResourceRecurring? recurring?; +}; + +public type ShippingDeliverBody record {| + # Specifies which fields in the response should be expanded + ShippingDeliverBodyExpandItemsString[] expand?; +|}; + +# +public type ConnectEmbeddedPayoutsConfigClaim record { + ConnectEmbeddedPayoutsFeatures features; + # Whether the embedded component is enabled + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetFinancialConnectionsAccountsQueriesExpandItemsString string; + +public type SourceTypeAchCreditTransfer record { + @jsondata:Name {value: "account_number"} + string? accountNumber?; + @jsondata:Name {value: "refund_routing_number"} + string? refundRoutingNumber?; + @jsondata:Name {value: "refund_account_holder_type"} + string? refundAccountHolderType?; + @jsondata:Name {value: "swift_code"} + string? swiftCode?; + @jsondata:Name {value: "bank_name"} + string? bankName?; + string? fingerprint?; + @jsondata:Name {value: "refund_account_holder_name"} + string? refundAccountHolderName?; + @jsondata:Name {value: "routing_number"} + string? routingNumber?; +}; + +# +public type TreasuryOutboundPaymentsResourceOutboundPaymentList record { + # Details about each object + TreasuryOutboundPayment[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/treasury/outbound_payments`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type BankConnectionsResourceTransactionList record { + # Details about each object + FinancialConnectionsTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/financial_connections/transactions`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type AccountRequirementsPendingverificationItemsString string; + +public type PersonRequirementsCurrentlydueItemsString string; + +# The person's registered address +public type AddressSpecs1 record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 100} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 200} + string line2?; + @constraint:String {maxLength: 200} + string line1?; +}; + +# +public type PaymentLinksResourcePaymentLinkList record { + PaymentLink[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/payment_links`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SourceTypeAlipay record { + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + @jsondata:Name {value: "data_string"} + string? dataString?; + @jsondata:Name {value: "native_url"} + string? nativeUrl?; +}; + +# +public type IssuingCardholderIndividualDob record { + # The month of birth, between 1 and 12 + int? month?; + # The four-digit year of birth + int? year?; + # The day of birth, between 1 and 31 + int? day?; +}; + +# +public type IssuingNetworkTokenDevice record { + # An obfuscated ID derived from the device ID + @jsondata:Name {value: "device_fingerprint"} + string deviceFingerprint?; + # The name of the device used for tokenization + @constraint:String {maxLength: 5000} + string name?; + # The geographic latitude/longitude coordinates of the device at provisioning time. The format is [+-]decimal/[+-]decimal + @constraint:String {maxLength: 5000} + string location?; + # The phone number of the device used for tokenization + @jsondata:Name {value: "phone_number"} + string phoneNumber?; + # The IP address of the device at provisioning time + @jsondata:Name {value: "ip_address"} + string ipAddress?; + # The type of device used for tokenization + "other"|"phone"|"watch" 'type?; +}; + +# +public type PortalFlowsAfterCompletionHostedConfirmation record { + # A custom message to display to the customer after the flow is completed + @jsondata:Name {value: "custom_message"} + string? customMessage?; +}; + +public type AfterCompletionRedirectParams record { + @constraint:String {maxLength: 2048} + string url; +}; + +public type InboundTransfers record { + AccessWithAchDetails ach?; +}; + +public type InvoiceDataParams record { + record {|string...;|} metadata?; + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + @constraint:String {maxLength: 5000} + string footer?; + @jsondata:Name {value: "custom_fields"} + record {string name; string value;}[]|"" customFields?; + @jsondata:Name {value: "rendering_options"} + record {""|"exclude_tax"|"include_inclusive_tax" amount_tax_display?;}|"" renderingOptions?; + @constraint:String {maxLength: 1500} + string description?; + Param issuer?; +}; + +# +public type PaymentMethodConfigResourceDisplayPreference record { + # The account's display preference + "none"|"off"|"on" preference; + # For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used + boolean? overridable?; + # The effective display preference value + "off"|"on" value; +}; + +public type FlightSegmentSpecs record { + @constraint:String {maxLength: 5000} + string carrier?; + @jsondata:Name {value: "flight_number"} + string flightNumber?; + @jsondata:Name {value: "departure_airport_code"} + string departureAirportCode?; + @jsondata:Name {value: "arrival_airport_code"} + string arrivalAirportCode?; + @jsondata:Name {value: "stopover_allowed"} + boolean stopoverAllowed?; + @jsondata:Name {value: "service_class"} + string serviceClass?; +}; + +@constraint:String {maxLength: 5000} +public type ReviewApproveBodyExpandItemsString string; + +# +public type MandatePaypal record { + # The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer + @jsondata:Name {value: "billing_agreement_id"} + string? billingAgreementId?; + # PayPal account PayerID. This identifier uniquely identifies the PayPal customer + @jsondata:Name {value: "payer_id"} + string? payerId?; +}; + +# Default configuration to be used on Stripe Tax calculations +public type DefaultsParam record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"inferred_by_currency" taxBehavior?; + @jsondata:Name {value: "tax_code"} + string taxCode?; +}; + +# +public type MandateSepaDebit record { + # The unique reference of the mandate + @constraint:String {maxLength: 5000} + string reference; + # The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively + @constraint:String {maxLength: 5000} + string url; +}; + +# +public type PaymentMethodFpx record { + # The customer's bank, if provided. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china` + "affin_bank"|"agrobank"|"alliance_bank"|"ambank"|"bank_islam"|"bank_muamalat"|"bank_of_china"|"bank_rakyat"|"bsn"|"cimb"|"deutsche_bank"|"hong_leong_bank"|"hsbc"|"kfh"|"maybank2e"|"maybank2u"|"ocbc"|"pb_enterprise"|"public_bank"|"rhb"|"standard_chartered"|"uob" bank; +}; + +@constraint:String {maxLength: 5000} +public type OutboundTransferPostBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type SubscriptionItemsBodyExpandItemsString string; + +public type IdFailBody record {| + # Specifies which fields in the response should be expanded + IdFailBodyExpandItemsString[] expand?; + @jsondata:Name {value: "failure_details"} + FailureDetailsParams failureDetails?; +|}; + +# Describes an owner of an account +public type FinancialConnectionsAccountOwner record { + # The ownership object that this owner belongs to + @constraint:String {maxLength: 5000} + string ownership; + # The timestamp of the refresh that updated this owner + @jsondata:Name {value: "refreshed_at"} + int? refreshedAt?; + # The raw phone number of the owner + string? phone?; + # The full name of the owner + @constraint:String {maxLength: 5000} + string name; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The email address of the owner + string? email?; + # String representing the object's type. Objects of the same type share the same value + "financial_connections.account_owner" 'object; + # The raw physical address of the owner + @jsondata:Name {value: "raw_address"} + string? rawAddress?; +}; + +@constraint:String {maxLength: 5000} +public type GetEventsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ChargeschargeBodyExpandItemsString string; + +public type SubscriptionCancelAtAnyOf1 int; + +public type filtersAccountsubcategoriesItemsString "checking"|"savings"; + +public type PaymentsFeaturesParam record { + @jsondata:Name {value: "capture_payments"} + boolean capturePayments?; + @jsondata:Name {value: "dispute_management"} + boolean disputeManagement?; + @jsondata:Name {value: "refund_management"} + boolean refundManagement?; + @jsondata:Name {value: "destination_on_behalf_of_charge_management"} + boolean destinationOnBehalfOfChargeManagement?; +}; + +public type OrderShipping record { + @constraint:String {maxLength: 5000} + string carrier?; + Address1 address; + @constraint:String {maxLength: 5000} + string phone?; + @constraint:String {maxLength: 5000} + string name?; + @jsondata:Name {value: "tracking_number"} + string trackingNumber?; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerCards +public type GetCustomersCustomerCardsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerCardsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Shipping information for this PaymentIntent +public type OptionalFieldsShipping1 record { + @constraint:String {maxLength: 5000} + string carrier?; + OptionalFieldsAddress address; + @constraint:String {maxLength: 5000} + string phone?; + @constraint:String {maxLength: 5000} + string name; + @jsondata:Name {value: "tracking_number"} + string trackingNumber?; +}; + +@constraint:String {maxLength: 5000} +public type InvoiceAddLinesBodyExpandItemsString string; + +# +public type InvoicesResourceInvoiceRendering record { + # How line-item prices and amounts will be displayed with respect to tax on invoice PDFs + @jsondata:Name {value: "amount_tax_display"} + string? amountTaxDisplay?; + # Invoice pdf rendering options + InvoiceRenderingPdf? pdf?; +}; + +# +public type PaymentMethodCardPresentNetworks record { + # All available networks for the card + PaymentMethodCardPresentNetworksAvailableItemsString[] available; + # The preferred network for the card + string? preferred?; +}; + +public type ExternalAccountsidBody record {| + # The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza` + @jsondata:Name {value: "account_type"} + "checking"|"futsu"|"savings"|"toza" accountType?; + # 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` + record {|string...;|}|"" metadata?; + ExternalAccountDocumentsParam documents?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + # Billing address country, if provided when creating card + @jsondata:Name {value: "address_country"} + string addressCountry?; + # State/County/Province/Region + @jsondata:Name {value: "address_state"} + string addressState?; + # Two digit number representing the card’s expiration month + @jsondata:Name {value: "exp_month"} + string expMonth?; + # Four digit number representing the card’s expiration year + @jsondata:Name {value: "exp_year"} + string expYear?; + # City/District/Suburb/Town/Village + @jsondata:Name {value: "address_city"} + string addressCity?; + # Specifies which fields in the response should be expanded + ExternalAccountsidBodyExpandItemsString[] expand?; + # Address line 2 (Apartment/Suite/Unit/Building) + @jsondata:Name {value: "address_line2"} + string addressLine2?; + # Address line 1 (Street address/PO Box/Company name) + @jsondata:Name {value: "address_line1"} + string addressLine1?; + # The type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + ""|"company"|"individual" accountHolderType?; + # Cardholder name + @constraint:String {maxLength: 5000} + string name?; + # ZIP or postal code + @jsondata:Name {value: "address_zip"} + string addressZip?; + # When set to true, this becomes the default external account for its currency + @jsondata:Name {value: "default_for_currency"} + boolean defaultForCurrency?; +|}; + +# Represents the Queries record for the operation: GetPayoutsPayout +public type GetPayoutsPayoutQueries record { + # Specifies which fields in the response should be expanded + GetPayoutsPayoutQueriesExpandItemsString[] expand?; +}; + +# +public type AccountFutureRequirements record { + # Fields that need to be collected to keep the account enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash + @jsondata:Name {value: "currently_due"} + AccountFutureRequirementsCurrentlydueItemsString[]? currentlyDue?; + # Date on which `future_requirements` merges with the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on its enablement state prior to transitioning + @jsondata:Name {value: "current_deadline"} + int? currentDeadline?; + # Fields that are due and can be satisfied by providing the corresponding alternative fields instead + AccountRequirementsAlternative[]? alternatives?; + # Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well + @jsondata:Name {value: "eventually_due"} + AccountFutureRequirementsEventuallydueItemsString[]? eventuallyDue?; + # Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due` + @jsondata:Name {value: "past_due"} + AccountFutureRequirementsPastdueItemsString[]? pastDue?; + # This is typed as a string for consistency with `requirements.disabled_reason` + @jsondata:Name {value: "disabled_reason"} + string? disabledReason?; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[]? errors?; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + AccountFutureRequirementsPendingverificationItemsString[]? pendingVerification?; +}; + +# +public type IssuingNetworkTokenAddress record { + # The postal code of the cardholder tokenizing the card + @jsondata:Name {value: "postal_code"} + string postalCode; + # The street address of the cardholder tokenizing the card + @constraint:String {maxLength: 5000} + string line1; +}; + +public type CustomersBody record {| + @jsondata:Name {value: "invoice_settings"} + CustomerParam invoiceSettings?; + # 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` + record {|string...;|}|"" metadata?; + # ID of the test clock to attach to the customer + @jsondata:Name {value: "test_clock"} + string testClock?; + # The customer's address + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + @constraint:String {maxLength: 5000} + string coupon?; + # The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers + @jsondata:Name {value: "invoice_prefix"} + string invoicePrefix?; + # The customer's tax exemption. One of `none`, `exempt`, or `reverse` + @jsondata:Name {value: "tax_exempt"} + ""|"exempt"|"none"|"reverse" taxExempt?; + # The ID of a promotion code to apply to the customer. The customer will have a discount applied on all recurring payments. Charges you create through the API will not have the discount + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + # The sequence to be used on the customer's next invoice. Defaults to 1 + @jsondata:Name {value: "next_invoice_sequence"} + int nextInvoiceSequence?; + # An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard + @constraint:String {maxLength: 5000} + string description?; + TaxParam tax?; + @constraint:String {maxLength: 5000} + string 'source?; + @jsondata:Name {value: "cash_balance"} + CashBalanceParam cashBalance?; + # The customer's tax IDs + @jsondata:Name {value: "tax_id_data"} + DataParams[] taxIdData?; + # Customer's preferred languages, ordered by preference + @jsondata:Name {value: "preferred_locales"} + CustomersBodyPreferredlocalesItemsString[] preferredLocales?; + # Specifies which fields in the response should be expanded + CustomersBodyExpandItemsString[] expand?; + # An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice + int balance?; + # The customer's shipping information. Appears on invoices emailed to this customer + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string name; string phone?;}|"" shipping?; + # The customer's phone number + @constraint:String {maxLength: 20} + string phone?; + # The customer's full name or business name + @constraint:String {maxLength: 256} + string name?; + # Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters* + @constraint:String {maxLength: 512} + string email?; + @jsondata:Name {value: "payment_method"} + string paymentMethod?; +|}; + +# A VerificationReport is the result of an attempt to collect and verify data from a user. +# The collection of verification checks performed is determined from the `type` and `options` +# parameters used. You can find the result of each verification check performed in the +# appropriate sub-resource: `document`, `id_number`, `selfie`. +# +# Each VerificationReport contains a copy of any data collected by the user as well as +# reference IDs which can be used to access collected images through the [FileUpload](https://stripe.com/docs/api/files) +# API. To configure and create VerificationReports, use the +# [VerificationSession](https://stripe.com/docs/api/identity/verification_sessions) API. +# +# Related guide: [Accessing verification results](https://stripe.com/docs/identity/verification-sessions#results) +public type IdentityVerificationReport record { + @jsondata:Name {value: "id_number"} + GelatoIdNumberReport idNumber?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + GelatoDocumentReport document?; + # Type of report + "document"|"id_number"|"verification_flow" 'type; + GelatoPhoneReport phone?; + # ID of the VerificationSession that created this report + @jsondata:Name {value: "verification_session"} + string? verificationSession?; + GelatoSelfieReport selfie?; + GelatoVerificationReportOptions options?; + # A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems + @jsondata:Name {value: "client_reference_id"} + string? clientReferenceId?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + GelatoEmailReport email?; + # String representing the object's type. Objects of the same type share the same value + "identity.verification_report" 'object; + # The configuration token of a Verification Flow from the dashboard + @jsondata:Name {value: "verification_flow"} + string verificationFlow?; +}; + +@constraint:String {maxLength: 5000} +public type BankConnectionsResourceLinkAccountSessionFiltersCountriesItemsString string; + +# Invoice Items represent the component lines of an [invoice](https://stripe.com/docs/api/invoices). An invoice item is added to an +# invoice by creating or updating it with an `invoice` field, at which point it will be included as +# [an invoice line item](https://stripe.com/docs/api/invoices/line_item) within +# [invoice.lines](https://stripe.com/docs/api/invoices/object#invoice_object-lines). +# +# Invoice Items can be created before you are ready to actually send the invoice. This can be particularly useful when combined +# with a [subscription](https://stripe.com/docs/api/subscriptions). Sometimes you want to add a charge or credit to a customer, but actually charge +# or credit the customer’s card only at the end of a regular billing cycle. This is useful for combining several charges +# (to minimize per-transaction fees), or for having Stripe tabulate your usage-based billing totals. +# +# Related guides: [Integrate with the Invoicing API](https://stripe.com/docs/invoicing/integration), [Subscription Invoices](https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items) +public type Invoiceitem record { + # Time at which the object was created. Measured in seconds since the Unix epoch + int date; + # Amount (in the `currency` specified) of the invoice item. This should always be equal to `unit_amount * quantity` + int amount; + # 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 + record {|string...;|}? metadata?; + InvoiceLineItemPeriod period; + # ID of the test clock this invoice item belongs to + @jsondata:Name {value: "test_clock"} + string|TestHelpersTestClock? testClock?; + # Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for + int quantity; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Same as `unit_amount`, but contains a decimal value with at most 12 decimal places + @jsondata:Name {value: "unit_amount_decimal"} + string? unitAmountDecimal?; + # The subscription that this invoice item has been created for, if any + string|Subscription? subscription?; + # Unit amount (in the `currency` specified) of the invoice item + @jsondata:Name {value: "unit_amount"} + int? unitAmount?; + # Whether the invoice item was created automatically as a proration adjustment when the customer switched plans + boolean proration; + # The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item + @jsondata:Name {value: "tax_rates"} + TaxRate[]? taxRates?; + # The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount + InvoiceitemDiscounts[]? discounts?; + # The price of the invoice item + Price? price?; + # The subscription item that this invoice item has been created for, if any + @jsondata:Name {value: "subscription_item"} + string subscriptionItem?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The ID of the invoice this invoice item belongs to + string|Invoice? invoice?; + # If true, discounts will apply to this invoice item. Always false for prorations + boolean discountable; + # The ID of the customer who will be billed when this invoice item is billed + string|Customer|DeletedCustomer customer; + # String representing the object's type. Objects of the same type share the same value + "invoiceitem" 'object; +}; + +# Payment method-specific configuration for this OutboundPayment +public type PaymentMethodOptions2 record { + @jsondata:Name {value: "us_bank_account"} + record {"ach"|"us_domestic_wire" network?;}|"" usBankAccount?; +}; + +# +public type IssuingPersonalizationDesignPreferences record { + # Whether this personalization design is used to create cards when one is not specified and a default for this connected account does not exist + @jsondata:Name {value: "is_platform_default"} + boolean? isPlatformDefault?; + # Whether we use this personalization design to create cards when one isn't specified. A connected account uses the Connect platform's default design if no personalization design is set as the default design + @jsondata:Name {value: "is_default"} + boolean isDefault; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerCardsId +public type GetCustomersCustomerCardsIdQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerCardsIdQueriesExpandItemsString[] expand?; +}; + +public type PaymentMethodOptions1 record { + record {"de"|"en"|"fr"|"nl" preferred_language?;}|"" bancontact?; + @jsondata:Name {value: "acss_debit"} + record {record {"business"|"personal" transaction_type?;} mandate_options?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" acssDebit?; + @jsondata:Name {value: "us_bank_account"} + record {record {record {("checking"|"savings")[] account_subcategories?;} filters?; (financial_connectionsPermissionsItemsString)[] permissions?; ("balances"|"ownership"|"transactions")[] prefetch?;} financial_connections?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {record {record {string country;} eu_bank_transfer?; string 'type?;} bank_transfer?; string funding_type?;}|"" customerBalance?; + @jsondata:Name {value: "sepa_debit"} + record {}|"" sepaDebit?; + record {}|"" konbini?; + record {record {boolean enabled?; record {int count; "month" interval; "fixed_count" 'type;}|"" plan?;} installments?; "any"|"automatic"|"challenge" request_three_d_secure?;}|"" card?; +}; + +# Hash describing payment method configuration details +public type PaymentMethodOptions3 record { + @jsondata:Name {value: "us_bank_account"} + record {"ach"|"us_domestic_wire" network?;}|"" usBankAccount?; +}; + +# +public type IssuingTransactionFleetData record { + # The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase` + @jsondata:Name {value: "purchase_type"} + string? purchaseType?; + # Answers to prompts presented to cardholder at point of sale + @jsondata:Name {value: "cardholder_prompt_data"} + IssuingTransactionFleetCardholderPromptData? cardholderPromptData?; + # The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service` + @jsondata:Name {value: "service_type"} + string? serviceType?; + # More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data + @jsondata:Name {value: "reported_breakdown"} + IssuingTransactionFleetReportedBreakdown? reportedBreakdown?; +}; + +# A Physical Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card +public type IssuingPhysicalBundle record { + IssuingPhysicalBundleFeatures features; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Friendly display name + @constraint:String {maxLength: 5000} + string name; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Whether this physical bundle is a standard Stripe offering or custom-made for you + "custom"|"standard" 'type; + # String representing the object's type. Objects of the same type share the same value + "issuing.physical_bundle" 'object; + # Whether this physical bundle can be used to create cards + "active"|"inactive"|"review" status; +}; + +# +public type PaymentIntentNextActionDisplayBankTransferInstructions record { + # A string identifying this payment. Instruct your customer to include this code in the reference or memo field of their bank transfer + string? reference?; + # The remaining amount that needs to be transferred to complete the payment + @jsondata:Name {value: "amount_remaining"} + int? amountRemaining?; + # A link to a hosted page that guides your customer through completing the transfer + @jsondata:Name {value: "hosted_instructions_url"} + string? hostedInstructionsUrl?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string? currency?; + # Type of bank transfer + "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer" 'type; + # A list of financial addresses that can be used to fund the customer balance + @jsondata:Name {value: "financial_addresses"} + FundingInstructionsBankTransferFinancialAddress[] financialAddresses?; +}; + +public type SubscriptionDataInvoiceSettingsParams record { + Param3 issuer?; +}; + +@constraint:String {maxLength: 5000} +public type IdDeactivateBodyExpandItemsString string; + +public type CustomFieldTextParam1 record { + @jsondata:Name {value: "maximum_length"} + int maximumLength?; + @jsondata:Name {value: "minimum_length"} + int minimumLength?; +}; + +public type CustomfieldsItemsObject record { + string name; + string value; +}; + +# Usage records allow you to report customer usage and metrics to Stripe for +# metered billing of subscription prices. +# +# Related guide: [Metered billing](https://stripe.com/docs/billing/subscriptions/metered-billing) +# +# This is our legacy usage-based billing API. See the [updated usage-based billing docs](https://docs.stripe.com/billing/subscriptions/usage-based) +public type UsageRecord record { + # The usage quantity for the specified date + int quantity; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The ID of the subscription item this usage record contains data for + @jsondata:Name {value: "subscription_item"} + string subscriptionItem; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "usage_record" 'object; + # The timestamp when this usage occurred + int timestamp; +}; + +public type SubscriptionDefaultTaxRatesSubscriptionDefaultTaxRatesAnyOf12 ""; + +# +public type SubscriptionsResourcePaymentMethodOptions record { + # This sub-hash contains details about the Bancontact payment method options to pass to invoices created by the subscription + InvoicePaymentMethodOptionsBancontact? bancontact?; + # This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to invoices created by the subscription + @jsondata:Name {value: "acss_debit"} + InvoicePaymentMethodOptionsAcssDebit? acssDebit?; + # This sub-hash contains details about the ACH direct debit payment method options to pass to invoices created by the subscription + @jsondata:Name {value: "us_bank_account"} + InvoicePaymentMethodOptionsUsBankAccount? usBankAccount?; + # This sub-hash contains details about the Bank transfer payment method options to pass to invoices created by the subscription + @jsondata:Name {value: "customer_balance"} + InvoicePaymentMethodOptionsCustomerBalance? customerBalance?; + # This sub-hash contains details about the SEPA Direct Debit payment method options to pass to invoices created by the subscription + @jsondata:Name {value: "sepa_debit"} + InvoicePaymentMethodOptionsSepaDebit? sepaDebit?; + # This sub-hash contains details about the Konbini payment method options to pass to invoices created by the subscription + InvoicePaymentMethodOptionsKonbini? konbini?; + # This sub-hash contains details about the Card payment method options to pass to invoices created by the subscription + SubscriptionPaymentMethodOptionsCard? card?; +}; + +public type SubscriptionBillingCycleAnchor1 SubscriptionBillingCycleAnchor1AnyOf1|SubscriptionBillingCycleAnchor1SubscriptionBillingCycleAnchor1AnyOf12; + +# +public type UsBankAccountNetworks record { + # The preferred network + string? preferred?; + # All supported networks + ("ach"|"us_domestic_wire")[] supported; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerCardsIdQueriesExpandItemsString string; + +public type DisputesdisputeBody record {| + # Specifies which fields in the response should be expanded + DisputesdisputeBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + DisputeEvidenceParams evidence?; + # Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default) + boolean submit?; +|}; + +# Represents the Queries record for the operation: GetCustomersCustomerSourcesId +public type GetCustomersCustomerSourcesIdQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerSourcesIdQueriesExpandItemsString[] expand?; +}; + +# +public type SourceTransactionGbpCreditTransferData record { + # Sender entered arbitrary information about the transfer + @constraint:String {maxLength: 5000} + string reference?; + # Last 4 digits of sender account number associated with the transfer + @constraint:String {maxLength: 5000} + string last4?; + # The credit transfer rails the sender used to push this transfer. The possible rails are: Faster Payments, BACS, CHAPS, and wire transfers. Currently only Faster Payments is supported + @jsondata:Name {value: "funding_method"} + string fundingMethod?; + # Sender account number associated with the transfer + @jsondata:Name {value: "sender_account_number"} + string senderAccountNumber?; + # Sender sort code associated with the transfer + @jsondata:Name {value: "sender_sort_code"} + string senderSortCode?; + # Bank account fingerprint associated with the Stripe owned bank account receiving the transfer + @constraint:String {maxLength: 5000} + string fingerprint?; + # Sender name associated with the transfer + @jsondata:Name {value: "sender_name"} + string senderName?; +}; + +public type PaymentIntentPaymentmethodtypesItemsString string; + +# +public type VerificationSessionRedaction record { + # Indicates whether this object and its related objects have been redacted or not + "processing"|"redacted" status; +}; + +# +public type PortalFlowsFlow record { + # Configuration when `flow.type=subscription_cancel` + @jsondata:Name {value: "subscription_cancel"} + PortalFlowsFlowSubscriptionCancel? subscriptionCancel?; + @jsondata:Name {value: "after_completion"} + PortalFlowsFlowAfterCompletion afterCompletion; + # Type of flow that the customer will go through + "payment_method_update"|"subscription_cancel"|"subscription_update"|"subscription_update_confirm" 'type; + # Configuration when `flow.type=subscription_update` + @jsondata:Name {value: "subscription_update"} + PortalFlowsFlowSubscriptionUpdate? subscriptionUpdate?; + # Configuration when `flow.type=subscription_update_confirm` + @jsondata:Name {value: "subscription_update_confirm"} + PortalFlowsFlowSubscriptionUpdateConfirm? subscriptionUpdateConfirm?; +}; + +# +public type NotificationEventData record { + # Object containing the names of the updated attributes and their values prior to the event (only included in events of type `*.updated`). If an array attribute has any updated elements, this object contains the entire array. In Stripe API versions 2017-04-06 or earlier, an updated array attribute in this object includes only the updated array elements + @jsondata:Name {value: "previous_attributes"} + record {} previousAttributes?; + # Object containing the API resource relevant to the event. For example, an `invoice.created` event will have a full [invoice object](https://stripe.com/docs/api#invoice_object) as the value of the object key + record {} 'object; +}; + +# Represents the Queries record for the operation: GetTreasuryFinancialAccounts +public type GetTreasuryFinancialAccountsQueries record { + # An object ID cursor for use in pagination + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTreasuryFinancialAccountsQueriesExpandItemsString[] expand?; + # Only return FinancialAccounts that were created during the given date interval + Created43 created?; + # A limit ranging from 1 to 100 (defaults to 10) + int 'limit?; + # An object ID cursor for use in pagination + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type BalanceTransactionstransactionBody record {| + # Specifies which fields in the response should be expanded + BalanceTransactionstransactionBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 350} + string description?; +|}; + +# +public type MandatePaymentMethodDetails record { + @jsondata:Name {value: "acss_debit"} + MandateAcssDebit acssDebit?; + @jsondata:Name {value: "au_becs_debit"} + MandateAuBecsDebit auBecsDebit?; + @jsondata:Name {value: "bacs_debit"} + MandateBacsDebit bacsDebit?; + @jsondata:Name {value: "us_bank_account"} + MandateUsBankAccount usBankAccount?; + MandateLink link?; + MandateCashapp cashapp?; + @jsondata:Name {value: "sepa_debit"} + MandateSepaDebit sepaDebit?; + @jsondata:Name {value: "amazon_pay"} + MandateAmazonPay amazonPay?; + # This mandate corresponds with a specific payment method type. The `payment_method_details` includes an additional hash with the same name and contains mandate information that's specific to that payment method + @constraint:String {maxLength: 5000} + string 'type; + MandatePaypal paypal?; + CardMandatePaymentMethodDetails card?; + @jsondata:Name {value: "revolut_pay"} + MandateRevolutPay revolutPay?; +}; + +# Represents the Queries record for the operation: GetFinancialConnectionsAccountsAccountOwners +public type GetFinancialConnectionsAccountsAccountOwnersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetFinancialConnectionsAccountsAccountOwnersQueriesExpandItemsString[] expand?; + # The ID of the ownership object to fetch owners from + @constraint:String {maxLength: 5000} + string ownership; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers` +public type TransformUsageParam record { + "down"|"up" round; + @jsondata:Name {value: "divide_by"} + int divideBy; +}; + +# +public type PaymentMethodOptionsGiropay record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type GetApplePayDomainsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type PlansBodyExpandItemsString string; + +# +public type AccountCapabilityFutureRequirements record { + # Fields that need to be collected to keep the capability enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash + @jsondata:Name {value: "currently_due"} + AccountCapabilityFutureRequirementsCurrentlydueItemsString[] currentlyDue; + # Date on which `future_requirements` merges with the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on the capability's enablement state prior to transitioning + @jsondata:Name {value: "current_deadline"} + int? currentDeadline?; + # Fields that are due and can be satisfied by providing the corresponding alternative fields instead + AccountRequirementsAlternative[]? alternatives?; + # Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well + @jsondata:Name {value: "eventually_due"} + AccountCapabilityFutureRequirementsEventuallydueItemsString[] eventuallyDue; + # Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due` + @jsondata:Name {value: "past_due"} + AccountCapabilityFutureRequirementsPastdueItemsString[] pastDue; + # This is typed as an enum for consistency with `requirements.disabled_reason`, but it safe to assume `future_requirements.disabled_reason` is null because fields in `future_requirements` will never disable the account + @jsondata:Name {value: "disabled_reason"} + "other"|"paused.inactivity"|"pending.onboarding"|"pending.review"|"platform_disabled"|"platform_paused"|"rejected.inactivity"|"rejected.other"|"rejected.unsupported_business"|"requirements.fields_needed"? disabledReason?; + # Fields that are `currently_due` and need to be collected again because validation or verification failed + AccountRequirementsError[] errors; + # Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending + @jsondata:Name {value: "pending_verification"} + AccountCapabilityFutureRequirementsPendingverificationItemsString[] pendingVerification; +}; + +# +public type PaymentPagesCheckoutSessionConsentCollection record { + # If set to `auto`, enables the collection of customer consent for promotional communications. The Checkout + # Session will determine whether to display an option to opt into promotional communication + # from the merchant depending on the customer's locale. Only available to US merchants + "auto"|"none"? promotions?; + # If set to `hidden`, it will hide legal text related to the reuse of a payment method + @jsondata:Name {value: "payment_method_reuse_agreement"} + PaymentPagesCheckoutSessionPaymentMethodReuseAgreement? paymentMethodReuseAgreement?; + # If set to `required`, it requires customers to accept the terms of service before being able to pay + @jsondata:Name {value: "terms_of_service"} + "none"|"required"? termsOfService?; +}; + +# A billing meter event represents a customer's usage of a product. Meter events are used to bill a customer based on their usage. +# Meter events are associated with billing meters, which define the shape of the event's payload and how those events are aggregated for billing +public type BillingMeterEvent record { + # A unique identifier for the event + @constraint:String {maxLength: 5000} + string identifier; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The payload of the event. This contains the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://stripe.com/docs/billing/subscriptions/usage-based/recording-usage#payload-key-overrides) + record {|string...;|} payload; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The name of the meter event. Corresponds with the `event_name` field on a meter + @jsondata:Name {value: "event_name"} + string eventName; + # String representing the object's type. Objects of the same type share the same value + "billing.meter_event" 'object; + # The timestamp passed in when creating the event. Measured in seconds since the Unix epoch + int timestamp; +}; + +# List of ForwardingRequest data +public type ForwardingRequestList record { + ForwardingRequest[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SubscriptionItemsitemBody1 record {| + # Delete all usage for the given subscription item. Allowed only when the current plan's `usage_type` is `metered` + @jsondata:Name {value: "clear_usage"} + boolean clearUsage?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + # If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint + @jsondata:Name {value: "proration_date"} + int prorationDate?; +|}; + +# Represents the Queries record for the operation: GetCreditNotesCreditNoteLines +public type GetCreditNotesCreditNoteLinesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCreditNotesCreditNoteLinesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type TaxRegistrationsBodyExpandItemsString string; + +# Additional information about a `company` cardholder +public type CompanyParam record { + @jsondata:Name {value: "tax_id"} + string taxId?; +}; + +# +public type SubscriptionDetailsData record { + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) defined as subscription metadata when an invoice is created. Becomes an immutable snapshot of the subscription metadata at the time of invoice finalization. + # *Note: This attribute is populated only for invoices created on or after June 29, 2023.* + record {|string...;|}? metadata?; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationApproveBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPromotionCodesPromotionCodeQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetEntitlementsActiveEntitlementsId +public type GetEntitlementsActiveEntitlementsIdQueries record { + # Specifies which fields in the response should be expanded + GetEntitlementsActiveEntitlementsIdQueriesExpandItemsString[] expand?; +}; + +# +public type SubscriptionScheduleCurrentPhase record { + # The end of this phase of the subscription schedule + @jsondata:Name {value: "end_date"} + int endDate; + # The start of this phase of the subscription schedule + @jsondata:Name {value: "start_date"} + int startDate; +}; + +# +public type SetupIntentPaymentMethodOptionsPaypal record { + # The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer + @jsondata:Name {value: "billing_agreement_id"} + string? billingAgreementId?; +}; + +public type TaxRatesBody record {| + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country?; + # This specifies if the tax rate is inclusive or exclusive + boolean inclusive; + # Specifies which fields in the response should be expanded + TaxRatesBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The high-level tax type, such as `vat` or `sales_tax` + @jsondata:Name {value: "tax_type"} + "amusement_tax"|"communications_tax"|"gst"|"hst"|"igst"|"jct"|"lease_tax"|"pst"|"qst"|"rst"|"sales_tax"|"vat" taxType?; + # The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice + @constraint:String {maxLength: 50} + string jurisdiction?; + # This represents the tax rate percent out of 100 + decimal percentage; + # Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set + boolean active?; + # An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers + @constraint:String {maxLength: 5000} + string description?; + # [ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, "NY" for New York, United States + @constraint:String {maxLength: 2} + string state?; + # The display name of the tax rate, which will be shown to users + @jsondata:Name {value: "display_name"} + string displayName; +|}; + +# +public type AutomaticTax record { + # The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account + ConnectAccountReference? liability?; + # Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices + boolean enabled; + # The status of the most recent automated tax calculation for this invoice + "complete"|"failed"|"requires_location_inputs"? status?; +}; + +# Represents the Queries record for the operation: GetProducts +public type GetProductsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetProductsQueriesExpandItemsString[] expand?; + # Only return products that can be shipped (i.e., physical, not digital products) + boolean shippable?; + # Only return products that were created during the given date interval + Created27 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return products that are active or inactive (e.g., pass `false` to list all inactive products) + boolean active?; + # Only return products with the given IDs. Cannot be used with [starting_after](https://stripe.com/docs/api#list_products-starting_after) or [ending_before](https://stripe.com/docs/api#list_products-ending_before) + GetProductsQueriesIdsItemsString[] ids?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return products with the given url + @constraint:String {maxLength: 5000} + string url?; +}; + +# A Personalization Design is a logical grouping of a Physical Bundle, card logo, and carrier text that represents a product line +public type IssuingPersonalizationDesign record { + # 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 + record {|string...;|} metadata; + IssuingPersonalizationDesignPreferences preferences; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Hash containing carrier text, for use with physical bundles that support carrier text + @jsondata:Name {value: "carrier_text"} + IssuingPersonalizationDesignCarrierText? carrierText?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "rejection_reasons"} + IssuingPersonalizationDesignRejectionReasons rejectionReasons; + # The physical bundle object belonging to this personalization design + @jsondata:Name {value: "physical_bundle"} + string|IssuingPhysicalBundle physicalBundle; + # Friendly display name + string? name?; + # A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters + @jsondata:Name {value: "lookup_key"} + string? lookupKey?; + # The file for the card logo to use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo` + @jsondata:Name {value: "card_logo"} + string|File? cardLogo?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "issuing.personalization_design" 'object; + # Whether this personalization design can be used to create cards + "active"|"inactive"|"rejected"|"review" status; +}; + +public type TaxIdsBody record {| + OwnerParams1 owner?; + # Specifies which fields in the response should be expanded + TaxIdsBodyExpandItemsString[] expand?; + # Type of the tax ID, one of `ad_nrt`, `ae_trn`, `ar_cuit`, `au_abn`, `au_arn`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `hk_br`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kr_brn`, `kz_bin`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sv_nit`, `th_vat`, `tr_tin`, `tw_vat`, `ua_vat`, `us_ein`, `uy_ruc`, `ve_rif`, `vn_tin`, or `za_vat` + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + # Value of the tax ID + string value; +|}; + +public type FeaturesParam record { + @jsondata:Name {value: "payment_method_redisplay"} + "disabled"|"enabled" paymentMethodRedisplay?; + @jsondata:Name {value: "payment_method_redisplay_limit"} + int paymentMethodRedisplayLimit?; + @jsondata:Name {value: "payment_method_save_usage"} + "off_session"|"on_session" paymentMethodSaveUsage?; + @jsondata:Name {value: "payment_method_allow_redisplay_filters"} + ("always"|"limited"|"unspecified")[] paymentMethodAllowRedisplayFilters?; + @jsondata:Name {value: "payment_method_remove"} + "disabled"|"enabled" paymentMethodRemove?; + @jsondata:Name {value: "payment_method_save"} + "disabled"|"enabled" paymentMethodSave?; +}; + +# +public type IssuingNetworkTokenNetworkData record { + IssuingNetworkTokenVisa visa?; + IssuingNetworkTokenMastercard mastercard?; + # The network that the token is associated with. An additional hash is included with a name matching this value, containing tokenization data specific to the card network + "mastercard"|"visa" 'type; + @jsondata:Name {value: "wallet_provider"} + IssuingNetworkTokenWalletProvider walletProvider?; + IssuingNetworkTokenDevice device?; +}; + +# +public type PaymentIntentNextActionKonbiniMinistop record { + # The confirmation number + @jsondata:Name {value: "confirmation_number"} + string confirmationNumber?; + # The payment code + @jsondata:Name {value: "payment_code"} + string paymentCode; +}; + +# +public type PaymentPagesCheckoutSessionCustomFieldsNumeric record { + # The maximum character length constraint for the customer's input + @jsondata:Name {value: "maximum_length"} + int? maximumLength?; + # The value that will pre-fill the field on the payment page + @jsondata:Name {value: "default_value"} + string? defaultValue?; + # The value entered by the customer, containing only digits + string? value?; + # The minimum character length requirement for the customer's input + @jsondata:Name {value: "minimum_length"} + int? minimumLength?; +}; + +# External accounts (bank accounts and debit cards) currently attached to this account. External accounts are only returned for requests where `controller[is_controller]` is true +public type ExternalAccountList1 record { + # The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards + Polymorphic[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type TreasuryReceivedCreditsResourceSourceFlowsDetails record { + @jsondata:Name {value: "outbound_payment"} + TreasuryOutboundPayment outboundPayment?; + Payout payout?; + # The type of the source flow that originated the ReceivedCredit + "credit_reversal"|"other"|"outbound_payment"|"payout" 'type; + @jsondata:Name {value: "credit_reversal"} + TreasuryCreditReversal creditReversal?; +}; + +public type AddressSpecs record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 100} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 200} + string line2?; + @constraint:String {maxLength: 200} + string line1?; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerTaxIds +public type GetCustomersCustomerTaxIdsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerTaxIdsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type QuoteDefaultTaxRates DefaultTaxRatesAnyOf1|TaxRate; + +# +public type PaymentMethodOptionsUsBankAccountMandateOptions record { + # Mandate collection method + @jsondata:Name {value: "collection_method"} + "paper" collectionMethod?; +}; + +@constraint:String {maxLength: 5000} +public type InvoiceitemsinvoiceitemBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TaxSettingsBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetProductsProductFeatures +public type GetProductsProductFeaturesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetProductsProductFeaturesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type SubscriptionCancelAt SubscriptionCancelAtAnyOf1|SubscriptionCancelAtSubscriptionCancelAtAnyOf12; + +# +public type BankConnectionsResourceBalanceRefresh record { + # The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch + @jsondata:Name {value: "last_attempted_at"} + int lastAttemptedAt; + # Time at which the next balance refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch + @jsondata:Name {value: "next_refresh_available_at"} + int? nextRefreshAvailableAt?; + # The status of the last refresh attempt + "failed"|"pending"|"succeeded" status; +}; + +public type QuotesquoteBody record {| + @jsondata:Name {value: "invoice_settings"} + QuoteParam invoiceSettings?; + # The tax rates that will apply to any line item that does not have `tax_rates` set + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # 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` + record {|string...;|} metadata?; + # A footer that will be displayed on the quote PDF + string|"" footer?; + # The account on behalf of which to charge + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + # A description that will be displayed on the quote PDF + string|"" description?; + # A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost + @jsondata:Name {value: "line_items"} + LineItemUpdateParams[] lineItems?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field + @jsondata:Name {value: "application_fee_percent"} + decimal|"" applicationFeePercent?; + # The data with which to automatically create a Transfer for each of the invoices + @jsondata:Name {value: "transfer_data"} + record {int amount?; decimal amount_percent?; string destination;}|"" transferData?; + # Specifies which fields in the response should be expanded + QuotesquoteBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParam5 automaticTax?; + # A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch + @jsondata:Name {value: "expires_at"} + int expiresAt?; + @jsondata:Name {value: "subscription_data"} + SubscriptionDataUpdateParams1 subscriptionData?; + # The discounts applied to the quote. You can only set up to one discount + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # A header that will be displayed on the quote PDF + string|"" header?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field + @jsondata:Name {value: "application_fee_amount"} + int|"" applicationFeeAmount?; + # The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# +public type TaxProductRegistrationsResourceCountryOptionsUsLocalAmusementTax record { + # A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction + @constraint:String {maxLength: 5000} + string jurisdiction; +}; + +# These bank accounts are payment methods on `Customer` objects. +# +# On the other hand [External Accounts](/api#external_accounts) are transfer +# destinations on `Account` objects for connected accounts. +# They can be bank accounts or debit cards as well, and are documented in the links above. +# +# Related guide: [Bank debits and transfers](/payments/bank-debits-transfers) +public type BankAccount record { + # Two-letter ISO code representing the country the bank account is located in + @constraint:String {maxLength: 5000} + string country; + # The last four digits of the bank account number + @constraint:String {maxLength: 5000} + string last4; + # The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza` + @jsondata:Name {value: "account_type"} + string? accountType?; + # 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 + record {|string...;|}? metadata?; + # Information about the requirements for the bank account, including what information needs to be collected + ExternalAccountRequirements? requirements?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string? accountHolderName?; + # The routing transit number for the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + # The type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + string? accountHolderType?; + # Information about the [upcoming new requirements for the bank account](https://stripe.com/docs/connect/custom-accounts/future-requirements), including what information needs to be collected, and by when + @jsondata:Name {value: "future_requirements"} + ExternalAccountRequirements? futureRequirements?; + # Name of the bank associated with the routing number (e.g., `WELLS FARGO`) + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account + string currency; + # Whether this bank account is the default external account for its currency + @jsondata:Name {value: "default_for_currency"} + boolean? defaultForCurrency?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # A set of available payout methods for this bank account. Only values from this set should be passed as the `method` when creating a payout + @jsondata:Name {value: "available_payout_methods"} + ("instant"|"standard")[]? availablePayoutMethods?; + # The ID of the account that the bank account is associated with + string|Account? account?; + # The ID of the customer that the bank account is associated with + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "bank_account" 'object; + # 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 payout sent to this bank account fails, we'll set the status to `errored` and will not continue to send [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) until the bank details are updated. + # + # For external accounts, possible values are `new`, `errored` and `verification_failed`. If a payout fails, the status is set to `errored` and scheduled payouts are stopped until account details are updated. In the US and India, if we can't [verify the owner of the bank account](https://support.stripe.com/questions/bank-account-ownership-verification), we'll set the status to `verification_failed`. Other validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply + @constraint:String {maxLength: 5000} + string status; +}; + +@constraint:String {maxLength: 5000} +public type PromotionCodespromotionCodeBodyExpandItemsString string; + +public type FleetReportedBreakdownFuelSpecs record { + @jsondata:Name {value: "gross_amount_decimal"} + string grossAmountDecimal?; +}; + +# +public type PaymentIntentPaymentMethodOptionsCard record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent + @jsondata:Name {value: "request_multicapture"} + "if_available"|"never" requestMulticapture?; + # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge"? requestThreeDSecure?; + # Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent + @jsondata:Name {value: "request_overcapture"} + "if_available"|"never" requestOvercapture?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + # Configuration options for setting up an eMandate for cards issued in India + @jsondata:Name {value: "mandate_options"} + PaymentMethodOptionsCardMandateOptions? mandateOptions?; + # Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent + @jsondata:Name {value: "request_extended_authorization"} + "if_available"|"never" requestExtendedAuthorization?; + # Selected network to process this payment intent on. Depends on the available networks of the card attached to the payment intent. Can be only set confirm-time + "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa"? network?; + # Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters + @jsondata:Name {value: "statement_descriptor_suffix_kana"} + string statementDescriptorSuffixKana?; + # Installment details for this payment (Mexico only). + # + # For more information, see the [installments integration guide](https://stripe.com/docs/payments/installments) + PaymentMethodOptionsCardInstallments? installments?; + # Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent + @jsondata:Name {value: "request_incremental_authorization"} + "if_available"|"never" requestIncrementalAuthorization?; + # When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter) + @jsondata:Name {value: "require_cvc_recollection"} + boolean requireCvcRecollection?; + # Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters + @jsondata:Name {value: "statement_descriptor_suffix_kanji"} + string statementDescriptorSuffixKanji?; +}; + +# Represents the Queries record for the operation: GetTreasuryReceivedCredits +public type GetTreasuryReceivedCreditsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # The FinancialAccount that received the funds + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryReceivedCreditsQueriesExpandItemsString[] expand?; + # Only return ReceivedCredits described by the flow + @http:Query {name: "linked_flows"} + LinkedFlowsParam linkedFlows?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return ReceivedCredits that have the given status: `succeeded` or `failed` + "failed"|"succeeded" status?; +}; + +@constraint:String {maxLength: 5000} +public type IssuingDisputesBodyExpandItemsString string; + +# OutboundTransfers contains outbound transfers features for a FinancialAccount +public type TreasuryFinancialAccountsResourceOutboundTransfers record { + TreasuryFinancialAccountsResourceAchToggleSettings ach?; + @jsondata:Name {value: "us_domestic_wire"} + TreasuryFinancialAccountsResourceToggleSettings usDomesticWire?; +}; + +# +public type PaymentLinksResourcePaymentMethodReuseAgreement record { + # Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used. + # + # When set to `hidden`, the payment method reuse agreement text will always be hidden in the UI + "auto"|"hidden" position; +}; + +# +public type TopupList record { + Topup[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/topups`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SetupAttemptPaymentMethodDetailsAuBecsDebit record { +}; + +# +public type PaymentMethodOptionsAfterpayClearpay record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes. + # This field differs from the statement descriptor and item name + string? reference?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# +public type CheckoutAlipayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type IndividualRelationshipSpecs record { + boolean owner?; + boolean executive?; + boolean director?; + @constraint:String {maxLength: 5000} + string title?; + @jsondata:Name {value: "percent_ownership"} + decimal|"" percentOwnership?; +}; + +public type SubscriptionCancelAt1AnyOf1 int; + +public type LineItemCreateParams record { + @jsondata:Name {value: "price_data"} + PriceData priceData?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type OutboundTransferFailBodyExpandItemsString string; + +public type PayoutsConfigParam record { + PayoutsFeaturesParam features?; + boolean enabled; +}; + +public type AbaAccess record { + boolean requested; +}; + +# +public type SetupIntentPaymentMethodOptionsMandateOptionsSepaDebit record { +}; + +# +public type PaymentMethodDetailsAffirm record { +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryOutboundTransfersQueriesExpandItemsString string; + +public type Application1 Application1AnyOf1|Application1Application1AnyOf12; + +@constraint:String {maxLength: 5000} +public type AccountPeopleBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetIdentityVerificationSessionsQueriesExpandItemsString string; + +# +public type CardList record { + Card[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SourcesidBody record {| + Owner owner?; + # 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` + record {|string...;|}|"" metadata?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + # Billing address country, if provided when creating card + @jsondata:Name {value: "address_country"} + string addressCountry?; + # State/County/Province/Region + @jsondata:Name {value: "address_state"} + string addressState?; + # Two digit number representing the card’s expiration month + @jsondata:Name {value: "exp_month"} + string expMonth?; + # Four digit number representing the card’s expiration year + @jsondata:Name {value: "exp_year"} + string expYear?; + # City/District/Suburb/Town/Village + @jsondata:Name {value: "address_city"} + string addressCity?; + # Specifies which fields in the response should be expanded + SourcesidBodyExpandItemsString[] expand?; + # Address line 2 (Apartment/Suite/Unit/Building) + @jsondata:Name {value: "address_line2"} + string addressLine2?; + # Address line 1 (Street address/PO Box/Company name) + @jsondata:Name {value: "address_line1"} + string addressLine1?; + # The type of entity that holds the account. This can be either `individual` or `company` + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; + # Cardholder name + @constraint:String {maxLength: 5000} + string name?; + # ZIP or postal code + @jsondata:Name {value: "address_zip"} + string addressZip?; +|}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceGbBankTransfer record { + # The full name of the sender, as supplied by the sending bank + @jsondata:Name {value: "sender_name"} + string? senderName?; + # The sort code of the bank of the sender of the funding + @jsondata:Name {value: "sort_code"} + string? sortCode?; + # The last 4 digits of the account number of the sender of the funding + @jsondata:Name {value: "account_number_last4"} + string? accountNumberLast4?; +}; + +# Configuration overrides +public type ProcessSetupConfig record { + @jsondata:Name {value: "enable_customer_cancellation"} + boolean enableCustomerCancellation?; +}; + +public type SourceTypeEps record { + string? reference?; + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerSourcesQueriesExpandItemsString string; + +public type InvoicesCreatePreviewBody record {| + @jsondata:Name {value: "schedule_details"} + ScheduleDetailsParams scheduleDetails?; + # The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # List of invoice items to add or update in the upcoming invoice preview + @jsondata:Name {value: "invoice_items"} + InvoiceItemPreviewParams[] invoiceItems?; + # The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + # The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions + @constraint:String {maxLength: 5000} + string subscription?; + Param1 issuer?; + # The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields + @constraint:String {maxLength: 5000} + string schedule?; + @jsondata:Name {value: "customer_details"} + CustomerDetailsParam customerDetails?; + # Specifies which fields in the response should be expanded + InvoicesCreatePreviewBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParam1 automaticTax?; + # The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @jsondata:Name {value: "subscription_details"} + SubscriptionDetailsParams subscriptionDetails?; + # The currency to preview this invoice in. Defaults to that of `customer` if not specified + string currency?; + # Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified + @jsondata:Name {value: "preview_mode"} + "next"|"recurring" previewMode?; + # The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set + @constraint:String {maxLength: 5000} + string customer?; +|}; + +public type DeletedExternalAccount DeletedBankAccount|DeletedCard; + +# Represents the Queries record for the operation: GetIdentityVerificationReportsReport +public type GetIdentityVerificationReportsReportQueries record { + # Specifies which fields in the response should be expanded + GetIdentityVerificationReportsReportQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetPaymentIntentsIntentQueriesExpandItemsString string; + +# +public type TaxIdVerification record { + # Verified name + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # Verified address + @jsondata:Name {value: "verified_address"} + string? verifiedAddress?; + # Verification status, one of `pending`, `verified`, `unverified`, or `unavailable` + "pending"|"unavailable"|"unverified"|"verified" status; +}; + +@constraint:String {maxLength: 5000} +public type CustomerSourcesBodyExpandItemsString string; + +# Documents that may be submitted to satisfy various informational requests +public type ExternalAccountDocumentsParam record { + @jsondata:Name {value: "bank_account_ownership_verification"} + DocumentsParam bankAccountOwnershipVerification?; +}; + +# +public type MandateLink record { +}; + +# Details about why this subscription was cancelled +public type CancellationDetailsParam record { + ""|"customer_service"|"low_quality"|"missing_features"|"other"|"switched_service"|"too_complex"|"too_expensive"|"unused" feedback?; + string|"" comment?; +}; + +# +public type PaymentMethodDetailsWechatPay record { + # Transaction ID of this particular WeChat Pay transaction + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # Uniquely identifies this particular WeChat Pay account. You can use this attribute to check whether two WeChat accounts are the same + string? fingerprint?; +}; + +public type TaxamountsItemsObject record { + int amount; + string tax_rate; + int taxable_amount; +}; + +public type Created26RangeQuerySpecs292 int; + +# +public type TreasuryReceivedDebitsResourceDebitReversalLinkedFlows record { + # Set if there is an Issuing dispute associated with the DebitReversal + @jsondata:Name {value: "issuing_dispute"} + string? issuingDispute?; +}; + +# +public type TaxProductResourceTaxSettingsStatusDetails record { + TaxProductResourceTaxSettingsStatusDetailsResourcePending pending?; + TaxProductResourceTaxSettingsStatusDetailsResourceActive active?; +}; + +# +public type PaymentPagesCheckoutSessionAfterExpirationRecovery record { + # The timestamp at which the recovery URL will expire + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Enables user redeemable promotion codes on the recovered Checkout Sessions. Defaults to `false` + @jsondata:Name {value: "allow_promotion_codes"} + boolean allowPromotionCodes; + # If `true`, a recovery url will be generated to recover this Checkout Session if it + # expires before a transaction is completed. It will be attached to the + # Checkout Session object upon expiration + boolean enabled; + # URL that creates a new Checkout Session when clicked that is a copy of this expired Checkout Session + string? url?; +}; + +public type CreditNotesidBody record {| + # Specifies which fields in the response should be expanded + CreditNotesidBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Credit note memo + @constraint:String {maxLength: 5000} + string memo?; +|}; + +# +public type TreasuryReceivedCreditsResourceLinkedFlows record { + # The type of flow that originated the ReceivedCredit (for example, `outbound_payment`) + @jsondata:Name {value: "source_flow_type"} + string? sourceFlowType?; + # Set if the ReceivedCredit is also viewable as an [Issuing transaction](https://stripe.com/docs/api#issuing_transactions) object + @jsondata:Name {value: "issuing_transaction"} + string? issuingTransaction?; + # The expandable object of the source flow + @jsondata:Name {value: "source_flow_details"} + TreasuryReceivedCreditsResourceSourceFlowsDetails? sourceFlowDetails?; + # ID of the source flow. Set if `network` is `stripe` and the source flow is visible to the user. Examples of source flows include OutboundPayments, payouts, or CreditReversals + @jsondata:Name {value: "source_flow"} + string? sourceFlow?; + # The CreditReversal created as a result of this ReceivedCredit being reversed + @jsondata:Name {value: "credit_reversal"} + string? creditReversal?; + # Set if the ReceivedCredit was created due to an [Issuing Authorization](https://stripe.com/docs/api#issuing_authorizations) object + @jsondata:Name {value: "issuing_authorization"} + string? issuingAuthorization?; +}; + +@constraint:String {maxLength: 5000} +public type GetEventsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetIssuingCards +public type GetIssuingCardsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Only return cards that have the given last four digits + @constraint:String {maxLength: 5000} + string last4?; + # Specifies which fields in the response should be expanded + GetIssuingCardsQueriesExpandItemsString[] expand?; + @http:Query {name: "personalization_design"} + string personalizationDesign?; + # Only return cards that were issued during the given date interval + Created19 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return cards that have the given expiration month + @http:Query {name: "exp_month"} + int expMonth?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return cards that have the given expiration year + @http:Query {name: "exp_year"} + int expYear?; + # Only return cards belonging to the Cardholder with the provided ID + @constraint:String {maxLength: 5000} + string cardholder?; + # Only return cards that have the given type. One of `virtual` or `physical` + "physical"|"virtual" 'type?; + # Only return cards that have the given status. One of `active`, `inactive`, or `canceled` + "active"|"canceled"|"inactive" status?; +}; + +# +public type UsageRecordSummary record { + Period period; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The ID of the subscription item this summary is describing + @jsondata:Name {value: "subscription_item"} + string subscriptionItem; + # The total usage within this usage period + @jsondata:Name {value: "total_usage"} + int totalUsage; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The invoice in which this usage period has been billed for + string? invoice?; + # String representing the object's type. Objects of the same type share the same value + "usage_record_summary" 'object; +}; + +# Represents the Queries record for the operation: GetInvoiceitems +public type GetInvoiceitemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetInvoiceitemsQueriesExpandItemsString[] expand?; + # Only return invoice items that were created during the given date interval + Created15 created?; + # Set to `true` to only show pending invoice items, which are not yet attached to any invoices. Set to `false` to only show invoice items already attached to invoices. If unspecified, no filter is applied + boolean pending?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return invoice items belonging to this invoice. If none is provided, all invoice items will be returned. If specifying an invoice, no customer identifier is needed + @constraint:String {maxLength: 5000} + string invoice?; + # The identifier of the customer whose invoice items to return. If none is provided, all invoice items will be returned + @constraint:String {maxLength: 5000} + string customer?; +}; + +@constraint:String {maxLength: 5000} +public type DisputesdisputeBody1ExpandItemsString string; + +# Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required +public type OneTimePriceData record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# The updated CVC value this token represents +public type CvcParams record { + @constraint:String {maxLength: 5000} + string cvc; +}; + +# +public type AccountBrandingSettings record { + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) An icon for the account. Must be square and at least 128px x 128px + string|File? icon?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account's name next to it if provided. Must be at least 128px x 128px + string|File? logo?; + # A CSS hex color value representing the secondary branding color for this account + @jsondata:Name {value: "secondary_color"} + string? secondaryColor?; + # A CSS hex color value representing the primary branding color for this account + @jsondata:Name {value: "primary_color"} + string? primaryColor?; +}; + +public type DateOfBirth record { + int month; + int year; + int day; +}; + +public type UsDomesticWireTrackingDetailsParams record { + @constraint:String {maxLength: 5000} + string omad?; + @constraint:String {maxLength: 5000} + string imad?; +}; + +# +public type SecretServiceResourceSecretList record { + AppsSecret[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/apps/secrets`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type MarketingfeaturesItemsObject record { + string name; +}; + +public type AccountDisconnectBody1 record {| + # Specifies which fields in the response should be expanded + AccountDisconnectBody1ExpandItemsString[] expand?; +|}; + +# +public type QuotesResourceSubscriptionDataSubscriptionData record { + # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values + record {|string...;|}? metadata?; + # When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. This date is ignored if it is in the past when the quote is accepted. Measured in seconds since the Unix epoch + @jsondata:Name {value: "effective_date"} + int? effectiveDate?; + # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + string? description?; + # Integer representing the number of trial period days before the customer is charged for the first time + @jsondata:Name {value: "trial_period_days"} + int? trialPeriodDays?; +}; + +@constraint:String {maxLength: 500} +public type DocumentsParamFilesItemsString string; + +public type TreasuryFinancialAccountsBodySupportedcurrenciesItemsString string; + +# Represents the Queries record for the operation: GetTreasuryInboundTransfersId +public type GetTreasuryInboundTransfersIdQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryInboundTransfersIdQueriesExpandItemsString[] expand?; +}; + +# Simulated data for the card_present payment method +public type CardPresent record { + @constraint:String {maxLength: 5000} + string number?; +}; + +# +public type ConnectEmbeddedBaseConfigClaim record { + ConnectEmbeddedBaseFeatures features; + # Whether the embedded component is enabled + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type IdRefundsBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetExchangeRatesRateId +public type GetExchangeRatesRateIdQueries record { + # Specifies which fields in the response should be expanded + GetExchangeRatesRateIdQueriesExpandItemsString[] expand?; +}; + +# +public type IssuingTransactionList record { + IssuingTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/transactions`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type ReleasedAtRangeQuerySpecs442 int; + +public type Created22RangeQuerySpecs242 int; + +# +public type TaxProductResourceCustomerDetails record { + # The taxability override used for taxation + @jsondata:Name {value: "taxability_override"} + "customer_exempt"|"none"|"reverse_charge" taxabilityOverride; + # The customer's postal address (for example, home or business location) + TaxProductResourcePostalAddress? address?; + # The customer's tax IDs (for example, EU VAT numbers) + @jsondata:Name {value: "tax_ids"} + TaxProductResourceCustomerDetailsResourceTaxId[] taxIds; + # The type of customer address provided + @jsondata:Name {value: "address_source"} + "billing"|"shipping"? addressSource?; + # The customer's IP address (IPv4 or IPv6) + @jsondata:Name {value: "ip_address"} + string? ipAddress?; +}; + +# Represents the Queries record for the operation: GetChargesChargeRefundsRefund +public type GetChargesChargeRefundsRefundQueries record { + # Specifies which fields in the response should be expanded + GetChargesChargeRefundsRefundQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type AccountLoginLinksBodyExpandItemsString string; + +public type PayoutsFeaturesParam record { + @jsondata:Name {value: "instant_payouts"} + boolean instantPayouts?; + @jsondata:Name {value: "edit_payout_schedule"} + boolean editPayoutSchedule?; + @jsondata:Name {value: "external_account_collection"} + boolean externalAccountCollection?; + @jsondata:Name {value: "standard_payouts"} + boolean standardPayouts?; +}; + +# +public type InvoicePaymentMethodOptionsCard record { + InvoiceInstallmentsCard installments?; + # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge"? requestThreeDSecure?; +}; + +# +public type CustomerBalanceTransactionList record { + # Details about each object + CustomerBalanceTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type InvoicesSettingsSpecs record { + @jsondata:Name {value: "default_account_tax_ids"} + DefaultaccounttaxidsItemsString[]|"" defaultAccountTaxIds?; +}; + +# A Connection Token is used by the Stripe Terminal SDK to connect to a reader. +# +# Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations) +public type TerminalConnectionToken record { + # The id of the location that this connection token is scoped to. Note that location scoping only applies to internet-connected readers. For more details, see [the docs on scoping connection tokens](https://docs.stripe.com/terminal/fleet/locations-and-zones?dashboard-or-api=api#connection-tokens) + @constraint:String {maxLength: 5000} + string location?; + # Your application should pass this token to the Stripe Terminal SDK + @constraint:String {maxLength: 5000} + string secret; + # String representing the object's type. Objects of the same type share the same value + "terminal.connection_token" 'object; +}; + +# The default settings to aggregate a meter's events with +public type AggregationSettingsParam record { + "count"|"sum" formula; +}; + +@constraint:String {maxLength: 5000} +public type IdFailBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPayoutsQueriesExpandItemsString string; + +# +public type PaymentMethodOptionsPix record { + # The timestamp at which the Pix expires + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # The number of seconds (between 10 and 1209600) after which Pix payment will expire + @jsondata:Name {value: "expires_after_seconds"} + int? expiresAfterSeconds?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type ConfigurationsconfigurationBody1ExpandItemsString string; + +public type CustomerPreferredlocalesItemsString string; + +public type Created9RangeQuerySpecs92 int; + +@constraint:String {maxLength: 5000} +public type GetIdentityVerificationReportsReportQueriesExpandItemsString string; + +# +public type PaymentMethodOptionsCustomerBalanceEuBankAccount record { + # The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL` + "BE"|"DE"|"ES"|"FR"|"IE"|"NL" country; +}; + +public type SubscriptionSchedulesBody record {| + # Specifies which fields in the response should be expanded + SubscriptionSchedulesBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Migrate an existing subscription to be managed by a subscription schedule. If this parameter is set, a subscription schedule will be created using the subscription's item(s), set to auto-renew using the subscription's interval. When using this parameter, other parameters (such as phase values) cannot be set. To create a subscription schedule with other modifications, we recommend making two separate API calls + @jsondata:Name {value: "from_subscription"} + string fromSubscription?; + # Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription + @jsondata:Name {value: "end_behavior"} + "cancel"|"none"|"release"|"renew" endBehavior?; + @jsondata:Name {value: "default_settings"} + DefaultSettingsParams defaultSettings?; + # List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase + PhaseConfigurationParams3[] phases?; + # The identifier of the customer to create the subscription schedule for + @constraint:String {maxLength: 5000} + string customer?; + # When the subscription schedule starts. We recommend using `now` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on + @jsondata:Name {value: "start_date"} + int|"now" startDate?; +|}; + +public type IntentIncrementAuthorizationBody record {| + # For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataUpdateParams2 transferData?; + # The updated total amount that you intend to collect from the cardholder. This amount must be greater than the currently authorized amount + int amount; + # Specifies which fields in the response should be expanded + IntentIncrementAuthorizationBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 1000} + string description?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; +|}; + +@constraint:String {maxLength: 5000} +public type CheckoutSessionsBodyExpandItemsString string; + +public type AccountFutureRequirementsEventuallydueItemsString string; + +public type DocumentsParam7Files FilesAnyOf16|FilesFilesAnyOf162; + +# +public type PaymentMethodDetailsAchCreditTransfer record { + # Account number to transfer funds to + @jsondata:Name {value: "account_number"} + string? accountNumber?; + # SWIFT code of the bank associated with the routing number + @jsondata:Name {value: "swift_code"} + string? swiftCode?; + # Name of the bank associated with the routing number + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Routing transit number for the bank account to transfer funds to + @jsondata:Name {value: "routing_number"} + string? routingNumber?; +}; + +@constraint:String {maxLength: 5000} +public type GetClimateOrdersQueriesExpandItemsString string; + +public type TaxProductResourceTaxSettingsStatusDetailsResourcePendingMissingfieldsItemsString string; + +# Represents the Queries record for the operation: GetEvents +public type GetEventsQueries record { + # Filter events by whether all webhooks were successfully delivered. If false, events which are still pending or have failed all delivery attempts to a webhook endpoint will be returned + @http:Query {name: "delivery_success"} + boolean deliverySuccess?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetEventsQueriesExpandItemsString[] expand?; + # An array of up to 20 strings containing specific event names. The list will be filtered to include only events with a matching event property. You may pass either `type` or `types`, but not both + GetEventsQueriesTypesItemsString[] types?; + # Only return events that were created during the given date interval + Created10 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # A string containing a specific event name, or group of events using * as a wildcard. The list will be filtered to include only events with a matching event property + @constraint:String {maxLength: 5000} + string 'type?; +}; + +@constraint:String {maxLength: 5000} +public type PersonalizationDesignspersonalizationDesignBodyExpandItemsString string; + +# Display additional text for your customers using custom text +public type CustomTextParam record { + @jsondata:Name {value: "after_submit"} + record {string message;}|"" afterSubmit?; + record {string message;}|"" submit?; + @jsondata:Name {value: "terms_of_service_acceptance"} + record {string message;}|"" termsOfServiceAcceptance?; + @jsondata:Name {value: "shipping_address"} + record {string message;}|"" shippingAddress?; +}; + +public type SourceTypeIdeal record { + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + string? bank?; + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + string? bic?; +}; + +# Represents the Queries record for the operation: GetTreasuryTransactionsId +public type GetTreasuryTransactionsIdQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryTransactionsIdQueriesExpandItemsString[] expand?; +}; + +# +public type CountrySpecList record { + CountrySpec[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/country_specs`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetAccountsAccount +public type GetAccountsAccountQueries record { + # Specifies which fields in the response should be expanded + GetAccountsAccountQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetReportingReportTypesQueriesExpandItemsString string; + +public type ProductsItemsObject record { + ProductsItemsObjectPricesItemsString[] prices; + string product; +}; + +# A list of refunds that have been applied to the fee +public type FeeRefundList1 record { + # Details about each object + FeeRefund[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type PeoplepersonBody record {| + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "registered_address"} + AddressSpecs1 registeredAddress?; + # The person's gender (International regulations require either "male" or "female") + string gender?; + PersonDocumentsSpecs1 documents?; + # The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs1 addressKana?; + # A list of alternate names or aliases that the person is known by + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + @jsondata:Name {value: "additional_tos_acceptances"} + PersonAdditionalTosAcceptancesSpecs additionalTosAcceptances?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs1 addressKanji?; + # The last four digits of the person's Social Security number (U.S. only) + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + RelationshipSpecs relationship?; + # The person's first name + @jsondata:Name {value: "first_name"} + string firstName?; + # The Kana variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + # The person's email address + string email?; + PersonVerificationSpecs1 verification?; + # The Kanji variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; + # The person's maiden name + @jsondata:Name {value: "maiden_name"} + string maidenName?; + # The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii) + @jsondata:Name {value: "id_number"} + string idNumber?; + LegalEntityAndKycAddressSpecs1 address?; + # A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person + @jsondata:Name {value: "person_token"} + string personToken?; + # Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction + @jsondata:Name {value: "political_exposure"} + string politicalExposure?; + # The Kanji variation of the person's first name (Japan only) + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + # The person's last name + @jsondata:Name {value: "last_name"} + string lastName?; + # Specifies which fields in the response should be expanded + PeoplepersonBodyExpandItemsString[] expand?; + # The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or "XX" if unavailable + @constraint:String {maxLength: 5000} + string nationality?; + # The person's phone number + string phone?; + # The person's date of birth + record {int day; int month; int year;}|"" dob?; + # The Kana variation of the person's last name (Japan only) + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; +|}; + +# Represents a line item to be displayed on the reader +public type TerminalReaderReaderResourceLineItem record { + # The amount of the line item. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # The quantity of the line item + int quantity; + # Description of the line item + @constraint:String {maxLength: 5000} + string description; +}; + +# Shipping rates describe the price of shipping presented to your customers and +# applied to a purchase. For more information, see [Charge for shipping](https://stripe.com/docs/payments/during-payment/charge-shipping) +public type ShippingRate record { + # Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified` + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified"? taxBehavior?; + @jsondata:Name {value: "fixed_amount"} + ShippingRateFixedAmount fixedAmount?; + # 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 + record {|string...;|} metadata; + # A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001` + @jsondata:Name {value: "tax_code"} + string|TaxCode? taxCode?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Whether the shipping rate can be used for new purchases. Defaults to `true` + boolean active; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions + @jsondata:Name {value: "display_name"} + string? displayName?; + # The type of calculation to use on the shipping rate + "fixed_amount" 'type; + # The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions + @jsondata:Name {value: "delivery_estimate"} + ShippingRateDeliveryEstimate? deliveryEstimate?; + # String representing the object's type. Objects of the same type share the same value + "shipping_rate" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountExternalAccountsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ShippingReturnBodyExpandItemsString string; + +# +public type TreasuryInboundTransfersResourceInboundTransferResourceStatusTransitions record { + # Timestamp describing when an InboundTransfer changed status to `canceled` + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Timestamp describing when an InboundTransfer changed status to `failed` + @jsondata:Name {value: "failed_at"} + int? failedAt?; + # Timestamp describing when an InboundTransfer changed status to `succeeded` + @jsondata:Name {value: "succeeded_at"} + int? succeededAt?; +}; + +# +public type IssuingCardholderSpendingLimit record { + # Maximum amount allowed to spend per interval. This amount is in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Interval (or event) to which the amount applies + "all_time"|"daily"|"monthly"|"per_authorization"|"weekly"|"yearly" interval; + # Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories + ("ac_refrigeration_repair"|"accounting_bookkeeping_services"|"advertising_services"|"agricultural_cooperative"|"airlines_air_carriers"|"airports_flying_fields"|"ambulance_services"|"amusement_parks_carnivals"|"antique_reproductions"|"antique_shops"|"aquariums"|"architectural_surveying_services"|"art_dealers_and_galleries"|"artists_supply_and_craft_shops"|"auto_and_home_supply_stores"|"auto_body_repair_shops"|"auto_paint_shops"|"auto_service_shops"|"automated_cash_disburse"|"automated_fuel_dispensers"|"automobile_associations"|"automotive_parts_and_accessories_stores"|"automotive_tire_stores"|"bail_and_bond_payments"|"bakeries"|"bands_orchestras"|"barber_and_beauty_shops"|"betting_casino_gambling"|"bicycle_shops"|"billiard_pool_establishments"|"boat_dealers"|"boat_rentals_and_leases"|"book_stores"|"books_periodicals_and_newspapers"|"bowling_alleys"|"bus_lines"|"business_secretarial_schools"|"buying_shopping_services"|"cable_satellite_and_other_pay_television_and_radio"|"camera_and_photographic_supply_stores"|"candy_nut_and_confectionery_stores"|"car_and_truck_dealers_new_used"|"car_and_truck_dealers_used_only"|"car_rental_agencies"|"car_washes"|"carpentry_services"|"carpet_upholstery_cleaning"|"caterers"|"charitable_and_social_service_organizations_fundraising"|"chemicals_and_allied_products"|"child_care_services"|"childrens_and_infants_wear_stores"|"chiropodists_podiatrists"|"chiropractors"|"cigar_stores_and_stands"|"civic_social_fraternal_associations"|"cleaning_and_maintenance"|"clothing_rental"|"colleges_universities"|"commercial_equipment"|"commercial_footwear"|"commercial_photography_art_and_graphics"|"commuter_transport_and_ferries"|"computer_network_services"|"computer_programming"|"computer_repair"|"computer_software_stores"|"computers_peripherals_and_software"|"concrete_work_services"|"construction_materials"|"consulting_public_relations"|"correspondence_schools"|"cosmetic_stores"|"counseling_services"|"country_clubs"|"courier_services"|"court_costs"|"credit_reporting_agencies"|"cruise_lines"|"dairy_products_stores"|"dance_hall_studios_schools"|"dating_escort_services"|"dentists_orthodontists"|"department_stores"|"detective_agencies"|"digital_goods_applications"|"digital_goods_games"|"digital_goods_large_volume"|"digital_goods_media"|"direct_marketing_catalog_merchant"|"direct_marketing_combination_catalog_and_retail_merchant"|"direct_marketing_inbound_telemarketing"|"direct_marketing_insurance_services"|"direct_marketing_other"|"direct_marketing_outbound_telemarketing"|"direct_marketing_subscription"|"direct_marketing_travel"|"discount_stores"|"doctors"|"door_to_door_sales"|"drapery_window_covering_and_upholstery_stores"|"drinking_places"|"drug_stores_and_pharmacies"|"drugs_drug_proprietaries_and_druggist_sundries"|"dry_cleaners"|"durable_goods"|"duty_free_stores"|"eating_places_restaurants"|"educational_services"|"electric_razor_stores"|"electric_vehicle_charging"|"electrical_parts_and_equipment"|"electrical_services"|"electronics_repair_shops"|"electronics_stores"|"elementary_secondary_schools"|"emergency_services_gcas_visa_use_only"|"employment_temp_agencies"|"equipment_rental"|"exterminating_services"|"family_clothing_stores"|"fast_food_restaurants"|"financial_institutions"|"fines_government_administrative_entities"|"fireplace_fireplace_screens_and_accessories_stores"|"floor_covering_stores"|"florists"|"florists_supplies_nursery_stock_and_flowers"|"freezer_and_locker_meat_provisioners"|"fuel_dealers_non_automotive"|"funeral_services_crematories"|"furniture_home_furnishings_and_equipment_stores_except_appliances"|"furniture_repair_refinishing"|"furriers_and_fur_shops"|"general_services"|"gift_card_novelty_and_souvenir_shops"|"glass_paint_and_wallpaper_stores"|"glassware_crystal_stores"|"golf_courses_public"|"government_licensed_horse_dog_racing_us_region_only"|"government_licensed_online_casions_online_gambling_us_region_only"|"government_owned_lotteries_non_us_region"|"government_owned_lotteries_us_region_only"|"government_services"|"grocery_stores_supermarkets"|"hardware_equipment_and_supplies"|"hardware_stores"|"health_and_beauty_spas"|"hearing_aids_sales_and_supplies"|"heating_plumbing_a_c"|"hobby_toy_and_game_shops"|"home_supply_warehouse_stores"|"hospitals"|"hotels_motels_and_resorts"|"household_appliance_stores"|"industrial_supplies"|"information_retrieval_services"|"insurance_default"|"insurance_underwriting_premiums"|"intra_company_purchases"|"jewelry_stores_watches_clocks_and_silverware_stores"|"landscaping_services"|"laundries"|"laundry_cleaning_services"|"legal_services_attorneys"|"luggage_and_leather_goods_stores"|"lumber_building_materials_stores"|"manual_cash_disburse"|"marinas_service_and_supplies"|"marketplaces"|"masonry_stonework_and_plaster"|"massage_parlors"|"medical_and_dental_labs"|"medical_dental_ophthalmic_and_hospital_equipment_and_supplies"|"medical_services"|"membership_organizations"|"mens_and_boys_clothing_and_accessories_stores"|"mens_womens_clothing_stores"|"metal_service_centers"|"miscellaneous"|"miscellaneous_apparel_and_accessory_shops"|"miscellaneous_auto_dealers"|"miscellaneous_business_services"|"miscellaneous_food_stores"|"miscellaneous_general_merchandise"|"miscellaneous_general_services"|"miscellaneous_home_furnishing_specialty_stores"|"miscellaneous_publishing_and_printing"|"miscellaneous_recreation_services"|"miscellaneous_repair_shops"|"miscellaneous_specialty_retail"|"mobile_home_dealers"|"motion_picture_theaters"|"motor_freight_carriers_and_trucking"|"motor_homes_dealers"|"motor_vehicle_supplies_and_new_parts"|"motorcycle_shops_and_dealers"|"motorcycle_shops_dealers"|"music_stores_musical_instruments_pianos_and_sheet_music"|"news_dealers_and_newsstands"|"non_fi_money_orders"|"non_fi_stored_value_card_purchase_load"|"nondurable_goods"|"nurseries_lawn_and_garden_supply_stores"|"nursing_personal_care"|"office_and_commercial_furniture"|"opticians_eyeglasses"|"optometrists_ophthalmologist"|"orthopedic_goods_prosthetic_devices"|"osteopaths"|"package_stores_beer_wine_and_liquor"|"paints_varnishes_and_supplies"|"parking_lots_garages"|"passenger_railways"|"pawn_shops"|"pet_shops_pet_food_and_supplies"|"petroleum_and_petroleum_products"|"photo_developing"|"photographic_photocopy_microfilm_equipment_and_supplies"|"photographic_studios"|"picture_video_production"|"piece_goods_notions_and_other_dry_goods"|"plumbing_heating_equipment_and_supplies"|"political_organizations"|"postal_services_government_only"|"precious_stones_and_metals_watches_and_jewelry"|"professional_services"|"public_warehousing_and_storage"|"quick_copy_repro_and_blueprint"|"railroads"|"real_estate_agents_and_managers_rentals"|"record_stores"|"recreational_vehicle_rentals"|"religious_goods_stores"|"religious_organizations"|"roofing_siding_sheet_metal"|"secretarial_support_services"|"security_brokers_dealers"|"service_stations"|"sewing_needlework_fabric_and_piece_goods_stores"|"shoe_repair_hat_cleaning"|"shoe_stores"|"small_appliance_repair"|"snowmobile_dealers"|"special_trade_services"|"specialty_cleaning"|"sporting_goods_stores"|"sporting_recreation_camps"|"sports_and_riding_apparel_stores"|"sports_clubs_fields"|"stamp_and_coin_stores"|"stationary_office_supplies_printing_and_writing_paper"|"stationery_stores_office_and_school_supply_stores"|"swimming_pools_sales"|"t_ui_travel_germany"|"tailors_alterations"|"tax_payments_government_agencies"|"tax_preparation_services"|"taxicabs_limousines"|"telecommunication_equipment_and_telephone_sales"|"telecommunication_services"|"telegraph_services"|"tent_and_awning_shops"|"testing_laboratories"|"theatrical_ticket_agencies"|"timeshares"|"tire_retreading_and_repair"|"tolls_bridge_fees"|"tourist_attractions_and_exhibits"|"towing_services"|"trailer_parks_campgrounds"|"transportation_services"|"travel_agencies_tour_operators"|"truck_stop_iteration"|"truck_utility_trailer_rentals"|"typesetting_plate_making_and_related_services"|"typewriter_stores"|"u_s_federal_government_agencies_or_departments"|"uniforms_commercial_clothing"|"used_merchandise_and_secondhand_stores"|"utilities"|"variety_stores"|"veterinary_services"|"video_amusement_game_supplies"|"video_game_arcades"|"video_tape_rental_stores"|"vocational_trade_schools"|"watch_jewelry_repair"|"welding_repair"|"wholesale_clubs"|"wig_and_toupee_stores"|"wires_money_orders"|"womens_accessory_and_specialty_shops"|"womens_ready_to_wear_stores"|"wrecking_and_salvage_yards")[]? categories?; +}; + +# +public type PaymentMethodOptionsAffirm record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Preferred language of the Affirm authorization page that the customer is redirected to + @jsondata:Name {value: "preferred_locale"} + string preferredLocale?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type FilesBodyExpandItemsString string; + +# +public type SetupIntentNextActionVerifyWithMicrodeposits record { + # The URL for the hosted verification page, which allows customers to verify their bank account + @jsondata:Name {value: "hosted_verification_url"} + string hostedVerificationUrl; + # The type of the microdeposit sent to the customer. Used to distinguish between different verification methods + @jsondata:Name {value: "microdeposit_type"} + "amounts"|"descriptor_code"? microdepositType?; + # The timestamp when the microdeposits are expected to land + @jsondata:Name {value: "arrival_date"} + int arrivalDate; +}; + +@constraint:String {maxLength: 5000} +public type LinkAccountSessionsBodyExpandItemsString string; + +public type AccountBankAccountsBody record {| + # Specifies which fields in the response should be expanded + AccountBankAccountsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # Please refer to full [documentation](https://stripe.com/docs/api) instead + @jsondata:Name {value: "external_account"} + string externalAccount?; + # When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency + @jsondata:Name {value: "default_for_currency"} + boolean defaultForCurrency?; + # Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details + @jsondata:Name {value: "bank_account"} + record {string account_holder_name?; "company"|"individual" account_holder_type?; string account_number; "checking"|"futsu"|"savings"|"toza" account_type?; string country; string currency?; record {record {bank_account_ownership_verificationFilesItemsString[] files?;} bank_account_ownership_verification?;} documents?; "bank_account" 'object?; string routing_number?;}|string bankAccount?; +|}; + +public type AccountRequirementsCurrentlydueItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPaymentMethodsPaymentMethodQueriesExpandItemsString string; + +# Customers with certain payments enabled have a cash balance, representing funds that were paid +# by the customer to a merchant, but have not yet been allocated to a payment. Cash Balance Transactions +# represent when funds are moved into or out of this balance. This includes funding by the customer, allocation +# to payments, and refunds to the customer +public type CustomerCashBalanceTransaction record { + @jsondata:Name {value: "applied_to_payment"} + CustomerBalanceResourceCashBalanceTransactionResourceAppliedToPaymentTransaction appliedToPayment?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The total available cash balance for the specified currency after this transaction was applied. Represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "ending_balance"} + int endingBalance; + @jsondata:Name {value: "transferred_to_balance"} + CustomerBalanceResourceCashBalanceTransactionResourceTransferredToBalance transferredToBalance?; + # The type of the cash balance transaction. New types may be added in future. See [Customer Balance](https://stripe.com/docs/payments/customer-balance#types) to learn more about these types + "adjusted_for_overdraft"|"applied_to_payment"|"funded"|"funding_reversed"|"refunded_from_payment"|"return_canceled"|"return_initiated"|"transferred_to_balance"|"unapplied_from_payment" 'type; + @jsondata:Name {value: "refunded_from_payment"} + CustomerBalanceResourceCashBalanceTransactionResourceRefundedFromPaymentTransaction refundedFromPayment?; + @jsondata:Name {value: "unapplied_from_payment"} + CustomerBalanceResourceCashBalanceTransactionResourceUnappliedFromPaymentTransaction unappliedFromPayment?; + CustomerBalanceResourceCashBalanceTransactionResourceFundedTransaction funded?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + @jsondata:Name {value: "adjusted_for_overdraft"} + CustomerBalanceResourceCashBalanceTransactionResourceAdjustedForOverdraft adjustedForOverdraft?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The amount by which the cash balance changed, represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). A positive value represents funds being added to the cash balance, a negative value represents funds being removed from the cash balance + @jsondata:Name {value: "net_amount"} + int netAmount; + # The customer whose available cash balance changed as a result of this transaction + string|Customer customer; + # String representing the object's type. Objects of the same type share the same value + "customer_cash_balance_transaction" 'object; +}; + +# A Reader represents a physical device for accepting payment details. +# +# Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader) +public type TerminalReader record { + # The current software version of the reader + @jsondata:Name {value: "device_sw_version"} + string? deviceSwVersion?; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The most recent action performed by the reader + TerminalReaderReaderResourceReaderAction? action?; + # Type of reader, one of `bbpos_wisepad3`, `stripe_m2`, `bbpos_chipper2x`, `bbpos_wisepos_e`, `verifone_P400`, `simulated_wisepos_e`, or `mobile_phone_reader` + @jsondata:Name {value: "device_type"} + "bbpos_chipper2x"|"bbpos_wisepad3"|"bbpos_wisepos_e"|"mobile_phone_reader"|"simulated_wisepos_e"|"stripe_m2"|"verifone_P400" deviceType; + # The location identifier of the reader + string|TerminalLocation? location?; + # Serial number of the reader + @jsondata:Name {value: "serial_number"} + string serialNumber; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The local IP address of the reader + @jsondata:Name {value: "ip_address"} + string? ipAddress?; + # Custom label given to the reader for easier identification + @constraint:String {maxLength: 5000} + string label; + # String representing the object's type. Objects of the same type share the same value + "terminal.reader" 'object; + # The networking status of the reader + "offline"|"online"? status?; +}; + +# +public type PaymentMethodOptionsCashapp record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +# +public type IssuingTransactionPurchaseDetails record { + # Information about lodging that was purchased with this transaction + IssuingTransactionLodgingData? lodging?; + # A merchant-specific order number + string? reference?; + # Fleet-specific information for transactions using Fleet cards + IssuingTransactionFleetData? fleet?; + # Information about the flight that was purchased with this transaction + IssuingTransactionFlightData? flight?; + # Information about fuel that was purchased with this transaction + IssuingTransactionFuelData? fuel?; + # The line items in the purchase + IssuingTransactionReceiptData[]? receipt?; +}; + +public type CardIssuingSettingsSpecs record { + @jsondata:Name {value: "tos_acceptance"} + SettingsTermsOfServiceSpecs tosAcceptance?; +}; + +# +public type SetupIntentPaymentMethodOptionsUsBankAccount record { + @jsondata:Name {value: "financial_connections"} + LinkedAccountOptionsUsBankAccount financialConnections?; + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + @jsondata:Name {value: "mandate_options"} + PaymentMethodOptionsUsBankAccountMandateOptions mandateOptions?; +}; + +public type DocumentsParam2Files FilesAnyOf11|FilesFilesAnyOf112; + +# The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page +public type RenderingParam record { + @jsondata:Name {value: "amount_tax_display"} + ""|"exclude_tax"|"include_inclusive_tax" amountTaxDisplay?; + RenderingPdfParam pdf?; +}; + +public type TestClockAdvanceBody record {| + # Specifies which fields in the response should be expanded + TestClockAdvanceBodyExpandItemsString[] expand?; + # The time to advance the test clock. Must be after the test clock's current frozen time. Cannot be more than two intervals in the future from the shortest subscription in this test clock. If there are no subscriptions in this test clock, it cannot be more than two years in the future + @jsondata:Name {value: "frozen_time"} + int frozenTime; +|}; + +public type OrderCancelBody record {| + # Specifies which fields in the response should be expanded + OrderCancelBodyExpandItemsString[] expand?; +|}; + +# Generate a post-purchase Invoice for one-time payments +public type InvoiceCreationParams record { + @jsondata:Name {value: "invoice_data"} + InvoiceDataParams invoiceData?; + boolean enabled; +}; + +# +public type TerminalReaderRetrieveReader record { + # A list of readers + TerminalReader[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type SubscriptionItemsBody record {| + # Specifies which fields in the response should be expanded + SubscriptionItemsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "price_data"} + RecurringPriceData1 priceData?; + # Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + # + # Use `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. + # + # Use `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes). + # + # Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more + @jsondata:Name {value: "payment_behavior"} + "allow_incomplete"|"default_incomplete"|"error_if_incomplete"|"pending_if_incomplete" paymentBehavior?; + # The quantity you'd like to apply to the subscription item you're creating + int quantity?; + # The coupons to redeem into discounts for the subscription item + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # The ID of the price object + @constraint:String {maxLength: 5000} + string price?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds + @jsondata:Name {value: "billing_thresholds"} + record {int usage_gte;}|"" billingThresholds?; + # The identifier of the subscription to modify + @constraint:String {maxLength: 5000} + string subscription; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + # If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint + @jsondata:Name {value: "proration_date"} + int prorationDate?; + # A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +|}; + +# +public type InvoiceThresholdReason record { + # Indicates which line items triggered a threshold invoice + @jsondata:Name {value: "item_reasons"} + InvoiceItemThresholdReason[] itemReasons; + # The total invoice amount threshold boundary if it triggered the threshold invoice + @jsondata:Name {value: "amount_gte"} + int? amountGte?; +}; + +public type MonthlyEstimatedRevenueSpecs record { + int amount; + string currency; +}; + +@constraint:String {maxLength: 5000} +public type GetFinancialConnectionsSessionsSessionQueriesExpandItemsString string; + +public type FilesFilesAnyOf152 ""; + +# +public type IssuingDisputeNotReceivedEvidence record { + # Date when the cardholder expected to receive the product + @jsondata:Name {value: "expected_at"} + int? expectedAt?; + # Whether the product was a merchandise or service + @jsondata:Name {value: "product_type"} + "merchandise"|"service"? productType?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; + # Description of the merchandise or service that was purchased + @jsondata:Name {value: "product_description"} + string? productDescription?; +}; + +# +public type IssuingAuthorizationFleetReportedBreakdown record { + # Breakdown of fuel portion of the purchase + IssuingAuthorizationFleetFuelPriceData? fuel?; + # Information about tax included in this transaction + IssuingAuthorizationFleetTaxData? tax?; + # Breakdown of non-fuel portion of the purchase + @jsondata:Name {value: "non_fuel"} + IssuingAuthorizationFleetNonFuelPriceData? nonFuel?; +}; + +# The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields +public type ScheduleDetailsParams record { + @jsondata:Name {value: "end_behavior"} + "cancel"|"release" endBehavior?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + PhaseConfigurationParams[] phases?; +}; + +@constraint:String {maxLength: 5000} +public type PaymentMethodConfigurationsBodyExpandItemsString string; + +# +public type PaymentMethodConfigBizPaymentMethodConfigurationDetails record { + # ID of the parent payment method configuration used + string? parent?; + # ID of the payment method configuration used + @constraint:String {maxLength: 5000} + string id; +}; + +@constraint:String {maxLength: 5000} +public type EntitlementsFeaturesBodyExpandItemsString string; + +public type FilesFilesAnyOf162 ""; + +@constraint:String {maxLength: 5000} +public type GetDisputesQueriesExpandItemsString string; + +public type OutboundTransfersoutboundTransferBody record {| + # Specifies which fields in the response should be expanded + OutboundTransfersoutboundTransferBodyExpandItemsString[] expand?; + @jsondata:Name {value: "tracking_details"} + TrackingDetailsParams trackingDetails; +|}; + +# Represents the Queries record for the operation: GetInvoicesInvoiceLines +public type GetInvoicesInvoiceLinesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetInvoicesInvoiceLinesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentPagesCheckoutSessionInvoiceSettings record { + # 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 + record {|string...;|}? metadata?; + # The account tax IDs associated with the invoice + @jsondata:Name {value: "account_tax_ids"} + PaymentPagesCheckoutSessionInvoiceSettingsAccountTaxIds[]? accountTaxIds?; + # Footer displayed on the invoice + string? footer?; + # Custom fields displayed on the invoice + @jsondata:Name {value: "custom_fields"} + InvoiceSettingCustomField[]? customFields?; + # Options for invoice PDF rendering + @jsondata:Name {value: "rendering_options"} + InvoiceSettingRenderingOptions? renderingOptions?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account + ConnectAccountReference? issuer?; +}; + +# Refund objects allow you to refund a previously created charge that isn't +# refunded yet. Funds are refunded to the credit or debit card that's +# initially charged. +# +# Related guide: [Refunds](https://stripe.com/docs/refunds) +public type Refund record { + # Balance transaction that describes the impact on your account balance + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # Reason for the refund, which is either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`) + "duplicate"|"expired_uncaptured_charge"|"fraudulent"|"requested_by_customer"? reason?; + # Amount, in cents (or local equivalent) + int amount; + # 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 + record {|string...;|}? metadata?; + # ID of the charge that's refunded + string|Charge? charge?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. You can use this for displaying to users (available on non-card refunds only) + @constraint:String {maxLength: 5000} + string description?; + # Provides the reason for the refund failure. Possible values are: `lost_or_stolen_card`, `expired_or_canceled_card`, `charge_for_pending_refund_disputed`, `insufficient_funds`, `declined`, `merchant_request`, or `unknown` + @jsondata:Name {value: "failure_reason"} + string failureReason?; + # The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account + @jsondata:Name {value: "source_transfer_reversal"} + string|TransferReversal? sourceTransferReversal?; + # After the refund fails, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction + @jsondata:Name {value: "failure_balance_transaction"} + string|BalanceTransaction failureBalanceTransaction?; + # This is the transaction number that appears on email receipts sent for this refund + @jsondata:Name {value: "receipt_number"} + string? receiptNumber?; + # This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter + @jsondata:Name {value: "transfer_reversal"} + string|TransferReversal? transferReversal?; + # For payment methods without native refund support (for example, Konbini, PromptPay), provide an email address for the customer to receive refund instructions + @jsondata:Name {value: "instructions_email"} + string instructionsEmail?; + @jsondata:Name {value: "next_action"} + RefundNextAction nextAction?; + @jsondata:Name {value: "destination_details"} + RefundDestinationDetails destinationDetails?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # ID of the PaymentIntent that's refunded + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent? paymentIntent?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "refund" 'object; + # Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://stripe.com/docs/refunds#failed-refunds) + string? status?; +}; + +public type SubscriptionItemUpdateParams record { + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "price_data"} + RecurringPriceData priceData?; + boolean deleted?; + int quantity?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + @jsondata:Name {value: "clear_usage"} + boolean clearUsage?; + @jsondata:Name {value: "billing_thresholds"} + record {int usage_gte;}|"" billingThresholds?; + @constraint:String {maxLength: 5000} + string id?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +# +public type SetupIntentNextAction record { + @jsondata:Name {value: "verify_with_microdeposits"} + SetupIntentNextActionVerifyWithMicrodeposits verifyWithMicrodeposits?; + @jsondata:Name {value: "redirect_to_url"} + SetupIntentNextActionRedirectToUrl redirectToUrl?; + @jsondata:Name {value: "cashapp_handle_redirect_or_display_qr_code"} + PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode cashappHandleRedirectOrDisplayQrCode?; + # Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits` + @constraint:String {maxLength: 5000} + string 'type; + # When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js + @jsondata:Name {value: "use_stripe_sdk"} + record {} useStripeSdk?; +}; + +public type AllPricesRecurringParams record { + @jsondata:Name {value: "usage_type"} + "licensed"|"metered" usageType?; + @constraint:String {maxLength: 5000} + string meter?; + "day"|"month"|"week"|"year" interval?; +}; + +public type FilesFilesAnyOf132 ""; + +# To top up your Stripe balance, you create a top-up object. You can retrieve +# individual top-ups, as well as list all top-ups. Top-ups are identified by a +# unique, random ID. +# +# Related guide: [Topping up your platform account](https://stripe.com/docs/connect/top-ups) +public type Topup record { + # ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # Amount transferred + int amount; + # Error code explaining reason for top-up failure if available (see [the errors section](https://stripe.com/docs/api#errors) for a list of codes) + @jsondata:Name {value: "failure_code"} + string? failureCode?; + # 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 + record {|string...;|} metadata; + # A string that identifies this top-up as part of a group + @jsondata:Name {value: "transfer_group"} + string? transferGroup?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Message to user further explaining reason for top-up failure if available + @jsondata:Name {value: "failure_message"} + string? failureMessage?; + # The source field is deprecated. It might not always be present in the API response + Source? 'source?; + # Extra information about a top-up. This will appear on your source's bank statement. It must contain at least one letter + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up + @jsondata:Name {value: "expected_availability_date"} + int? expectedAvailabilityDate?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "topup" 'object; + # The status of the top-up is either `canceled`, `failed`, `pending`, `reversed`, or `succeeded` + "canceled"|"failed"|"pending"|"reversed"|"succeeded" status; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingTransactionsTransactionQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTreasuryInboundTransfersIdQueriesExpandItemsString string; + +# +public type CouponsResourceCouponList record { + Coupon[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/coupons`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type AchTrackingDetailsParams record { + @jsondata:Name {value: "trace_id"} + string traceId; +}; + +# +public type PaymentPagesCheckoutSessionTotalDetails record { + # This is the sum of all the tax amounts + @jsondata:Name {value: "amount_tax"} + int amountTax; + # This is the sum of all the discounts + @jsondata:Name {value: "amount_discount"} + int amountDiscount; + PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown breakdown?; + # This is the sum of all the shipping amounts + @jsondata:Name {value: "amount_shipping"} + int? amountShipping?; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerBankAccountsId +public type GetCustomersCustomerBankAccountsIdQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerBankAccountsIdQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryReceivedCreditsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AccountsaccountBodyExpandItemsString string; + +# +public type PaymentMethodDetailsWechat record { +}; + +# Point in Time +public type GelatoDataIdNumberReportDate record { + # Numerical month between 1 and 12 + int? month?; + # The four-digit year + int? year?; + # Numerical day between 1 and 31 + int? day?; +}; + +public type FilesFilesAnyOf142 ""; + +# Represents the Queries record for the operation: GetTokensToken +public type GetTokensTokenQueries record { + # Specifies which fields in the response should be expanded + GetTokensTokenQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentFlowsAutomaticPaymentMethodsSetupIntent record { + # Controls whether this SetupIntent will accept redirect-based payment methods. + # + # Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/setup_intents/confirm) this SetupIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the setup + @jsondata:Name {value: "allow_redirects"} + "always"|"never" allowRedirects?; + # Automatically calculates compatible payment methods + boolean? enabled?; +}; + +# A Checkout Session represents your customer's session as they pay for +# one-time purchases or subscriptions through [Checkout](https://stripe.com/docs/payments/checkout) +# or [Payment Links](https://stripe.com/docs/payments/payment-links). We recommend creating a +# new Session each time your customer attempts to pay. +# +# Once payment is successful, the Checkout Session will contain a reference +# to the [Customer](https://stripe.com/docs/api/customers), and either the successful +# [PaymentIntent](https://stripe.com/docs/api/payment_intents) or an active +# [Subscription](https://stripe.com/docs/api/subscriptions). +# +# You can create a Checkout Session on your server and redirect to its URL +# to begin Checkout. +# +# Related guide: [Checkout quickstart](https://stripe.com/docs/checkout/quickstart) +public type CheckoutSession record { + # 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 + record {|string...;|}? metadata?; + # When set, provides configuration for actions to take if this Checkout Session expires + @jsondata:Name {value: "after_expiration"} + PaymentPagesCheckoutSessionAfterExpiration? afterExpiration?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Total of all items after discounts and taxes are applied + @jsondata:Name {value: "amount_total"} + int? amountTotal?; + @jsondata:Name {value: "line_items"} + PaymentPagesCheckoutSessionListLineItems1 lineItems?; + # The mode of the Checkout Session + "payment"|"setup"|"subscription" mode; + # The customer details including the customer's tax exempt status and the customer's tax IDs. Customer's address details are not present on Sessions in `setup` mode + @jsondata:Name {value: "customer_details"} + PaymentPagesCheckoutSessionCustomerDetails? customerDetails?; + # Enables user redeemable promotion codes + @jsondata:Name {value: "allow_promotion_codes"} + boolean? allowPromotionCodes?; + # Configure whether a Checkout Session creates a Customer when the Checkout Session completes + @jsondata:Name {value: "customer_creation"} + "always"|"if_required"? customerCreation?; + # A unique string to reference the Checkout Session. This can be a + # customer ID, a cart ID, or similar, and can be used to reconcile the + # Session with your internal systems + @jsondata:Name {value: "client_reference_id"} + string? clientReferenceId?; + # Client secret to be used when initializing Stripe.js embedded checkout + @jsondata:Name {value: "client_secret"} + string? clientSecret?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Describes whether Checkout should collect the customer's billing address. Defaults to `auto` + @jsondata:Name {value: "billing_address_collection"} + "auto"|"required"? billingAddressCollection?; + # When set, provides configuration for Checkout to collect a shipping address from a customer + @jsondata:Name {value: "shipping_address_collection"} + PaymentPagesCheckoutSessionShippingAddressCollection? shippingAddressCollection?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Collect additional information from your customer using custom fields. Up to 3 fields are supported + @jsondata:Name {value: "custom_fields"} + PaymentPagesCheckoutSessionCustomFields[] customFields; + # The shipping rate options applied to this Session + @jsondata:Name {value: "shipping_options"} + PaymentPagesCheckoutSessionShippingOption[] shippingOptions; + # Results of `consent_collection` for this session + PaymentPagesCheckoutSessionConsent? consent?; + # The ID of the original expired Checkout Session that triggered the recovery flow + @jsondata:Name {value: "recovered_from"} + string? recoveredFrom?; + # Describes the type of transaction being performed by Checkout in order to customize + # relevant text on the page, such as the submit button. `submit_type` can only be + # specified on Checkout Sessions in `payment` mode. If blank or `auto`, `pay` is used + @jsondata:Name {value: "submit_type"} + "auto"|"book"|"donate"|"pay"? submitType?; + # Information about the payment method configuration used for this Checkout session if using dynamic payment methods + @jsondata:Name {value: "payment_method_configuration_details"} + PaymentMethodConfigBizPaymentMethodConfigurationDetails? paymentMethodConfigurationDetails?; + @jsondata:Name {value: "tax_id_collection"} + PaymentPagesCheckoutSessionTaxIdCollection taxIdCollection?; + @jsondata:Name {value: "custom_text"} + PaymentPagesCheckoutSessionCustomText customText; + # If provided, this value will be used when the Customer object is created. + # If not provided, customers will be asked to enter their email address. + # Use this parameter to prefill customer data if you already have an email + # on file. To access information about the customer once the payment flow is + # complete, use the `customer` attribute + @jsondata:Name {value: "customer_email"} + string? customerEmail?; + # The ID of the PaymentIntent for Checkout Sessions in `payment` mode. You can't confirm or cancel the PaymentIntent for a Checkout Session. To cancel, [expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent? paymentIntent?; + # If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website + @jsondata:Name {value: "cancel_url"} + string? cancelUrl?; + # The UI mode of the Session. Defaults to `hosted` + @jsondata:Name {value: "ui_mode"} + "embedded"|"hosted"? uiMode?; + # Total of all items before discounts or taxes are applied + @jsondata:Name {value: "amount_subtotal"} + int? amountSubtotal?; + # String representing the object's type. Objects of the same type share the same value + "checkout.session" 'object; + # The status of the Checkout Session, one of `open`, `complete`, or `expired` + "complete"|"expired"|"open"? status?; + # Configure whether a Checkout Session should collect a payment method. Defaults to `always` + @jsondata:Name {value: "payment_method_collection"} + "always"|"if_required"? paymentMethodCollection?; + # This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-redirect-behavior) of embedded sessions. Defaults to `always` + @jsondata:Name {value: "redirect_on_completion"} + "always"|"if_required"|"never" redirectOnCompletion?; + # Shipping information for this Checkout Session + @jsondata:Name {value: "shipping_details"} + Shipping? shippingDetails?; + # The ID of the subscription for Checkout Sessions in `subscription` mode + string|Subscription? subscription?; + # The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used + "auto"|"bg"|"cs"|"da"|"de"|"el"|"en"|"en-GB"|"es"|"es-419"|"et"|"fi"|"fil"|"fr"|"fr-CA"|"hr"|"hu"|"id"|"it"|"ja"|"ko"|"lt"|"lv"|"ms"|"mt"|"nb"|"nl"|"pl"|"pt"|"pt-BR"|"ro"|"ru"|"sk"|"sl"|"sv"|"th"|"tr"|"vi"|"zh"|"zh-HK"|"zh-TW"? locale?; + # The ID of the Payment Link that created this Session + @jsondata:Name {value: "payment_link"} + string|PaymentLink? paymentLink?; + # Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode + @jsondata:Name {value: "saved_payment_method_options"} + PaymentPagesCheckoutSessionSavedPaymentMethodOptions? savedPaymentMethodOptions?; + # When set, provides configuration for the Checkout Session to gather active consent from customers + @jsondata:Name {value: "consent_collection"} + PaymentPagesCheckoutSessionConsentCollection? consentCollection?; + # The timestamp at which the Checkout Session will expire + @jsondata:Name {value: "expires_at"} + int expiresAt; + # Currency conversion details for automatic currency conversion sessions + @jsondata:Name {value: "currency_conversion"} + PaymentPagesCheckoutSessionCurrencyConversion? currencyConversion?; + @jsondata:Name {value: "phone_number_collection"} + PaymentPagesCheckoutSessionPhoneNumberCollection phoneNumberCollection?; + # Applies to Checkout Sessions with `ui_mode: embedded`. The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site + @jsondata:Name {value: "return_url"} + string returnUrl?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string? currency?; + # Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession + @jsondata:Name {value: "payment_method_options"} + CheckoutSessionPaymentMethodOptions? paymentMethodOptions?; + # The URL the customer will be directed to after the payment or + # subscription creation is successful + @jsondata:Name {value: "success_url"} + string? successUrl?; + # The ID of the SetupIntent for Checkout Sessions in `setup` mode. You can't confirm or cancel the SetupIntent for a Checkout Session. To cancel, [expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead + @jsondata:Name {value: "setup_intent"} + string|SetupIntent? setupIntent?; + # Details on the state of invoice creation for the Checkout Session + @jsondata:Name {value: "invoice_creation"} + PaymentPagesCheckoutSessionInvoiceCreation? invoiceCreation?; + # The details of the customer cost of shipping, including the customer chosen ShippingRate + @jsondata:Name {value: "shipping_cost"} + PaymentPagesCheckoutSessionShippingCost? shippingCost?; + # A list of the types of payment methods (e.g. card) this Checkout + # Session is allowed to accept + @jsondata:Name {value: "payment_method_types"} + CheckoutSessionPaymentmethodtypesItemsString[] paymentMethodTypes; + # Tax and discount details for the computed total amount + @jsondata:Name {value: "total_details"} + PaymentPagesCheckoutSessionTotalDetails? totalDetails?; + # The payment status of the Checkout Session, one of `paid`, `unpaid`, or `no_payment_required`. + # You can use this value to decide when to fulfill your customer's order + @jsondata:Name {value: "payment_status"} + "no_payment_required"|"paid"|"unpaid" paymentStatus; + # The URL to the Checkout Session. Redirect customers to this URL to take them to Checkout. If you’re using [Custom Domains](https://stripe.com/docs/payments/checkout/custom-domains), the URL will use your subdomain. Otherwise, it’ll use `checkout.stripe.com.` + # This value is only present when the session is active + string? url?; + @jsondata:Name {value: "automatic_tax"} + PaymentPagesCheckoutSessionAutomaticTax automaticTax; + # ID of the invoice created by the Checkout Session, if it exists + string|Invoice? invoice?; + # The ID of the customer for this Session. + # For Checkout Sessions in `subscription` mode or Checkout Sessions with `customer_creation` set as `always` in `payment` mode, Checkout + # will create a new customer object based on information provided + # during the payment flow unless an existing customer was provided when + # the Session was created + string|Customer|DeletedCustomer? customer?; +}; + +# +public type PaymentFlowsPrivatePaymentMethodsCardDetailsApiResourceEnterpriseFeaturesExtendedAuthorizationExtendedAuthorization record { + # Indicates whether or not the capture window is extended beyond the standard authorization + "disabled"|"enabled" status; +}; + +# This hash contains details about the customer acceptance of the Mandate +public type ConfirmationTokensResourceMandateDataResourceCustomerAcceptance record { + # If this is a Mandate accepted online, this hash contains details about the online acceptance + ConfirmationTokensResourceMandateDataResourceCustomerAcceptanceResourceOnline? online?; + # The type of customer acceptance information included with the Mandate + @constraint:String {maxLength: 5000} + string 'type; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerCashBalance +public type GetCustomersCustomerCashBalanceQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerCashBalanceQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type ChargeRefundBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTransfersQueriesExpandItemsString string; + +# +public type CustomerBalanceCustomerBalanceSettings record { + # The configuration for how funds that land in the customer cash balance are reconciled + @jsondata:Name {value: "reconciliation_mode"} + "automatic"|"manual" reconciliationMode; + # A flag to indicate if reconciliation mode returned is the user's default or is specific to this customer cash balance + @jsondata:Name {value: "using_merchant_default"} + boolean usingMerchantDefault; +}; + +@constraint:String {maxLength: 5000} +public type PaymentMethodsBodyExpandItemsString string; + +# +public type PaymentPagesCheckoutSessionTaxId record { + # The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, or `unknown` + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"unknown"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + # The value of the tax ID + string? value?; +}; + +# +public type IssuingCardholderUserTermsAcceptance record { + # The Unix timestamp marking when the cardholder accepted the Authorized User Terms + int? date?; + # The IP address from which the cardholder accepted the Authorized User Terms + string? ip?; + # The user agent of the browser from which the cardholder accepted the Authorized User Terms + @jsondata:Name {value: "user_agent"} + string? userAgent?; +}; + +@constraint:String {maxLength: 5000} +public type GetReportingReportTypesReportTypeQueriesExpandItemsString string; + +public type FilesFilesAnyOf192 ""; + +public type TrialSettingsConfig record { + @jsondata:Name {value: "end_behavior"} + EndBehavior endBehavior; +}; + +# +public type TokenCardNetworks record { + # The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card + string? preferred?; +}; + +# +public type PaymentLinksResourceConsentCollection record { + # If set to `auto`, enables the collection of customer consent for promotional communications + "auto"|"none"? promotions?; + # Settings related to the payment method reuse text shown in the Checkout UI + @jsondata:Name {value: "payment_method_reuse_agreement"} + PaymentLinksResourcePaymentMethodReuseAgreement? paymentMethodReuseAgreement?; + # If set to `required`, it requires cutomers to accept the terms of service before being able to pay. If set to `none`, customers won't be shown a checkbox to accept the terms of service + @jsondata:Name {value: "terms_of_service"} + "none"|"required"? termsOfService?; +}; + +public type AfterCompletionConfirmationPageParams record { + @jsondata:Name {value: "custom_message"} + string customMessage?; +}; + +# +public type MandateAmazonPay record { +}; + +# Fields that specify how to calculate a meter event's value +public type MeterValueSettingsParam record { + @jsondata:Name {value: "event_payload_key"} + string eventPayloadKey; +}; + +# An AccountSession allows a Connect platform to grant access to a connected account in Connect embedded components. +# +# We recommend that you create an AccountSession each time you need to display an embedded component +# to your user. Do not save AccountSessions to your database as they expire relatively +# quickly, and cannot be used more than once. +# +# Related guide: [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) +public type AccountSession record { + ConnectEmbeddedAccountSessionCreateComponents components; + # The timestamp at which this AccountSession will expire + @jsondata:Name {value: "expires_at"} + int expiresAt; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The client secret of this AccountSession. Used on the client to set up secure access to the given `account`. + # + # The client secret can be used to provide access to `account` from your frontend. It should not be stored, logged, or exposed to anyone other than the connected account. Make sure that you have TLS enabled on any page that includes the client secret. + # + # Refer to our docs to [setup Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) and learn about how `client_secret` should be handled + @jsondata:Name {value: "client_secret"} + string clientSecret; + # The ID of the account the AccountSession was created for + @constraint:String {maxLength: 5000} + string account; + # String representing the object's type. Objects of the same type share the same value + "account_session" 'object; +}; + +public type CustomFieldNumericParam1 record { + @jsondata:Name {value: "maximum_length"} + int maximumLength?; + @jsondata:Name {value: "minimum_length"} + int minimumLength?; +}; + +# +public type PaymentMethodDetailsGiropay record { + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Owner's verified full name. Values are verified or provided by Giropay directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated. + # Giropay rarely provides this information so the attribute is usually empty + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # Bank Identifier Code of the bank associated with the bank account + string? bic?; +}; + +@constraint:String {maxLength: 5000} +public type IdFailBody1ExpandItemsString string; + +# You can configure [webhook endpoints](https://docs.stripe.com/webhooks/) via the API to be +# notified about events that happen in your Stripe account or connected +# accounts. +# +# Most users configure webhooks from [the dashboard](https://dashboard.stripe.com/webhooks), which provides a user interface for registering and testing your webhook endpoints. +# +# Related guide: [Setting up webhooks](https://docs.stripe.com/webhooks/configure) +public type WebhookEndpoint record { + # 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 + record {|string...;|} metadata; + # The ID of the associated Connect application + string? application?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The list of events to enable for this endpoint. `['*']` indicates that all events are enabled, except those that require explicit selection + @jsondata:Name {value: "enabled_events"} + WebhookEndpointEnabledeventsItemsString[] enabledEvents; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An optional description of what the webhook is used for + string? description?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The endpoint's secret, used to generate [webhook signatures](https://docs.stripe.com/webhooks/signatures). Only returned at creation + @constraint:String {maxLength: 5000} + string secret?; + # The API version events are rendered as for this webhook endpoint + @jsondata:Name {value: "api_version"} + string? apiVersion?; + # The URL of the webhook endpoint + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "webhook_endpoint" 'object; + # The status of the webhook. It can be `enabled` or `disabled` + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type PaymentLinksResourceCustomTextPosition record { + # Text may be up to 1200 characters in length + @constraint:String {maxLength: 500} + string message; +}; + +# Represents the Queries record for the operation: GetTerminalConfigurations +public type GetTerminalConfigurationsQueries record { + # if present, only return the account default or non-default configurations + @http:Query {name: "is_account_default"} + boolean isAccountDefault?; + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTerminalConfigurationsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type PaymentMethodPaypal record { + # Owner's email. Values are provided by PayPal directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "payer_email"} + string? payerEmail?; + # PayPal account PayerID. This identifier uniquely identifies the PayPal customer + @jsondata:Name {value: "payer_id"} + string? payerId?; +}; + +# Any use of an [issued card](https://stripe.com/docs/issuing) that results in funds entering or leaving +# your Stripe account, such as a completed purchase or refund, is represented by an Issuing +# `Transaction` object. +# +# Related guide: [Issued card transactions](https://stripe.com/docs/issuing/purchases/transactions) +public type IssuingTransaction record { + # The amount that the merchant will receive, denominated in `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). It will be different from `amount` if the merchant is taking payment in a different currency + @jsondata:Name {value: "merchant_amount"} + int merchantAmount; + # ID of the [balance transaction](https://stripe.com/docs/api/balance_transactions) associated with this transaction + @jsondata:Name {value: "balance_transaction"} + string|BalanceTransaction? balanceTransaction?; + # If you've disputed the transaction, the ID of the dispute + string|IssuingDispute? dispute?; + # The transaction amount, which will be reflected in your balance. This amount is in your currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_details"} + IssuingTransactionAmountDetails? amountDetails?; + # 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 + record {|string...;|} metadata; + # The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay` + "apple_pay"|"google_pay"|"samsung_pay"? wallet?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Additional purchase information that is optionally provided by the merchant + @jsondata:Name {value: "purchase_details"} + IssuingTransactionPurchaseDetails? purchaseDetails?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "merchant_data"} + IssuingAuthorizationMerchantData merchantData; + # The currency with which the merchant is taking payment + @jsondata:Name {value: "merchant_currency"} + string merchantCurrency; + # The cardholder to whom this transaction belongs + string|IssuingCardholder? cardholder?; + # The nature of the transaction + "capture"|"refund" 'type; + # [Token](https://stripe.com/docs/api/issuing/tokens/object) object used for this transaction. If a network token was not used for this transaction, this field will be null + string|IssuingToken? token?; + # The `Authorization` object that led to this transaction + string|IssuingAuthorization? authorization?; + # Details about the transaction, such as processing dates, set by the card network + @jsondata:Name {value: "network_data"} + IssuingTransactionNetworkData? networkData?; + # [Treasury](https://stripe.com/docs/api/treasury) details related to this transaction if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts + IssuingTransactionTreasury? treasury?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The card used to make this transaction + string|IssuingCard card; + # String representing the object's type. Objects of the same type share the same value + "issuing.transaction" 'object; +}; + +# Represents a per-setup override of a reader configuration +public type TerminalReaderReaderResourceProcessSetupConfig record { + # Enable customer initiated cancellation when processing this SetupIntent + @jsondata:Name {value: "enable_customer_cancellation"} + boolean enableCustomerCancellation?; +}; + +@constraint:String {maxLength: 5000} +public type TerminalLocationsBodyExpandItemsString string; + +# +public type TreasuryReceivedCreditsResourceStatusTransitions record { + # Timestamp describing when the CreditReversal changed status to `posted` + @jsondata:Name {value: "posted_at"} + int? postedAt?; +}; + +# The place where your business is located +public type HeadOfficeParam record { + ValidatedCountryAddress address; +}; + +# +public type PaymentLinksResourceInvoiceCreation record { + # Configuration for the invoice. Default invoice values will be used if unspecified + @jsondata:Name {value: "invoice_data"} + PaymentLinksResourceInvoiceSettings? invoiceData?; + # Enable creating an invoice on successful payment + boolean enabled; +}; + +public type FilesFilesAnyOf172 ""; + +# Represents the Queries record for the operation: GetProductsId +public type GetProductsIdQueries record { + # Specifies which fields in the response should be expanded + GetProductsIdQueriesExpandItemsString[] expand?; +}; + +public type financial_connectionsPermissionsItemsString "balances"|"ownership"|"payment_method"|"transactions"; + +# +public type PaymentMethodCard record { + # 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 + string? country?; + # The last four digits of the card + @constraint:String {maxLength: 5000} + string last4; + # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown` + @constraint:String {maxLength: 5000} + string funding; + # Contains details on how this Card may be used for 3D Secure authentication + @jsondata:Name {value: "three_d_secure_usage"} + ThreeDSecureUsage? threeDSecureUsage?; + # If this Card is part of a card wallet, this contains the details of the card wallet + PaymentMethodCardWallet? wallet?; + # The brand to use when displaying the card, this accounts for customer's brand choice on dual-branded cards. Can be `american_express`, `cartes_bancaires`, `diners_club`, `discover`, `eftpos_australia`, `interac`, `jcb`, `mastercard`, `union_pay`, `visa`, or `other` and may contain more values in the future + @jsondata:Name {value: "display_brand"} + string? displayBrand?; + # Two-digit number representing the card's expiration month + @jsondata:Name {value: "exp_month"} + int expMonth; + # Four-digit number representing the card's expiration year + @jsondata:Name {value: "exp_year"} + int expYear; + # Contains information about card networks that can be used to process the payment + Networks? networks?; + # Checks on Card address and CVC if provided + PaymentMethodCardChecks? checks?; + # Details of the original PaymentMethod that created this object + @jsondata:Name {value: "generated_from"} + PaymentMethodCardGeneratedCard? generatedFrom?; + # 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. + # + # *As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.* + string? fingerprint?; + # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown` + @constraint:String {maxLength: 5000} + string brand; +}; + +# An early fraud warning indicates that the card issuer has notified us that a +# charge may be fraudulent. +# +# Related guide: [Early fraud warnings](https://stripe.com/docs/disputes/measuring#early-fraud-warnings) +public type RadarEarlyFraudWarning record { + # ID of the charge this early fraud warning is for, optionally expanded + string|Charge charge; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later + boolean actionable; + # The type of fraud labelled by the issuer. One of `card_never_received`, `fraudulent_card_application`, `made_with_counterfeit_card`, `made_with_lost_card`, `made_with_stolen_card`, `misc`, `unauthorized_use_of_card` + @jsondata:Name {value: "fraud_type"} + string fraudType; + # ID of the Payment Intent this early fraud warning is for, optionally expanded + @jsondata:Name {value: "payment_intent"} + string|PaymentIntent paymentIntent?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "radar.early_fraud_warning" 'object; +}; + +# Represents the Queries record for the operation: GetCustomersCustomerSubscriptions +public type GetCustomersCustomerSubscriptionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerSubscriptionsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type Features record { + @constraint:String {maxLength: 5000} + string name; +}; + +# Details on the account's acceptance of the [Stripe Services Agreement](/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty +public type TosAcceptanceSpecs record { + int date?; + @jsondata:Name {value: "service_agreement"} + string serviceAgreement?; + string ip?; + @jsondata:Name {value: "user_agent"} + string userAgent?; +}; + +public type CurrentPeriodEndRangeQuerySpecs462 int; + +# +public type PaymentMethodOptionsAlipay record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +# Indicates the status of a specific payment method on a payment method domain +public type PaymentMethodDomainResourcePaymentMethodStatus record { + @jsondata:Name {value: "status_details"} + PaymentMethodDomainResourcePaymentMethodStatusDetails statusDetails?; + # The status of the payment method on the domain + "active"|"inactive" status; +}; + +public type FilesFilesAnyOf182 ""; + +# Represents a per-transaction tipping configuration +public type TerminalReaderReaderResourceTippingConfig record { + # Amount used to calculate tip suggestions on tipping selection screen for this transaction. Must be a positive integer in the smallest currency unit (e.g., 100 cents to represent $1.00 or 100 to represent ¥100, a zero-decimal currency) + @jsondata:Name {value: "amount_eligible"} + int amountEligible?; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerPaymentMethodsPaymentMethodQueriesExpandItemsString string; + +# A Mandate is a record of the permission that your customer gives you to debit their payment method +public type Mandate record { + @jsondata:Name {value: "customer_acceptance"} + CustomerAcceptance customerAcceptance; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "multi_use"} + MandateMultiUse multiUse?; + # The account (if any) that the mandate is intended for + @jsondata:Name {value: "on_behalf_of"} + string onBehalfOf?; + @jsondata:Name {value: "payment_method_details"} + MandatePaymentMethodDetails paymentMethodDetails; + @jsondata:Name {value: "single_use"} + MandateSingleUse singleUse?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The type of the mandate + "multi_use"|"single_use" 'type; + # ID of the payment method associated with this mandate + @jsondata:Name {value: "payment_method"} + string|PaymentMethod paymentMethod; + # String representing the object's type. Objects of the same type share the same value + "mandate" 'object; + # The mandate status indicates whether or not you can use it to initiate a payment + "active"|"inactive"|"pending" status; +}; + +# +public type SubscriptionsResourcePaymentSettings record { + # Either `off`, or `on_subscription`. With `on_subscription` Stripe updates `subscription.default_payment_method` when a subscription payment succeeds + @jsondata:Name {value: "save_default_payment_method"} + "off"|"on_subscription"? saveDefaultPaymentMethod?; + # The list of payment method types to provide to every invoice created by the subscription. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice) + @jsondata:Name {value: "payment_method_types"} + ("ach_credit_transfer"|"ach_debit"|"acss_debit"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"konbini"|"link"|"p24"|"paynow"|"paypal"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"us_bank_account"|"wechat_pay")[]? paymentMethodTypes?; + # Payment-method-specific configuration to provide to invoices created by the subscription + @jsondata:Name {value: "payment_method_options"} + SubscriptionsResourcePaymentMethodOptions? paymentMethodOptions?; +}; + +public type Created16RangeQuerySpecs172 int; + +# Subscription items allow you to create customer subscriptions with more than +# one plan, making it easy to represent complex billing relationships +public type SubscriptionItem record { + # 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 + record {|string...;|} metadata; + # The [quantity](https://stripe.com/docs/subscriptions/quantities) of the plan to which the customer should be subscribed + int quantity?; + # The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount + SubscriptionItemDiscounts[] discounts; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + Price price; + # Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period + @jsondata:Name {value: "billing_thresholds"} + SubscriptionItemBillingThresholds? billingThresholds?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The `subscription` this `subscription_item` belongs to + @constraint:String {maxLength: 5000} + string subscription; + # String representing the object's type. Objects of the same type share the same value + "subscription_item" 'object; + # The tax rates which apply to this `subscription_item`. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item` + @jsondata:Name {value: "tax_rates"} + TaxRate[]? taxRates?; +}; + +@constraint:String {maxLength: 5000} +public type GetChargesChargeDisputeQueriesExpandItemsString string; + +public type DeletedPaymentSource DeletedBankAccount|DeletedCard; + +public type TerminalConfigurationsBody record {| + # Configurations for collecting transactions offline + record {boolean enabled;}|"" offline?; + # Specifies which fields in the response should be expanded + TerminalConfigurationsBodyExpandItemsString[] expand?; + # Tipping configurations for readers supporting on-reader tips + record {record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} aud?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} cad?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} chf?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} czk?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} dkk?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} eur?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} gbp?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} hkd?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} myr?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} nok?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} nzd?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} sek?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} sgd?; record {int[] fixed_amounts?; int[] percentages?; int smart_tip_threshold?;} usd?;}|"" tipping?; + @jsondata:Name {value: "verifone_p400"} + VerifoneP400 verifoneP400?; + @jsondata:Name {value: "bbpos_wisepos_e"} + BbposWisePose bbposWiseposE?; + # Name of the configuration + @constraint:String {maxLength: 100} + string name?; + @jsondata:Name {value: "reboot_window"} + RebootWindow rebootWindow?; + @jsondata:Name {value: "stripe_s700"} + StripeS700 stripeS700?; +|}; + +# +public type ExternalAccountList record { + # The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards + Polymorphic[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetInvoiceitemsInvoiceitemQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetCustomersCustomerBalanceTransactionsTransaction +public type GetCustomersCustomerBalanceTransactionsTransactionQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerBalanceTransactionsTransactionQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionItemsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTestHelpersTestClocksTestClockQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetChargesChargeRefunds +public type GetChargesChargeRefundsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetChargesChargeRefundsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type ProductsBodyExpandItemsString string; + +# +public type ConnectCollectionTransfer record { + # Amount transferred, in cents (or local equivalent) + int amount; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # ID of the account that funds are being collected for + string|Account destination; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "connect_collection_transfer" 'object; +}; + +# +public type InvoiceRenderingPdf record { + # Page size of invoice pdf. Options include a4, letter, and auto. If set to auto, page size will be switched to a4 or letter based on customer locale + @jsondata:Name {value: "page_size"} + "a4"|"auto"|"letter"? pageSize?; +}; + +public type OutboundPaymentsidBody record {| + # Specifies which fields in the response should be expanded + OutboundPaymentsidBodyExpandItemsString[] expand?; + @jsondata:Name {value: "tracking_details"} + TrackingDetailsParams trackingDetails; +|}; + +# +public type PaymentMethodAmazonPay record { +}; + +# An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details +public type TransferDataSpecs record { + int amount?; + @constraint:String {maxLength: 5000} + string destination; +}; + +# The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share) +public type LoginPageUpdateParam record { + boolean enabled; +}; + +# +public type TaxProductRegistrationsResourceCountryOptionsEurope record { + TaxProductRegistrationsResourceCountryOptionsEuStandard standard?; + # Type of registration in an EU country + "ioss"|"oss_non_union"|"oss_union"|"standard" 'type; +}; + +# End user details +public type EndUserDetailsParams record { + @jsondata:Name {value: "ip_address"} + string ipAddress?; + boolean present; +}; + +# +public type PaymentMethodDetailsCashapp record { + # A public identifier for buyers using Cash App + string? cashtag?; + # A unique and immutable identifier assigned by Cash App to every buyer + @jsondata:Name {value: "buyer_id"} + string? buyerId?; +}; + +# +public type PaymentIntentPaymentMethodOptionsUsBankAccount record { + @jsondata:Name {value: "financial_connections"} + LinkedAccountOptionsUsBankAccount financialConnections?; + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + # Preferred transaction settlement speed + @jsondata:Name {value: "preferred_settlement_speed"} + "fastest"|"standard" preferredSettlementSpeed?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + @jsondata:Name {value: "mandate_options"} + PaymentMethodOptionsUsBankAccountMandateOptions mandateOptions?; +}; + +@constraint:String {maxLength: 5000} +public type TopupsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type AuthorizationDeclineBodyExpandItemsString string; + +public type SubscriptionDefaultTaxRatesAnyOf1 SubscriptionDefaultTaxRatesAnyOf1ItemsString[]; + +# +public type PaymentPagesCheckoutSessionShippingAddressCollection record { + # An array of two-letter ISO country codes representing which countries Checkout should provide as options for + # shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI` + @jsondata:Name {value: "allowed_countries"} + ("AC"|"AD"|"AE"|"AF"|"AG"|"AI"|"AL"|"AM"|"AO"|"AQ"|"AR"|"AT"|"AU"|"AW"|"AX"|"AZ"|"BA"|"BB"|"BD"|"BE"|"BF"|"BG"|"BH"|"BI"|"BJ"|"BL"|"BM"|"BN"|"BO"|"BQ"|"BR"|"BS"|"BT"|"BV"|"BW"|"BY"|"BZ"|"CA"|"CD"|"CF"|"CG"|"CH"|"CI"|"CK"|"CL"|"CM"|"CN"|"CO"|"CR"|"CV"|"CW"|"CY"|"CZ"|"DE"|"DJ"|"DK"|"DM"|"DO"|"DZ"|"EC"|"EE"|"EG"|"EH"|"ER"|"ES"|"ET"|"FI"|"FJ"|"FK"|"FO"|"FR"|"GA"|"GB"|"GD"|"GE"|"GF"|"GG"|"GH"|"GI"|"GL"|"GM"|"GN"|"GP"|"GQ"|"GR"|"GS"|"GT"|"GU"|"GW"|"GY"|"HK"|"HN"|"HR"|"HT"|"HU"|"ID"|"IE"|"IL"|"IM"|"IN"|"IO"|"IQ"|"IS"|"IT"|"JE"|"JM"|"JO"|"JP"|"KE"|"KG"|"KH"|"KI"|"KM"|"KN"|"KR"|"KW"|"KY"|"KZ"|"LA"|"LB"|"LC"|"LI"|"LK"|"LR"|"LS"|"LT"|"LU"|"LV"|"LY"|"MA"|"MC"|"MD"|"ME"|"MF"|"MG"|"MK"|"ML"|"MM"|"MN"|"MO"|"MQ"|"MR"|"MS"|"MT"|"MU"|"MV"|"MW"|"MX"|"MY"|"MZ"|"NA"|"NC"|"NE"|"NG"|"NI"|"NL"|"NO"|"NP"|"NR"|"NU"|"NZ"|"OM"|"PA"|"PE"|"PF"|"PG"|"PH"|"PK"|"PL"|"PM"|"PN"|"PR"|"PS"|"PT"|"PY"|"QA"|"RE"|"RO"|"RS"|"RU"|"RW"|"SA"|"SB"|"SC"|"SE"|"SG"|"SH"|"SI"|"SJ"|"SK"|"SL"|"SM"|"SN"|"SO"|"SR"|"SS"|"ST"|"SV"|"SX"|"SZ"|"TA"|"TC"|"TD"|"TF"|"TG"|"TH"|"TJ"|"TK"|"TL"|"TM"|"TN"|"TO"|"TR"|"TT"|"TV"|"TW"|"TZ"|"UA"|"UG"|"US"|"UY"|"UZ"|"VA"|"VC"|"VE"|"VG"|"VN"|"VU"|"WF"|"WS"|"XK"|"YE"|"YT"|"ZA"|"ZM"|"ZW"|"ZZ")[] allowedCountries; +}; + +@constraint:String {maxLength: 5000} +public type GetWebhookEndpointsWebhookEndpointQueriesExpandItemsString string; + +# Configuration for the components supported by this Customer Session +public type CustomerSessionResourceComponents record { + @jsondata:Name {value: "payment_element"} + CustomerSessionResourceComponentsResourcePaymentElement paymentElement; + @jsondata:Name {value: "pricing_table"} + CustomerSessionResourceComponentsResourcePricingTable pricingTable; + @jsondata:Name {value: "buy_button"} + CustomerSessionResourceComponentsResourceBuyButton buyButton; +}; + +# +public type PaymentMethodDetailsCardPresentOffline record { + # Time at which the payment was collected while offline + @jsondata:Name {value: "stored_at"} + int? storedAt?; +}; + +# Stripe needs to collect certain pieces of information about each account +# created. These requirements can differ depending on the account's country. The +# Country Specs API makes these rules available to your integration. +# +# You can also view the information from this API call as [an online +# guide](/docs/connect/required-verification-information) +public type CountrySpec record { + # Payment methods available in the specified country. You may need to enable some payment methods (e.g., [ACH](https://stripe.com/docs/ach)) on your account before they appear in this list. The `stripe` payment method refers to [charging through your platform](https://stripe.com/docs/connect/destination-charges) + @jsondata:Name {value: "supported_payment_methods"} + CountrySpecSupportedpaymentmethodsItemsString[] supportedPaymentMethods; + # Currencies that can be accepted in the specified country (for payments) + @jsondata:Name {value: "supported_payment_currencies"} + CountrySpecSupportedpaymentcurrenciesItemsString[] supportedPaymentCurrencies; + # Countries that can accept transfers from the specified country + @jsondata:Name {value: "supported_transfer_countries"} + CountrySpecSupportedtransfercountriesItemsString[] supportedTransferCountries; + # Currencies that can be accepted in the specific country (for transfers) + @jsondata:Name {value: "supported_bank_account_currencies"} + record {|string[]...;|} supportedBankAccountCurrencies; + # Unique identifier for the object. Represented as the ISO country code for this country + @constraint:String {maxLength: 5000} + string id; + # The default currency for this country. This applies to both payment methods and bank accounts + @jsondata:Name {value: "default_currency"} + string defaultCurrency; + # String representing the object's type. Objects of the same type share the same value + "country_spec" 'object; + @jsondata:Name {value: "verification_fields"} + CountrySpecVerificationFields verificationFields; +}; + +@constraint:String {maxLength: 5000} +public type PersonalizationDesignDeactivateBodyExpandItemsString string; + +public type ScopeParam2 record { + "account"|"user" 'type; + @constraint:String {maxLength: 5000} + string user?; +}; + +# Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user +public type ScopeParam1 record { + "account"|"user" 'type; + @constraint:String {maxLength: 5000} + string user?; +}; + +public type NetworkOptionsParam record { + @jsondata:Name {value: "cartes_bancaires"} + CartesBancairesNetworkOptionsParam cartesBancaires?; +}; + +# +public type PaymentIntentNextActionPaynowDisplayQrCode record { + # The image_url_png string used to render QR code + @jsondata:Name {value: "image_url_png"} + string imageUrlPng; + # The raw data string used to generate QR code, it should be used together with QR code library + @constraint:String {maxLength: 5000} + string data; + # The URL to the hosted PayNow instructions page, which allows customers to view the PayNow QR code + @jsondata:Name {value: "hosted_instructions_url"} + string? hostedInstructionsUrl?; + # The image_url_svg string used to render QR code + @jsondata:Name {value: "image_url_svg"} + string imageUrlSvg; +}; + +# +public type IssuingCardGooglePay record { + # Google Pay Eligibility + boolean eligible; + # Reason the card is ineligible for Google Pay + @jsondata:Name {value: "ineligible_reason"} + "missing_agreement"|"missing_cardholder_contact"|"unsupported_region"? ineligibleReason?; +}; + +@constraint:String {maxLength: 5000} +public type GetRefundsRefundQueriesExpandItemsString string; + +# +public type PaymentFlowsAmountDetailsResourceTip record { + # Portion of the amount that corresponds to a tip + int amount?; +}; + +@constraint:String {maxLength: 5000} +public type GetCheckoutSessionsSessionLineItemsQueriesExpandItemsString string; + +# +public type PaymentMethodDetailsMobilepay record { + # Internal card details + InternalCard? card?; +}; + +# +public type TaxProductResourceLineItemTaxBreakdown record { + # The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax + @jsondata:Name {value: "tax_rate_details"} + TaxProductResourceLineItemTaxRateDetails? taxRateDetails?; + # The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported + @jsondata:Name {value: "taxability_reason"} + "customer_exempt"|"not_collecting"|"not_subject_to_tax"|"not_supported"|"portion_product_exempt"|"portion_reduced_rated"|"portion_standard_rated"|"product_exempt"|"product_exempt_holiday"|"proportionally_rated"|"reduced_rated"|"reverse_charge"|"standard_rated"|"taxable_basis_reduced"|"zero_rated" taxabilityReason; + TaxProductResourceJurisdiction jurisdiction; + # The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "taxable_amount"} + int taxableAmount; + # Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address) + "destination"|"origin" sourcing; +}; + +# +public type DeletedPrice record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "price" 'object; +}; + +# The credit note line item object +public type CreditNoteLineItem record { + # The amount in cents (or local equivalent) representing the unit amount being credited for this line item, excluding all tax and discounts + @jsondata:Name {value: "unit_amount_excluding_tax"} + string? unitAmountExcludingTax?; + # The integer amount in cents (or local equivalent) representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts + int amount; + # The number of units of product being credited + int? quantity?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The integer amount in cents (or local equivalent) representing the discount being credited for this line item + @jsondata:Name {value: "discount_amount"} + int discountAmount; + # Description of the item being credited + string? description?; + # Same as `unit_amount`, but contains a decimal value with at most 12 decimal places + @jsondata:Name {value: "unit_amount_decimal"} + string? unitAmountDecimal?; + # The cost of each unit of product being credited + @jsondata:Name {value: "unit_amount"} + int? unitAmount?; + # ID of the invoice line item being credited + @jsondata:Name {value: "invoice_line_item"} + string invoiceLineItem?; + # The type of the credit note line item, one of `invoice_line_item` or `custom_line_item`. When the type is `invoice_line_item` there is an additional `invoice_line_item` property on the resource the value of which is the id of the credited line item on the invoice + "custom_line_item"|"invoice_line_item" 'type; + # The amount of tax calculated per tax rate for this line item + @jsondata:Name {value: "tax_amounts"} + CreditNoteTaxAmount[] taxAmounts; + # The tax rates which apply to the line item + @jsondata:Name {value: "tax_rates"} + TaxRate[] taxRates; + # The integer amount in cents (or local equivalent) representing the amount being credited for this line item, excluding all tax and discounts + @jsondata:Name {value: "amount_excluding_tax"} + int? amountExcludingTax?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The amount of discount calculated per discount for this line item + @jsondata:Name {value: "discount_amounts"} + DiscountsResourceDiscountAmount[] discountAmounts; + # String representing the object's type. Objects of the same type share the same value + "credit_note_line_item" 'object; +}; + +# Represents the Queries record for the operation: GetApplePayDomainsDomain +public type GetApplePayDomainsDomainQueries record { + # Specifies which fields in the response should be expanded + GetApplePayDomainsDomainQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetConfirmationTokensConfirmationTokenQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TreasuryInboundTransfersBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TransfersBodyExpandItemsString string; + +public type ReaderSetReaderDisplayBody record {| + # Specifies which fields in the response should be expanded + ReaderSetReaderDisplayBodyExpandItemsString[] expand?; + # Type + "cart" 'type; + Cart cart?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTransfersIdReversalsQueriesExpandItemsString string; + +# You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal +public type TreasuryCreditReversal record { + # The FinancialAccount to reverse funds from + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) transferred + int amount; + # 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 + record {|string...;|} metadata; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The rails used to reverse the funds + "ach"|"stripe" network; + # A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses + @jsondata:Name {value: "hosted_regulatory_receipt_url"} + string? hostedRegulatoryReceiptUrl?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + @jsondata:Name {value: "status_transitions"} + TreasuryReceivedCreditsResourceStatusTransitions statusTransitions; + # The ReceivedCredit being reversed + @jsondata:Name {value: "received_credit"} + string receivedCredit; + # The Transaction associated with this object + string|TreasuryTransaction? 'transaction?; + # String representing the object's type. Objects of the same type share the same value + "treasury.credit_reversal" 'object; + # Status of the CreditReversal + "canceled"|"posted"|"processing" status; +}; + +public type RefundsBody record {| + # String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms + "duplicate"|"fraudulent"|"requested_by_customer" reason?; + int amount?; + # Specifies which fields in the response should be expanded + RefundsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The identifier of the charge to refund + @constraint:String {maxLength: 5000} + string charge?; + # For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions + @jsondata:Name {value: "instructions_email"} + string instructionsEmail?; + # Origin of the refund + "customer_balance" origin?; + # Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge + @jsondata:Name {value: "refund_application_fee"} + boolean refundApplicationFee?; + # Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge + @jsondata:Name {value: "reverse_transfer"} + boolean reverseTransfer?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # The identifier of the PaymentIntent to refund + @jsondata:Name {value: "payment_intent"} + string paymentIntent?; + # Customer whose customer balance to refund from + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# +public type PortalSubscriptionUpdateProduct record { + # The product ID + @constraint:String {maxLength: 5000} + string product; + # The list of price IDs which, when subscribed to, a subscription can be updated + PortalSubscriptionUpdateProductPricesItemsString[] prices; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryFinancialAccountsFinancialAccountFeaturesQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetCouponsCoupon +public type GetCouponsCouponQueries record { + # Specifies which fields in the response should be expanded + GetCouponsCouponQueriesExpandItemsString[] expand?; +}; + +@constraint:String {maxLength: 5000} +public type GetPaymentLinksPaymentLinkLineItemsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type SettlementssettlementBodyExpandItemsString string; + +public type InvoiceSettingSubscriptionSchedulePhaseSettingAccountTaxIds AccountTaxIdsAnyOf11|TaxId|DeletedTaxId; + +public type FilesFilesAnyOf112 ""; + +# +public type SubscriptionSchedulesResourceScheduleList record { + SubscriptionSchedule[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/subscription_schedules`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type PricingTableParam record { + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetTaxIdsIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ReaderProcessSetupIntentBodyExpandItemsString string; + +public type AnnualRevenueSpecs record { + int amount; + @jsondata:Name {value: "fiscal_year_end"} + string fiscalYearEnd; + string currency; +}; + +public type FilesFilesAnyOf122 ""; + +public type RecurringPriceData record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product; + RecurringAdhoc recurring; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# A PaymentIntent guides you through the process of collecting a payment from your customer. +# We recommend that you create exactly one PaymentIntent for each order or +# customer session in your system. You can reference the PaymentIntent later to +# see the history of payment attempts for a particular session. +# +# A PaymentIntent transitions through +# [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses) +# throughout its lifetime as it interfaces with Stripe.js to perform +# authentication flows and ultimately creates at most one successful charge. +# +# Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents) +public type PaymentIntent record { + @jsondata:Name {value: "amount_details"} + PaymentFlowsAmountDetails amountDetails?; + # 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. Learn more about [storing information in metadata](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata) + record {|string...;|} metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Amount that can be captured from this PaymentIntent + @jsondata:Name {value: "amount_capturable"} + int amountCapturable?; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long + @jsondata:Name {value: "statement_descriptor"} + string? statementDescriptor?; + # The data that automatically creates a Transfer after the payment finalizes. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "transfer_data"} + TransferData? transferData?; + # The latest charge created by this PaymentIntent + @jsondata:Name {value: "latest_charge"} + string|Charge? latestCharge?; + # Shipping information for this PaymentIntent + Shipping? shipping?; + # Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) + @jsondata:Name {value: "automatic_payment_methods"} + PaymentFlowsAutomaticPaymentMethodsPaymentIntent? automaticPaymentMethods?; + # ID of the review associated with this PaymentIntent, if any + string|Review? review?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. + # + # The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret. + # + # Refer to our docs to [accept a payment](https://stripe.com/docs/payments/accept-a-payment?ui=elements) and learn about how `client_secret` should be handled + @jsondata:Name {value: "client_secret"} + string? clientSecret?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Payment-method-specific configuration for this PaymentIntent + @jsondata:Name {value: "payment_method_options"} + PaymentIntentPaymentMethodOptions? paymentMethodOptions?; + # ID of the payment method used in this PaymentIntent + @jsondata:Name {value: "payment_method"} + string|PaymentMethod? paymentMethod?; + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual" captureMethod; + # Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99) + int amount; + # A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) + @jsondata:Name {value: "transfer_group"} + string? transferGroup?; + # The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details + @jsondata:Name {value: "on_behalf_of"} + string|Account? onBehalfOf?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The list of payment method types (e.g. card) that this PaymentIntent is allowed to use + @jsondata:Name {value: "payment_method_types"} + PaymentIntentPaymentmethodtypesItemsString[] paymentMethodTypes; + # Amount that this PaymentIntent collects + @jsondata:Name {value: "amount_received"} + int amountReceived?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session"? setupFutureUsage?; + # Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment + @jsondata:Name {value: "confirmation_method"} + "automatic"|"manual" confirmationMethod; + # Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, or `automatic`) + @jsondata:Name {value: "cancellation_reason"} + "abandoned"|"automatic"|"duplicate"|"failed_invoice"|"fraudulent"|"requested_by_customer"|"void_invoice"? cancellationReason?; + # Information about the payment method configuration used for this PaymentIntent + @jsondata:Name {value: "payment_method_configuration_details"} + PaymentMethodConfigBizPaymentMethodConfigurationDetails? paymentMethodConfigurationDetails?; + # ID of the Connect application that created the PaymentIntent + string|Application? application?; + # Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails) + @jsondata:Name {value: "receipt_email"} + string? receiptEmail?; + # The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason + @jsondata:Name {value: "last_payment_error"} + ApiErrors? lastPaymentError?; + # If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source + @jsondata:Name {value: "next_action"} + PaymentIntentNextAction? nextAction?; + # If present, this property tells you about the processing state of the payment + PaymentIntentProcessing? processing?; + # ID of the invoice that created this PaymentIntent, if it exists + string|Invoice? invoice?; + # Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor + @jsondata:Name {value: "statement_descriptor_suffix"} + string? statementDescriptorSuffix?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "application_fee_amount"} + int? applicationFeeAmount?; + # ID of the Customer this PaymentIntent belongs to, if one exists. + # + # Payment methods attached to other Customers cannot be used with this PaymentIntent. + # + # If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "payment_intent" 'object; + # Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses) + "canceled"|"processing"|"requires_action"|"requires_capture"|"requires_confirmation"|"requires_payment_method"|"succeeded" status; +}; + +# Represents the Queries record for the operation: GetTransfersTransferReversalsId +public type GetTransfersTransferReversalsIdQueries record { + # Specifies which fields in the response should be expanded + GetTransfersTransferReversalsIdQueriesExpandItemsString[] expand?; +}; + +# +public type MandateAuBecsDebit record { + # The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively + @constraint:String {maxLength: 5000} + string url; +}; + +# A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode +public type PaymentIntentDataParams1 record { + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual" captureMethod?; + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + record {|string...;|} metadata?; + @jsondata:Name {value: "transfer_group"} + string transferGroup?; + @constraint:String {maxLength: 1000} + string description?; + @jsondata:Name {value: "setup_future_usage"} + "off_session"|"on_session" setupFutureUsage?; + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; +}; + +@constraint:String {maxLength: 5000} +public type BankAccountsidBodyExpandItemsString string; + +# PaymentMethod objects represent your customer's payment instruments. +# You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to +# Customer objects to store instrument details for future payments. +# +# Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios) +public type PaymentMethod record { + PaymentMethodPaynow paynow?; + @jsondata:Name {value: "billing_details"} + BillingDetails billingDetails; + # 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 + record {|string...;|}? metadata?; + @jsondata:Name {value: "interac_present"} + PaymentMethodInteracPresent interacPresent?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "radar_options"} + RadarRadarOptions radarOptions?; + PaymentMethodBoleto boleto?; + # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"card_present"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"interac_present"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodAuBecsDebit auBecsDebit?; + PaymentMethodOxxo oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodAfterpayClearpay afterpayClearpay?; + PaymentMethodSwish swish?; + PaymentMethodTwint twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodUsBankAccount usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodCustomerBalance customerBalance?; + PaymentMethodCashapp cashapp?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + PaymentMethodPix pix?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodRevolutPay revolutPay?; + PaymentMethodZip zip?; + PaymentMethodIdeal ideal?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + PaymentMethodEps eps?; + PaymentMethodKonbini konbini?; + PaymentMethodSofort sofort?; + PaymentMethodPromptpay promptpay?; + PaymentMethodAffirm affirm?; + PaymentMethodBancontact bancontact?; + PaymentMethodKlarna klarna?; + PaymentMethodP24 p24?; + # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified” + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + PaymentMethodCard card?; + PaymentMethodMultibanco multibanco?; + # String representing the object's type. Objects of the same type share the same value + "payment_method" 'object; + PaymentMethodBlik blik?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodAcssDebit acssDebit?; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodBacsDebit bacsDebit?; + PaymentMethodLink link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodAmazonPay amazonPay?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodWechatPay wechatPay?; + PaymentMethodPaypal paypal?; + PaymentMethodGiropay giropay?; + PaymentFlowsPrivatePaymentMethodsAlipay alipay?; + @jsondata:Name {value: "card_present"} + PaymentMethodCardPresent cardPresent?; + PaymentMethodFpx fpx?; + PaymentMethodMobilepay mobilepay?; + PaymentMethodGrabpay grabpay?; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodSepaDebit sepaDebit?; + # The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer + string|Customer? customer?; +}; + +public type QuoteDiscounts DiscountsAnyOf13|Discount; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerBankAccountsIdQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetFinancialConnectionsSessionsSession +public type GetFinancialConnectionsSessionsSessionQueries record { + # Specifies which fields in the response should be expanded + GetFinancialConnectionsSessionsSessionQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodPix record { +}; + +# +public type PaymentLinksResourcePhoneNumberCollection record { + # If `true`, a phone number will be collected during checkout + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type CustomerscustomerBodyExpandItemsString string; + +# +public type InvoicePaymentMethodOptionsBancontact record { + # Preferred language of the Bancontact authorization page that the customer is redirected to + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"fr"|"nl" preferredLanguage; +}; + +public type ValueListsvalueListBody record {| + # Specifies which fields in the response should be expanded + ValueListsvalueListBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + # The human-readable name of the value list + @constraint:String {maxLength: 100} + string name?; + # The name of the value list for use in rules + @constraint:String {maxLength: 100} + string alias?; +|}; + +public type SubscriptionTrialEnd SubscriptionTrialEndAnyOf1|SubscriptionTrialEndSubscriptionTrialEndAnyOf12; + +public type IssuingDisputesBody record {| + # The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If not set, defaults to the full transaction amount + int amount?; + # Specifies which fields in the response should be expanded + IssuingDisputesBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + EvidenceParam evidence?; + TreasuryParam treasury?; + # The ID of the issuing transaction to create a dispute for. For transaction on Treasury FinancialAccounts, use `treasury.received_debit` + @constraint:String {maxLength: 5000} + string 'transaction?; +|}; + +public type TreasuryReceivedCreditsBody record {| + # The FinancialAccount to send funds to + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) to be transferred + int amount; + # Specifies which fields in the response should be expanded + TreasuryReceivedCreditsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "initiating_payment_method_details"} + SourceParams initiatingPaymentMethodDetails?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type + "ach"|"us_domestic_wire" network; +|}; + +# +public type IssuingAuthorizationRequest record { + # The `pending_request.merchant_amount` at the time of the request, presented in the `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "merchant_amount"} + int merchantAmount; + # The card network's estimate of the likelihood that an authorization is fraudulent. Takes on values between 1 and 99 + @jsondata:Name {value: "network_risk_score"} + int? networkRiskScore?; + # When an authorization is approved or declined by you or by Stripe, this field provides additional detail on the reason for the outcome + "account_disabled"|"card_active"|"card_canceled"|"card_expired"|"card_inactive"|"cardholder_blocked"|"cardholder_inactive"|"cardholder_verification_required"|"insecure_authorization_method"|"insufficient_funds"|"not_allowed"|"pin_blocked"|"spending_controls"|"suspected_fraud"|"verification_failed"|"webhook_approved"|"webhook_declined"|"webhook_error"|"webhook_timeout" reason; + # The `pending_request.amount` at the time of the request, presented in your card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Stripe held this amount from your account to fund the authorization if the request was approved + int amount; + # Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_details"} + IssuingAuthorizationAmountDetails? amountDetails?; + # Whether this request was approved + boolean approved; + # A code created by Stripe which is shared with the merchant to validate the authorization. This field will be populated if the authorization message was approved. The code typically starts with the letter "S", followed by a six-digit number. For example, "S498162". Please note that the code is not guaranteed to be unique across authorizations + @jsondata:Name {value: "authorization_code"} + string? authorizationCode?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # If the `request_history.reason` is `webhook_error` because the direct webhook response is invalid (for example, parsing errors or missing parameters), we surface a more detailed error message via this field + @jsondata:Name {value: "reason_message"} + string? reasonMessage?; + # The currency that was collected by the merchant and presented to the cardholder for the authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "merchant_currency"} + string merchantCurrency; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + # Time when the card network received an authorization request from the acquirer in UTC. Referred to by networks as transmission time + @jsondata:Name {value: "requested_at"} + int? requestedAt?; +}; + +# +public type BalanceAmount record { + # Balance amount + int amount; + @jsondata:Name {value: "source_types"} + BalanceAmountBySourceType sourceTypes?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; +}; + +# +public type InvoiceLineItemPeriod record { + # The start of the period. This value is inclusive + int 'start; + # The end of the period, which must be greater than or equal to the start. This value is inclusive + int end; +}; + +# +public type PortalFlowsFlowSubscriptionUpdateConfirm record { + # The coupon or promotion code to apply to this subscription update. Currently, only up to one may be specified + PortalFlowsSubscriptionUpdateConfirmDiscount[]? discounts?; + # The ID of the subscription to be updated + @constraint:String {maxLength: 5000} + string subscription; + # The [subscription item](https://stripe.com/docs/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable + PortalFlowsSubscriptionUpdateConfirmItem[] items; +}; + +@constraint:String {maxLength: 5000} +public type PayoutsBodyExpandItemsString string; + +public type InvoiceitemDiscounts DiscountsAnyOf11|Discount; + +@constraint:String {maxLength: 5000} +public type GetIssuingPhysicalBundlesQueriesExpandItemsString string; + +public type DocumentsParam14Files FilesAnyOf113|FilesFilesAnyOf1132; + +# +public type IssuingPhysicalBundleFeatures record { + # The policy for how to use a second line on a card with this physical bundle + @jsondata:Name {value: "second_line"} + "optional"|"required"|"unsupported" secondLine; + # The policy for how to use carrier letter text in a card design with this physical bundle + @jsondata:Name {value: "carrier_text"} + "optional"|"required"|"unsupported" carrierText; + # The policy for how to use card logo images in a card design with this physical bundle + @jsondata:Name {value: "card_logo"} + "optional"|"required"|"unsupported" cardLogo; +}; + +public type IssuingAuthorizationTreasuryReceiveddebitsItemsString string; + +# Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status +public type MandateParams record { + int|"" amount?; + @jsondata:Name {value: "notification_method"} + "deprecated_none"|"email"|"manual"|"none"|"stripe_email" notificationMethod?; + MandateAcceptanceParams acceptance?; + string currency?; + "one_time"|"scheduled"|"variable" interval?; +}; + +@constraint:String {maxLength: 5000} +public type IdRefundBodyExpandItemsString string; + +# +public type CheckoutKlarnaPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +# +public type TreasuryOutboundPaymentsResourceOutboundPaymentResourceEndUserDetails record { + # IP address of the user initiating the OutboundPayment. Set if `present` is set to `true`. IP address collection is required for risk and compliance reasons. This will be used to help determine if the OutboundPayment is authorized or should be blocked + @jsondata:Name {value: "ip_address"} + string? ipAddress?; + # `true` if the OutboundPayment creation request is being made on behalf of an end user by a platform. Otherwise, `false` + boolean present; +}; + +# +public type InvoicePaymentMethodOptionsUsBankAccount record { + @jsondata:Name {value: "financial_connections"} + InvoicePaymentMethodOptionsUsBankAccountLinkedAccountOptions financialConnections?; + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; +}; + +# +public type PaymentMethodDetailsIdeal record { + # The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge + @jsondata:Name {value: "generated_sepa_debit"} + string|PaymentMethod? generatedSepaDebit?; + # The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe` + "abn_amro"|"asn_bank"|"bunq"|"handelsbanken"|"ing"|"knab"|"moneyou"|"n26"|"nn"|"rabobank"|"regiobank"|"revolut"|"sns_bank"|"triodos_bank"|"van_lanschot"|"yoursafe"? bank?; + # Last four characters of the IBAN + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # Owner's verified full name. Values are verified or provided by iDEAL directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge + @jsondata:Name {value: "generated_sepa_debit_mandate"} + string|Mandate? generatedSepaDebitMandate?; + # The Bank Identifier Code of the customer's bank + "ABNANL2A"|"ASNBNL21"|"BITSNL2A"|"BUNQNL2A"|"FVLBNL22"|"HANDNL2A"|"INGBNL2A"|"KNABNL2H"|"MOYONL21"|"NNBANL2G"|"NTSBDEB1"|"RABONL2U"|"RBRBNL21"|"REVOIE23"|"REVOLT21"|"SNSBNL2A"|"TRIONL2U"? bic?; +}; + +@constraint:String {maxLength: 5000} +public type IdReactivateBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type IntentApplyCustomerBalanceBodyExpandItemsString string; + +# +public type AccountBusinessProfile record { + @jsondata:Name {value: "monthly_estimated_revenue"} + AccountMonthlyEstimatedRevenue monthlyEstimatedRevenue?; + # An estimated upper bound of employees, contractors, vendors, etc. currently working for the business + @jsondata:Name {value: "estimated_worker_count"} + int? estimatedWorkerCount?; + # A publicly available email address for sending support issues to + @jsondata:Name {value: "support_email"} + string? supportEmail?; + # A publicly available website for handling support issues + @jsondata:Name {value: "support_url"} + string? supportUrl?; + # A publicly available mailing address for sending support issues to + @jsondata:Name {value: "support_address"} + Address? supportAddress?; + # A publicly available phone number to call with support issues + @jsondata:Name {value: "support_phone"} + string? supportPhone?; + # The customer-facing business name + string? name?; + # [The merchant category code for the account](https://stripe.com/docs/connect/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide + string? mcc?; + # Internal-only description of the product sold or service provided by the business. It's used by Stripe for risk and underwriting purposes + @jsondata:Name {value: "product_description"} + string? productDescription?; + # The applicant's gross annual revenue for its preceding fiscal year + @jsondata:Name {value: "annual_revenue"} + AccountAnnualRevenue? annualRevenue?; + # The business's publicly available website + string? url?; +}; + +# +public type InvoiceSettingSubscriptionScheduleSetting record { + # The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule + @jsondata:Name {value: "account_tax_ids"} + InvoiceSettingSubscriptionScheduleSettingAccountTaxIds[]? accountTaxIds?; + # Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically` + @jsondata:Name {value: "days_until_due"} + int? daysUntilDue?; + ConnectAccountReference issuer; +}; + +public type IdPostBody record {| + # Specifies which fields in the response should be expanded + IdPostBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type RunParameterSpecsColumnsItemsString string; + +# A Tax `Registration` lets us know that your business is registered to collect tax on payments within a region, enabling you to [automatically collect tax](https://stripe.com/docs/tax). +# +# Stripe doesn't register on your behalf with the relevant authorities when you create a Tax `Registration` object. For more information on how to register to collect tax, see [our guide](https://stripe.com/docs/tax/registering). +# +# Related guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api) +public type TaxRegistration record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country; + # If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. Measured in seconds since the Unix epoch + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "country_options"} + TaxProductRegistrationsResourceCountryOptions countryOptions; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Time at which the registration becomes active. Measured in seconds since the Unix epoch + @jsondata:Name {value: "active_from"} + int activeFrom; + # String representing the object's type. Objects of the same type share the same value + "tax.registration" 'object; + # The status of the registration. This field is present for convenience and can be deduced from `active_from` and `expires_at` + "active"|"expired"|"scheduled" status; +}; + +public type RefundExpireBody record {| + # Specifies which fields in the response should be expanded + RefundExpireBodyExpandItemsString[] expand?; +|}; + +public type ExternalAccount BankAccount|Card; + +# +public type PaymentLinksResourceCustomFieldsText record { + # The maximum character length constraint for the customer's input + @jsondata:Name {value: "maximum_length"} + int? maximumLength?; + # The minimum character length requirement for the customer's input + @jsondata:Name {value: "minimum_length"} + int? minimumLength?; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceUsBankTransfer record { + # The full name of the sender, as supplied by the sending bank + @jsondata:Name {value: "sender_name"} + string? senderName?; + # The banking network used for this funding + "ach"|"domestic_wire_us"|"swift" network?; +}; + +# +public type PaymentIntentNextActionVerifyWithMicrodeposits record { + # The URL for the hosted verification page, which allows customers to verify their bank account + @jsondata:Name {value: "hosted_verification_url"} + string hostedVerificationUrl; + # The type of the microdeposit sent to the customer. Used to distinguish between different verification methods + @jsondata:Name {value: "microdeposit_type"} + "amounts"|"descriptor_code"? microdepositType?; + # The timestamp when the microdeposits are expected to land + @jsondata:Name {value: "arrival_date"} + int arrivalDate; +}; + +# +public type EntitlementsResourceProductFeatureList record { + ProductFeature[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type IssuingPersonalizationDesignsBody record {| + # Specifies which fields in the response should be expanded + IssuingPersonalizationDesignsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|} metadata?; + PreferencesParam preferences?; + @jsondata:Name {value: "carrier_text"} + CarrierTextParam carrierText?; + # Friendly display name + @constraint:String {maxLength: 200} + string name?; + # A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters + @jsondata:Name {value: "lookup_key"} + string lookupKey?; + # The physical bundle object belonging to this personalization design + @jsondata:Name {value: "physical_bundle"} + string physicalBundle; + # The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo` + @jsondata:Name {value: "card_logo"} + string cardLogo?; + # If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design + @jsondata:Name {value: "transfer_lookup_key"} + boolean transferLookupKey?; +|}; + +# Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it +public type OrderParams record { + OrderShipping shipping?; + OrderItemSpecs[] items?; +}; + +public type IssuingAuthorizationTreasuryReceivedcreditsItemsString string; + +# +public type CheckoutCardPaymentMethodOptions record { + # Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters + @jsondata:Name {value: "statement_descriptor_suffix_kana"} + string statementDescriptorSuffixKana?; + CheckoutCardInstallmentsOptions installments?; + # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine + @jsondata:Name {value: "request_three_d_secure"} + "any"|"automatic"|"challenge" requestThreeDSecure; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + # Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters + @jsondata:Name {value: "statement_descriptor_suffix_kanji"} + string statementDescriptorSuffixKanji?; +}; + +# PaymentMethodConfigurations control which payment methods are displayed to your customers when you don't explicitly specify payment method types. You can have multiple configurations with different sets of payment methods for different scenarios. +# +# There are two types of PaymentMethodConfigurations. Which is used depends on the [charge type](https://stripe.com/docs/connect/charges): +# +# **Direct** configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect. +# +# **Child** configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter. +# +# Child configurations have a `parent` that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account’s associated child configuration. Parent configurations are [managed in the dashboard](https://dashboard.stripe.com/settings/payment_methods/connected_accounts) and are not available in this API. +# +# Related guides: +# - [Payment Method Configurations API](https://stripe.com/docs/connect/payment-method-configurations) +# - [Multiple configurations on dynamic payment methods](https://stripe.com/docs/payments/multiple-payment-method-configs) +# - [Multiple configurations for your Connect accounts](https://stripe.com/docs/connect/multiple-payment-method-configurations) +public type PaymentMethodConfiguration record { + PaymentMethodConfigResourcePaymentMethodProperties paynow?; + # For child configs, the configuration's parent configuration + string? parent?; + PaymentMethodConfigResourcePaymentMethodProperties blik?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodConfigResourcePaymentMethodProperties acssDebit?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "bacs_debit"} + PaymentMethodConfigResourcePaymentMethodProperties bacsDebit?; + PaymentMethodConfigResourcePaymentMethodProperties boleto?; + PaymentMethodConfigResourcePaymentMethodProperties jcb?; + PaymentMethodConfigResourcePaymentMethodProperties link?; + @jsondata:Name {value: "amazon_pay"} + PaymentMethodConfigResourcePaymentMethodProperties amazonPay?; + @jsondata:Name {value: "au_becs_debit"} + PaymentMethodConfigResourcePaymentMethodProperties auBecsDebit?; + PaymentMethodConfigResourcePaymentMethodProperties oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + PaymentMethodConfigResourcePaymentMethodProperties afterpayClearpay?; + PaymentMethodConfigResourcePaymentMethodProperties swish?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodConfigResourcePaymentMethodProperties usBankAccount?; + @jsondata:Name {value: "customer_balance"} + PaymentMethodConfigResourcePaymentMethodProperties customerBalance?; + PaymentMethodConfigResourcePaymentMethodProperties cashapp?; + @jsondata:Name {value: "wechat_pay"} + PaymentMethodConfigResourcePaymentMethodProperties wechatPay?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + PaymentMethodConfigResourcePaymentMethodProperties paypal?; + @jsondata:Name {value: "revolut_pay"} + PaymentMethodConfigResourcePaymentMethodProperties revolutPay?; + PaymentMethodConfigResourcePaymentMethodProperties giropay?; + PaymentMethodConfigResourcePaymentMethodProperties zip?; + PaymentMethodConfigResourcePaymentMethodProperties alipay?; + PaymentMethodConfigResourcePaymentMethodProperties ideal?; + @jsondata:Name {value: "google_pay"} + PaymentMethodConfigResourcePaymentMethodProperties googlePay?; + # Whether the configuration can be used for new payments + boolean active; + PaymentMethodConfigResourcePaymentMethodProperties eps?; + # The default configuration is used whenever a payment method configuration is not specified + @jsondata:Name {value: "is_default"} + boolean isDefault; + PaymentMethodConfigResourcePaymentMethodProperties konbini?; + PaymentMethodConfigResourcePaymentMethodProperties sofort?; + PaymentMethodConfigResourcePaymentMethodProperties fpx?; + PaymentMethodConfigResourcePaymentMethodProperties promptpay?; + PaymentMethodConfigResourcePaymentMethodProperties affirm?; + @jsondata:Name {value: "apple_pay"} + PaymentMethodConfigResourcePaymentMethodProperties applePay?; + PaymentMethodConfigResourcePaymentMethodProperties mobilepay?; + PaymentMethodConfigResourcePaymentMethodProperties bancontact?; + PaymentMethodConfigResourcePaymentMethodProperties grabpay?; + PaymentMethodConfigResourcePaymentMethodProperties klarna?; + PaymentMethodConfigResourcePaymentMethodProperties p24?; + # For child configs, the Connect application associated with the configuration + string? application?; + # The configuration's name + @constraint:String {maxLength: 5000} + string name; + @jsondata:Name {value: "sepa_debit"} + PaymentMethodConfigResourcePaymentMethodProperties sepaDebit?; + PaymentMethodConfigResourcePaymentMethodProperties card?; + @jsondata:Name {value: "cartes_bancaires"} + PaymentMethodConfigResourcePaymentMethodProperties cartesBancaires?; + PaymentMethodConfigResourcePaymentMethodProperties multibanco?; + # String representing the object's type. Objects of the same type share the same value + "payment_method_configuration" 'object; +}; + +# Represents the Queries record for the operation: GetFileLinks +public type GetFileLinksQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetFileLinksQueriesExpandItemsString[] expand?; + # Filter links by their expiration status. By default, Stripe returns all links + boolean expired?; + # Only return links for the given file + @constraint:String {maxLength: 5000} + string file?; + # Only return links that were created during the given date interval + Created11 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type TreasuryOutboundTransfersBodyExpandItemsString string; + +public type AccountUnsubscribeBody record {| + # The list of account features from which you would like to unsubscribe + ("transactions")[] features; + # Specifies which fields in the response should be expanded + AccountUnsubscribeBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type DisputesdisputeBodyExpandItemsString string; + +# +public type AccountRequirementsAlternative record { + # Fields that can be provided to satisfy all fields in `original_fields_due` + @jsondata:Name {value: "alternative_fields_due"} + AccountRequirementsAlternativeAlternativefieldsdueItemsString[] alternativeFieldsDue; + # Fields that are due and can be satisfied by providing all fields in `alternative_fields_due` + @jsondata:Name {value: "original_fields_due"} + AccountRequirementsAlternativeOriginalfieldsdueItemsString[] originalFieldsDue; +}; + +# Options for customizing how the account functions within Stripe +public type SettingsSpecsUpdate record { + PayoutSettingsSpecs payouts?; + InvoicesSettingsSpecs invoices?; + @jsondata:Name {value: "card_issuing"} + CardIssuingSettingsSpecs cardIssuing?; + TreasurySettingsSpecs treasury?; + BrandingSettingsSpecs branding?; + PaymentsSettingsSpecs payments?; + @jsondata:Name {value: "bacs_debit_payments"} + BacsDebitPaymentsSpecs bacsDebitPayments?; + @jsondata:Name {value: "card_payments"} + CardPaymentsSettingsSpecs cardPayments?; +}; + +# +public type IssuingPhysicalBundleList record { + IssuingPhysicalBundle[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/issuing/physical_bundles`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type BankConnectionsResourceBalanceApiResourceCashBalance record { + # The funds available to the account holder. Typically this is the current balance less any holds. + # + # Each key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. + # + # Each value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder + record {|int...;|}? available?; +}; + +@constraint:String {maxLength: 5000} +public type ForwardingRequestsBodyExpandItemsString string; + +public type CustomerUpdateCreationParam record { + boolean enabled; + @jsondata:Name {value: "allowed_updates"} + ("address"|"email"|"name"|"phone"|"shipping"|"tax_id")[]|"" allowedUpdates?; +}; + +# +public type BalanceTransactionsList record { + BalanceTransaction[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/balance_transactions`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetCreditNotesIdQueriesExpandItemsString string; + +# +public type PaymentMethodOptionsIdeal record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +# +public type QuotesResourceTotalDetails record { + # This is the sum of all the tax amounts + @jsondata:Name {value: "amount_tax"} + int amountTax; + # This is the sum of all the discounts + @jsondata:Name {value: "amount_discount"} + int amountDiscount; + QuotesResourceTotalDetailsResourceBreakdown breakdown?; + # This is the sum of all the shipping amounts + @jsondata:Name {value: "amount_shipping"} + int? amountShipping?; +}; + +# +public type PaymentMethodAuBecsDebit record { + # Six-digit number identifying bank and branch associated with this bank account + @jsondata:Name {value: "bsb_number"} + string? bsbNumber?; + # Last four digits of the bank account number + string? last4?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; +}; + +# +public type ApiErrors record { + # If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors + @jsondata:Name {value: "payment_method_type"} + string paymentMethodType?; + # For card errors, the ID of the failed charge + @constraint:String {maxLength: 5000} + string charge?; + # For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported + @constraint:String {maxLength: 5000} + string code?; + @jsondata:Name {value: "setup_intent"} + SetupIntent setupIntent?; + # For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one + @jsondata:Name {value: "decline_code"} + string declineCode?; + # The [source object](https://stripe.com/docs/api/sources/object) for errors returned on a request involving a source + BankAccount|Card|Source 'source?; + # A human-readable message providing more details about the error. For card errors, these messages can be shown to your users + @constraint:String {maxLength: 40000} + string message?; + # The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error` + "api_error"|"card_error"|"idempotency_error"|"invalid_request_error" 'type; + # A URL to the request log entry in your dashboard + @jsondata:Name {value: "request_log_url"} + string requestLogUrl?; + # A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported + @jsondata:Name {value: "doc_url"} + string docUrl?; + # If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field + @constraint:String {maxLength: 5000} + string param?; + @jsondata:Name {value: "payment_intent"} + PaymentIntent paymentIntent?; + @jsondata:Name {value: "payment_method"} + PaymentMethod paymentMethod?; +}; + +# +public type PersonRelationship record { + # Whether the person is an owner of the account’s legal entity + boolean? owner?; + # Whether the person has significant responsibility to control, manage, or direct the organization + boolean? executive?; + # Whether the person is the legal guardian of the account's representative + @jsondata:Name {value: "legal_guardian"} + boolean? legalGuardian?; + # Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations + boolean? director?; + # The person's title (e.g., CEO, Support Engineer) + string? title?; + # Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account + boolean? representative?; + # The percent owned by the person of the account's legal entity + @jsondata:Name {value: "percent_ownership"} + decimal? percentOwnership?; +}; + +public type AccountCapabilityFutureRequirementsPendingverificationItemsString string; + +@constraint:String {maxLength: 5000} +public type OrderCancelBodyExpandItemsString string; + +# Instructs Stripe to make a request on your behalf using the destination URL. The destination URL +# is activated by Stripe at the time of onboarding. Stripe verifies requests with your credentials +# provided during onboarding, and injects card details from the payment_method into the request. +# +# Stripe redacts all sensitive fields and headers, including authentication credentials and card numbers, +# before storing the request and response data in the forwarding Request object, which are subject to a +# 30-day retention period. +# +# You can provide a Stripe idempotency key to make sure that requests with the same key result in only one +# outbound request. The Stripe idempotency key provided should be unique and different from any idempotency +# keys provided on the underlying third-party request. +# +# Forwarding Requests are synchronous requests that return a response or time out according to +# Stripe’s limits. +# +# Related guide: [Forward card details to third-party API endpoints](https://docs.stripe.com/payments/forwarding) +public type ForwardingRequest record { + # Context about the request from Stripe's servers to the destination endpoint + @jsondata:Name {value: "request_context"} + ForwardedRequestContext? requestContext?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The field kinds to be replaced in the forwarded request + ("card_cvc"|"card_expiry"|"card_number"|"cardholder_name")[] replacements; + # The request that was sent to the destination endpoint. We redact any sensitive fields + @jsondata:Name {value: "request_details"} + ForwardedRequestDetails? requestDetails?; + # The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed + @jsondata:Name {value: "payment_method"} + string paymentMethod; + # The destination URL for the forwarded request. Must be supported by the config + string? url?; + # String representing the object's type. Objects of the same type share the same value + "forwarding.request" 'object; + # The response that the destination endpoint returned to us. We redact any sensitive fields + @jsondata:Name {value: "response_details"} + ForwardedResponseDetails? responseDetails?; +}; + +public type AccountCapabilityFutureRequirementsCurrentlydueItemsString string; + +public type AccountLoginLinksBody record {| + # Specifies which fields in the response should be expanded + AccountLoginLinksBodyExpandItemsString[] expand?; +|}; + +public type SourceTypeWechat record { + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "qr_code_url"} + string? qrCodeUrl?; + @jsondata:Name {value: "prepay_id"} + string prepayId?; +}; + +public type SessionExpireBody record {| + # Specifies which fields in the response should be expanded + SessionExpireBodyExpandItemsString[] expand?; +|}; + +@constraint:String {maxLength: 5000} +public type GetTerminalReadersReaderQueriesExpandItemsString string; + +# ABA Records contain U.S. bank account details per the ABA format +public type TreasuryFinancialAccountsResourceAbaRecord record { + # The account number + @jsondata:Name {value: "account_number"} + string? accountNumber?; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName; + # Name of the bank + @jsondata:Name {value: "bank_name"} + string bankName; + # Routing number for the account + @jsondata:Name {value: "routing_number"} + string routingNumber; + # The last four characters of the account number + @jsondata:Name {value: "account_number_last4"} + string accountNumberLast4; +}; + +# Object representing the subscription schedule's default settings +public type DefaultSettingsParams record { + @jsondata:Name {value: "invoice_settings"} + SubscriptionScheduleDefaultSettingsParam invoiceSettings?; + @jsondata:Name {value: "transfer_data"} + record {decimal amount_percent?; string destination;}|"" transferData?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig3 automaticTax?; + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + string|"" description?; + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + @jsondata:Name {value: "application_fee_percent"} + decimal applicationFeePercent?; + @jsondata:Name {value: "billing_cycle_anchor"} + "automatic"|"phase_start" billingCycleAnchor?; +}; + +# +public type CheckoutAffirmPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type PromotionCodesBodyExpandItemsString string; + +public type CustomerDetailsParams record { + string email; +}; + +public type FleetReportedBreakdownNonFuelSpecs record { + @jsondata:Name {value: "gross_amount_decimal"} + string grossAmountDecimal?; +}; + +public type DocumentsParam15 record { + DocumentsParam15Files[] files?; +}; + +public type DocumentsParam14 record { + DocumentsParam14Files[] files?; +}; + +public type SourceTypeThreeDSecure record { + @jsondata:Name {value: "address_zip_check"} + string? addressZipCheck?; + boolean? authenticated?; + string? country?; + string? last4?; + string? funding?; + @jsondata:Name {value: "exp_month"} + int? expMonth?; + @jsondata:Name {value: "exp_year"} + int? expYear?; + @jsondata:Name {value: "tokenization_method"} + string? tokenizationMethod?; + @jsondata:Name {value: "cvc_check"} + string? cvcCheck?; + string fingerprint?; + string? name?; + @jsondata:Name {value: "address_line1_check"} + string? addressLine1Check?; + @jsondata:Name {value: "dynamic_last4"} + string? dynamicLast4?; + @jsondata:Name {value: "three_d_secure"} + string threeDSecure?; + string? brand?; + string? card?; + string? customer?; +}; + +# +public type IssuingDisputeServiceNotAsDescribedEvidence record { + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Date when order was canceled + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Date when the product was received + @jsondata:Name {value: "received_at"} + int? receivedAt?; + # Reason for canceling the order + @jsondata:Name {value: "cancellation_reason"} + string? cancellationReason?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; +}; + +# Settings for the cost of shipping for this invoice +public type ShippingCost record { + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; + @jsondata:Name {value: "shipping_rate_data"} + MethodParams shippingRateData?; +}; + +# Encodes whether a FinancialAccount has access to a particular feature, with a status enum and associated `status_details`. Stripe or the platform may control features via the requested field +public type FeatureAccess1 record { + @jsondata:Name {value: "outbound_payments"} + OutboundPayments outboundPayments?; + @jsondata:Name {value: "card_issuing"} + Access cardIssuing?; + @jsondata:Name {value: "intra_stripe_flows"} + Access intraStripeFlows?; + @jsondata:Name {value: "outbound_transfers"} + OutboundTransfers outboundTransfers?; + @jsondata:Name {value: "deposit_insurance"} + Access depositInsurance?; + @jsondata:Name {value: "inbound_transfers"} + InboundTransfers inboundTransfers?; + @jsondata:Name {value: "financial_addresses"} + FinancialAddresses financialAddresses?; +}; + +# Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts +public type IndividualSpecs record { + @jsondata:Name {value: "maiden_name"} + string maidenName?; + @jsondata:Name {value: "id_number"} + string idNumber?; + record {|string...;|}|"" metadata?; + AddressSpecs address?; + @jsondata:Name {value: "registered_address"} + AddressSpecs registeredAddress?; + string gender?; + @jsondata:Name {value: "id_number_secondary"} + string idNumberSecondary?; + @jsondata:Name {value: "political_exposure"} + "existing"|"none" politicalExposure?; + @jsondata:Name {value: "address_kana"} + JapanAddressKanaSpecs addressKana?; + @jsondata:Name {value: "first_name_kanji"} + string firstNameKanji?; + @jsondata:Name {value: "last_name"} + string lastName?; + @jsondata:Name {value: "full_name_aliases"} + FullnamealiasesItemsString[]|"" fullNameAliases?; + string phone?; + record {int day; int month; int year;}|"" dob?; + @jsondata:Name {value: "address_kanji"} + JapanAddressKanjiSpecs addressKanji?; + @jsondata:Name {value: "last_name_kana"} + string lastNameKana?; + @jsondata:Name {value: "ssn_last_4"} + string ssnLast4?; + IndividualRelationshipSpecs relationship?; + @jsondata:Name {value: "first_name"} + string firstName?; + @jsondata:Name {value: "first_name_kana"} + string firstNameKana?; + string email?; + PersonVerificationSpecs verification?; + @jsondata:Name {value: "last_name_kanji"} + string lastNameKanji?; +}; + +public type DocumentsParam13 record { + DocumentsParam13Files[] files?; +}; + +public type DocumentsParam12 record { + DocumentsParam12Files[] files?; +}; + +public type DocumentsParam11 record { + DocumentsParam11Files[] files?; +}; + +@constraint:String {maxLength: 5000} +public type GetQuotesQuoteQueriesExpandItemsString string; + +public type IssuingCardholderAuthorizationControlsAllowedmerchantcountriesItemsString string; + +public type DocumentsParam10 record { + DocumentsParam10Files[] files?; +}; + +public type OnBehalfOf1AnyOf1 string; + +public type FuelSpecs1 record { + "charging_minute"|"imperial_gallon"|"kilogram"|"kilowatt_hour"|"liter"|"other"|"pound"|"us_gallon" unit?; + @jsondata:Name {value: "quantity_decimal"} + string quantityDecimal?; + @jsondata:Name {value: "industry_product_code"} + string industryProductCode?; + "diesel"|"other"|"unleaded_plus"|"unleaded_regular"|"unleaded_super" 'type?; + @jsondata:Name {value: "unit_cost_decimal"} + string unitCostDecimal?; +}; + +# +public type DeletedRadarValueList record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "radar.value_list" 'object; +}; + +# Sort Code Records contain U.K. bank account details per the sort code format +public type FundingInstructionsBankTransferSortCodeRecord record { + # The account number + @jsondata:Name {value: "account_number"} + string accountNumber; + # The name of the person or business that owns the bank account + @jsondata:Name {value: "account_holder_name"} + string accountHolderName; + # The six-digit sort code + @jsondata:Name {value: "sort_code"} + string sortCode; +}; + +public type Created43RangeQuerySpecs522 int; + +# Represents the Queries record for the operation: GetAppsSecrets +public type GetAppsSecretsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetAppsSecretsQueriesExpandItemsString[] expand?; + # Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user + ScopeParam scope; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# The tax collected or refunded, by line item +public type TaxProductResourceTaxTransactionLineItemList1 record { + # Details about each object + TaxTransactionLineItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/tax/transactions/[^/]+/line_items`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type ProductMarketingFeature record { + # The marketing feature name. Up to 80 characters long + @constraint:String {maxLength: 5000} + string name?; +}; + +# +public type ConnectEmbeddedAccountSessionCreateComponents record { + ConnectEmbeddedPayoutsConfigClaim payouts; + @jsondata:Name {value: "account_onboarding"} + ConnectEmbeddedAccountConfigClaim accountOnboarding; + ConnectEmbeddedPayoutsConfigClaim balances; + @jsondata:Name {value: "account_management"} + ConnectEmbeddedAccountConfigClaim accountManagement; + @jsondata:Name {value: "payment_details"} + ConnectEmbeddedPaymentsConfigClaim paymentDetails; + ConnectEmbeddedBaseConfigClaim documents; + @jsondata:Name {value: "notification_banner"} + ConnectEmbeddedAccountConfigClaim notificationBanner; + ConnectEmbeddedPaymentsConfigClaim payments; + @jsondata:Name {value: "payouts_list"} + ConnectEmbeddedBaseConfigClaim payoutsList; +}; + +# Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details +public type AuthorizationControlsParamV2 record { + @jsondata:Name {value: "allowed_categories"} + (AuthorizationControlsParamV2AllowedcategoriesItemsString)[] allowedCategories?; + @jsondata:Name {value: "blocked_merchant_countries"} + AuthorizationControlsParamV2BlockedmerchantcountriesItemsString[] blockedMerchantCountries?; + @jsondata:Name {value: "blocked_categories"} + (AuthorizationControlsParamV2BlockedcategoriesItemsString)[] blockedCategories?; + @jsondata:Name {value: "spending_limits"} + SpendingLimitsParam[] spendingLimits?; + @jsondata:Name {value: "spending_limits_currency"} + string spendingLimitsCurrency?; + @jsondata:Name {value: "allowed_merchant_countries"} + AuthorizationControlsParamV2AllowedmerchantcountriesItemsString[] allowedMerchantCountries?; +}; + +public type ShippingRatesshippingRateTokenBody record {| + # Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified` + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + # Specifies which fields in the response should be expanded + ShippingRatesshippingRateTokenBodyExpandItemsString[] expand?; + @jsondata:Name {value: "fixed_amount"} + FixedAmountUpdate fixedAmount?; + # 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` + record {|string...;|}|"" metadata?; + # Whether the shipping rate can be used for new purchases. Defaults to `true` + boolean active?; +|}; + +# Represents the Queries record for the operation: GetClimateProducts +public type GetClimateProductsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetClimateProductsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type VerificationSpecs record { + VerificationDocumentSpecs document?; +}; + +# Represents the Queries record for the operation: GetPricesPrice +public type GetPricesPriceQueries record { + # Specifies which fields in the response should be expanded + GetPricesPriceQueriesExpandItemsString[] expand?; +}; + +public type AccountRequirementsPastdueItemsString string; + +@constraint:String {maxLength: 5000} +public type PaymentMethodDomainsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetBillingPortalConfigurationsConfigurationQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetQuotesQuoteComputedUpfrontLineItemsQueriesExpandItemsString string; + +public type TransactionRefundBody record {| + # Specifies which fields in the response should be expanded + TransactionRefundBodyExpandItemsString[] expand?; + # The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "refund_amount"} + int refundAmount?; +|}; + +# +public type BillingClocksResourceBillingClockList record { + TestHelpersTestClock[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/test_helpers/test_clocks`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# Represents the Queries record for the operation: GetTreasuryCreditReversalsCreditReversal +public type GetTreasuryCreditReversalsCreditReversalQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryCreditReversalsCreditReversalQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodDetailsCardWalletSamsungPay record { +}; + +# A coupon contains information about a percent-off or amount-off discount you +# might want to apply to a customer. Coupons may be applied to [subscriptions](https://stripe.com/docs/api#subscriptions), [invoices](https://stripe.com/docs/api#invoices), +# [checkout sessions](https://stripe.com/docs/api/checkout/sessions), [quotes](https://stripe.com/docs/api#quotes), and more. Coupons do not work with conventional one-off [charges](https://stripe.com/docs/api#create_charge) or [payment intents](https://stripe.com/docs/api/payment_intents) +public type Coupon record { + # Date after which the coupon can no longer be redeemed + @jsondata:Name {value: "redeem_by"} + int? redeemBy?; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid + @jsondata:Name {value: "max_redemptions"} + int? maxRedemptions?; + # Number of times this coupon has been applied to a customer + @jsondata:Name {value: "times_redeemed"} + int timesRedeemed; + # Coupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|CouponCurrencyOption...;|} currencyOptions?; + # One of `forever`, `once`, and `repeating`. Describes how long a customer who applies this coupon will get the discount + "forever"|"once"|"repeating" duration; + # Taking account of the above properties, whether this coupon can still be applied to a customer + boolean valid; + # If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once` + @jsondata:Name {value: "duration_in_months"} + int? durationInMonths?; + @jsondata:Name {value: "applies_to"} + CouponAppliesTo appliesTo?; + # Name of the coupon displayed to customers on for instance invoices or receipts + string? name?; + # If `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off + string? currency?; + # Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead + @jsondata:Name {value: "percent_off"} + decimal? percentOff?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer + @jsondata:Name {value: "amount_off"} + int? amountOff?; + # String representing the object's type. Objects of the same type share the same value + "coupon" 'object; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionsBodyExpandItemsString string; + +# A supplier of carbon removal +public type ClimateSupplier record { + # The scientific pathway used for carbon removal + @jsondata:Name {value: "removal_pathway"} + "biomass_carbon_removal_and_storage"|"direct_air_capture"|"enhanced_weathering" removalPathway; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Name of this carbon removal supplier + @constraint:String {maxLength: 5000} + string name; + # The locations in which this supplier operates + ClimateRemovalsLocation[] locations; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Link to a webpage to learn more about the supplier + @jsondata:Name {value: "info_url"} + string infoUrl; + # String representing the object’s type. Objects of the same type share the same value + "climate.supplier" 'object; +}; + +public type OnBehalfOfAnyOf1 string; + +# Represents the Queries record for the operation: GetCustomersCustomerPaymentMethods +public type GetCustomersCustomerPaymentMethodsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerPaymentMethodsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type?; + # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified` + @http:Query {name: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; +}; + +@constraint:String {maxLength: 5000} +public type OutboundTransferReturnBodyExpandItemsString string; + +public type PaymentSource Account|BankAccount|Card|Source; + +public type ReadersreaderBody record {| + # Specifies which fields in the response should be expanded + ReadersreaderBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # The new label of the reader + string|"" label?; +|}; + +# +public type TaxProductResourceTaxTransactionShippingCost record { + # Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive" taxBehavior; + # The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount + int amount; + # The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping + @jsondata:Name {value: "tax_code"} + string taxCode; + # The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + @jsondata:Name {value: "amount_tax"} + int amountTax; + # The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object) + @jsondata:Name {value: "shipping_rate"} + string shippingRate?; +}; + +# +public type SetupAttemptPaymentMethodDetailsSofort record { + # The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_sepa_debit"} + string|PaymentMethod? generatedSepaDebit?; + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Last four characters of the IBAN + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # Owner's verified full name. Values are verified or provided by Sofort directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt + @jsondata:Name {value: "generated_sepa_debit_mandate"} + string|Mandate? generatedSepaDebitMandate?; + # Bank Identifier Code of the bank associated with the bank account + string? bic?; + # Preferred language of the Sofort authorization page that the customer is redirected to. + # Can be one of `en`, `de`, `fr`, or `nl` + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"fr"|"nl"? preferredLanguage?; +}; + +# A hash of settings for this cash balance +public type BalanceSettingsParam1 record { + @jsondata:Name {value: "reconciliation_mode"} + "automatic"|"manual"|"merchant_default" reconciliationMode?; +}; + +public type PaymentMethodspaymentMethodBody record {| + @jsondata:Name {value: "billing_details"} + BillingDetailsInnerParams1 billingDetails?; + # Specifies which fields in the response should be expanded + PaymentMethodspaymentMethodBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "us_bank_account"} + UpdateParam usBankAccount?; + # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method + record {} link?; + # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified` + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + UpdateApiParam card?; +|}; + +public type AccountInvoicesSettingsDefaultAccountTaxIds DefaultAccountTaxIdsAnyOf1|TaxId; + +# +public type InvoicePaymentMethodOptionsUsBankAccountLinkedAccountOptions record { + # The list of permissions to request. The `payment_method` permission must be included + ("balances"|"ownership"|"payment_method"|"transactions")[] permissions?; + # Data features requested to be retrieved upon account creation + ("balances"|"ownership"|"transactions")[]? prefetch?; + InvoicePaymentMethodOptionsUsBankAccountLinkedAccountOptionsFilters filters?; +}; + +public type Created3RangeQuerySpecs32 int; + +public type PaymentElementParam record { + FeaturesParam features?; + boolean enabled; +}; + +# If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear +# in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method) +# property on the PaymentIntent +public type PaymentMethodDataParams record { + record {} paynow?; + @jsondata:Name {value: "billing_details"} + BillingDetailsInnerParams billingDetails?; + record {} blik?; + record {|string...;|} metadata?; + @jsondata:Name {value: "interac_present"} + record {} interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodParam acssDebit?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions1 radarOptions?; + @jsondata:Name {value: "bacs_debit"} + Param5 bacsDebit?; + Param6 boleto?; + record {} link?; + @jsondata:Name {value: "amazon_pay"} + record {} amazonPay?; + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type; + @jsondata:Name {value: "au_becs_debit"} + Param4 auBecsDebit?; + record {} oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + record {} afterpayClearpay?; + record {} swish?; + record {} twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam1 usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {} customerBalance?; + record {} cashapp?; + @jsondata:Name {value: "wechat_pay"} + record {} wechatPay?; + record {} paypal?; + record {} pix?; + @jsondata:Name {value: "revolut_pay"} + record {} revolutPay?; + record {} giropay?; + record {} zip?; + record {} alipay?; + Param9 ideal?; + Param7 eps?; + record {} konbini?; + Param13 sofort?; + Param8 fpx?; + record {} promptpay?; + record {} affirm?; + record {} mobilepay?; + record {} bancontact?; + record {} grabpay?; + Param10 klarna?; + Param11 p24?; + @jsondata:Name {value: "sepa_debit"} + Param12 sepaDebit?; + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + record {} multibanco?; +}; + +public type TiersItemsObject record { + int flat_amount?; + string flat_amount_decimal?; + int unit_amount?; + string unit_amount_decimal?; + "inf"|int up_to; +}; + +# Represents the Queries record for the operation: GetBillingMetersIdEventSummaries +public type GetBillingMetersIdEventSummariesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # The timestamp from when to start aggregating meter events (inclusive). Must be aligned with minute boundaries + @http:Query {name: "start_time"} + int startTime; + # Specifies which fields in the response should be expanded + GetBillingMetersIdEventSummariesQueriesExpandItemsString[] expand?; + # Specifies what granularity to use when generating event summaries. If not specified, a single event summary would be returned for the specified time range. For hourly granularity, start and end times must align with hour boundaries (e.g., 00:00, 01:00, ..., 23:00). For daily granularity, start and end times must align with UTC day boundaries (00:00 UTC) + @http:Query {name: "value_grouping_window"} + "day"|"hour" valueGroupingWindow?; + # The timestamp from when to stop aggregating meter events (exclusive). Must be aligned with minute boundaries + @http:Query {name: "end_time"} + int endTime; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # The customer for which to fetch event summaries + @constraint:String {maxLength: 5000} + string customer; +}; + +@constraint:String {maxLength: 5000} +public type SessionCancelBodyExpandItemsString string; + +# +public type PaymentMethodCustomerBalance record { +}; + +public type PriceDataWithProductData record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + @constraint:String {maxLength: 5000} + string product?; + RecurringAdhoc recurring?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + string currency; + @jsondata:Name {value: "product_data"} + ProductData productData?; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; +}; + +# +public type CheckoutSepaDebitPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +public type EphemeralKeyskeyBody record {| + # Specifies which fields in the response should be expanded + EphemeralKeyskeyBodyExpandItemsString[] expand?; +|}; + +# +public type AccountInvoicesSettings record { + # The list of default Account Tax IDs to automatically include on invoices. Account Tax IDs get added when an invoice is finalized + @jsondata:Name {value: "default_account_tax_ids"} + AccountInvoicesSettingsDefaultAccountTaxIds[]? defaultAccountTaxIds?; +}; + +@constraint:String {maxLength: 5000} +public type ProductsidBodyExpandItemsString string; + +public type PaymentMethodOptions record { + record {"de"|"en"|"fr"|"nl" preferred_language?;}|"" bancontact?; + @jsondata:Name {value: "acss_debit"} + record {record {"business"|"personal" transaction_type?;} mandate_options?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" acssDebit?; + @jsondata:Name {value: "us_bank_account"} + record {record {record {("checking"|"savings")[] account_subcategories?;} filters?; (financial_connectionsPermissionsItemsString)[] permissions?; ("balances"|"ownership"|"transactions")[] prefetch?;} financial_connections?; "automatic"|"instant"|"microdeposits" verification_method?;}|"" usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {record {record {string country;} eu_bank_transfer?; string 'type?;} bank_transfer?; string funding_type?;}|"" customerBalance?; + @jsondata:Name {value: "sepa_debit"} + record {}|"" sepaDebit?; + record {}|"" konbini?; + record {record {int amount?; "fixed"|"maximum" amount_type?; string description?;} mandate_options?; "amex"|"cartes_bancaires"|"diners"|"discover"|"eftpos_au"|"interac"|"jcb"|"mastercard"|"unionpay"|"unknown"|"visa" network?; "any"|"automatic"|"challenge" request_three_d_secure?;}|"" card?; +}; + +@constraint:String {maxLength: 5000} +public type SourcesidBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetSourcesSourceSourceTransactions +public type GetSourcesSourceSourceTransactionsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSourcesSourceSourceTransactionsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type TippingConfig record { + @jsondata:Name {value: "amount_eligible"} + int amountEligible?; +}; + +@constraint:String {maxLength: 5000} +public type IssuingAuthorizationsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountBankAccountsIdQueriesExpandItemsString string; + +public type EphemeralKeysBody record {| + # Specifies which fields in the response should be expanded + EphemeralKeysBodyExpandItemsString[] expand?; + # The ID of the Identity VerificationSession you'd like to access using the resulting ephemeral key + @jsondata:Name {value: "verification_session"} + string verificationSession?; + # The ID of the Issuing Card you'd like to access using the resulting ephemeral key + @jsondata:Name {value: "issuing_card"} + string issuingCard?; + # A single-use token, created by Stripe.js, used for creating ephemeral keys for Issuing Cards without exchanging sensitive information + @constraint:String {maxLength: 5000} + string nonce?; + # The ID of the Customer you'd like to modify using the resulting ephemeral key + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# +public type PaymentIntentNextActionKonbini record { + # The timestamp at which the pending Konbini payment expires + @jsondata:Name {value: "expires_at"} + int expiresAt; + PaymentIntentNextActionKonbiniStores stores; + # The URL for the Konbini payment instructions page, which allows customers to view and print a Konbini voucher + @jsondata:Name {value: "hosted_voucher_url"} + string? hostedVoucherUrl?; +}; + +@constraint:String {maxLength: 5000} +public type ProductFeaturesBodyExpandItemsString string; + +# Details about the authorization, such as identifiers, set by the card network +public type NetworkDataSpecs record { + @jsondata:Name {value: "acquiring_institution_id"} + string acquiringInstitutionId?; +}; + +# +public type InboundTransfersPaymentMethodDetailsUsBankAccount record { + # Last four digits of the bank account number + string? last4?; + # Account type: checkings or savings. Defaults to checking if omitted + @jsondata:Name {value: "account_type"} + "checking"|"savings"? accountType?; + # ID of the mandate used to make this payment + string|Mandate mandate?; + # Account holder type: individual or company + @jsondata:Name {value: "account_holder_type"} + "company"|"individual"? accountHolderType?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same + string? fingerprint?; + # Routing number of the bank account + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + # The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type + "ach" network; +}; + +# +public type PaymentMethodZip record { +}; + +public type InvoiceVoidBody record {| + # Specifies which fields in the response should be expanded + InvoiceVoidBodyExpandItemsString[] expand?; +|}; + +# +public type IssuingTransactionFleetCardholderPromptData record { + # Driver ID + @jsondata:Name {value: "driver_id"} + string? driverId?; + # Odometer reading + int? odometer?; + # User ID + @jsondata:Name {value: "user_id"} + string? userId?; + # Vehicle number + @jsondata:Name {value: "vehicle_number"} + string? vehicleNumber?; + # An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type + @jsondata:Name {value: "unspecified_id"} + string? unspecifiedId?; +}; + +# +public type ConnectEmbeddedPaymentsConfigClaim record { + ConnectEmbeddedPaymentsFeatures features; + # Whether the embedded component is enabled + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type GetCustomersCustomerBalanceTransactionsQueriesExpandItemsString string; + +public type PersonVerificationDocumentParam record { + @constraint:String {maxLength: 5000} + string back?; + @constraint:String {maxLength: 5000} + string front?; +}; + +@constraint:String {maxLength: 5000} +public type ExternalAccountsidBodyExpandItemsString string; + +public type SubscriptionResumeBody record {| + # Specifies which fields in the response should be expanded + SubscriptionResumeBodyExpandItemsString[] expand?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + # Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). Setting the value to `unchanged` advances the subscription's billing cycle anchor to the period that surrounds the current time. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle) + @jsondata:Name {value: "billing_cycle_anchor"} + "now"|"unchanged" billingCycleAnchor?; + # If set, the proration will be calculated as though the subscription was resumed at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint + @jsondata:Name {value: "proration_date"} + int prorationDate?; +|}; + +public type RangeQuerySpecs4 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type OutboundPayments record { + AccessWithAchDetails ach?; + @jsondata:Name {value: "us_domestic_wire"} + Access usDomesticWire?; +}; + +public type RangeQuerySpecs3 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs2 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs1 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type CountrySpecSupportedtransfercountriesItemsString string; + +@constraint:String {maxLength: 5000} +public type QuotesBodyExpandItemsString string; + +public type LinkedAccountOptionsParamPermissionsItemsString "balances"|"ownership"|"payment_method"|"transactions"; + +public type RangeQuerySpecs9 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs8 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +# +public type PaymentMethodKlarna record { + # The customer's date of birth, if provided + PaymentFlowsPrivatePaymentMethodsKlarnaDob? dob?; +}; + +public type RangeQuerySpecs7 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs6 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +public type RangeQuerySpecs5 record { + int lt?; + int gte?; + int lte?; + int gt?; +}; + +@constraint:String {maxLength: 5000} +public type GetIssuingCardholdersCardholderQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPlansPlanQueriesExpandItemsString string; + +# +public type PaymentMethodUsBankAccountBlocked record { + # The ACH network code that resulted in this block + @jsondata:Name {value: "network_code"} + "R02"|"R03"|"R04"|"R05"|"R07"|"R08"|"R10"|"R11"|"R16"|"R20"|"R29"|"R31"? networkCode?; + # The reason why this PaymentMethod's fingerprint has been blocked + "bank_account_closed"|"bank_account_frozen"|"bank_account_invalid_details"|"bank_account_restricted"|"bank_account_unusable"|"debit_not_authorized"? reason?; +}; + +public type IdVerifyBody record {| + # Specifies which fields in the response should be expanded + IdVerifyBodyExpandItemsString[] expand?; + # Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account + int[] amounts?; +|}; + +# Represents the Queries record for the operation: GetRadarEarlyFraudWarnings +public type GetRadarEarlyFraudWarningsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetRadarEarlyFraudWarningsQueriesExpandItemsString[] expand?; + # Only return early fraud warnings for the charge specified by this charge ID + string charge?; + # Only return early fraud warnings that were created during the given date interval + Created29 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return early fraud warnings for charges that were created by the PaymentIntent specified by this PaymentIntent ID + @http:Query {name: "payment_intent"} + string paymentIntent?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# Point in Time +public type GelatoDataDocumentReportDateOfBirth record { + # Numerical month between 1 and 12 + int? month?; + # The four-digit year + int? year?; + # Numerical day between 1 and 31 + int? day?; +}; + +public type CustomerDetailsParam1 record { + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string name; string phone?;}|"" shipping?; + @jsondata:Name {value: "tax_ids"} + DataParams[] taxIds?; + @jsondata:Name {value: "tax_exempt"} + ""|"exempt"|"none"|"reverse" taxExempt?; + TaxParam1 tax?; +}; + +public type CustomerDetailsParam2 record { + record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;}|"" address?; + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string name; string phone?;}|"" shipping?; + @jsondata:Name {value: "tax_ids"} + DataParams[] taxIds?; + @jsondata:Name {value: "tax_exempt"} + ""|"exempt"|"none"|"reverse" taxExempt?; + TaxParam1 tax?; +}; + +public type PaymentMethodCardPresentPreferredlocalesItemsString string; + +# +public type PaymentIntentTypeSpecificPaymentMethodOptionsClient record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual"|"manual_preferred" captureMethod?; + PaymentMethodOptionsCardPresentRouting routing?; + PaymentFlowsInstallmentOptions installments?; + # Bank account verification method + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; + # When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter) + @jsondata:Name {value: "require_cvc_recollection"} + boolean requireCvcRecollection?; +}; + +# Represents the Queries record for the operation: GetTerminalConfigurationsConfiguration +public type GetTerminalConfigurationsConfigurationQueries record { + # Specifies which fields in the response should be expanded + GetTerminalConfigurationsConfigurationQueriesExpandItemsString[] expand?; +}; + +# +public type PortalFlowsRetention record { + # Configuration when `retention.type=coupon_offer` + @jsondata:Name {value: "coupon_offer"} + PortalFlowsCouponOffer? couponOffer?; + # Type of retention strategy that will be used + "coupon_offer" 'type; +}; + +# +public type AccountRequirementsError record { + # An informative message that indicates the error type and provides additional details about the error + @constraint:String {maxLength: 5000} + string reason; + # The code for the type of error + "invalid_address_city_state_postal_code"|"invalid_address_highway_contract_box"|"invalid_address_private_mailbox"|"invalid_business_profile_name"|"invalid_business_profile_name_denylisted"|"invalid_company_name_denylisted"|"invalid_dob_age_over_maximum"|"invalid_dob_age_under_18"|"invalid_dob_age_under_minimum"|"invalid_product_description_length"|"invalid_product_description_url_match"|"invalid_representative_country"|"invalid_statement_descriptor_business_mismatch"|"invalid_statement_descriptor_denylisted"|"invalid_statement_descriptor_length"|"invalid_statement_descriptor_prefix_denylisted"|"invalid_statement_descriptor_prefix_mismatch"|"invalid_street_address"|"invalid_tax_id"|"invalid_tax_id_format"|"invalid_tos_acceptance"|"invalid_url_denylisted"|"invalid_url_format"|"invalid_url_web_presence_detected"|"invalid_url_website_business_information_mismatch"|"invalid_url_website_empty"|"invalid_url_website_inaccessible"|"invalid_url_website_inaccessible_geoblocked"|"invalid_url_website_inaccessible_password_protected"|"invalid_url_website_incomplete"|"invalid_url_website_incomplete_cancellation_policy"|"invalid_url_website_incomplete_customer_service_details"|"invalid_url_website_incomplete_legal_restrictions"|"invalid_url_website_incomplete_refund_policy"|"invalid_url_website_incomplete_return_policy"|"invalid_url_website_incomplete_terms_and_conditions"|"invalid_url_website_incomplete_under_construction"|"invalid_url_website_other"|"invalid_value_other"|"verification_directors_mismatch"|"verification_document_address_mismatch"|"verification_document_address_missing"|"verification_document_corrupt"|"verification_document_country_not_supported"|"verification_document_directors_mismatch"|"verification_document_dob_mismatch"|"verification_document_duplicate_type"|"verification_document_expired"|"verification_document_failed_copy"|"verification_document_failed_greyscale"|"verification_document_failed_other"|"verification_document_failed_test_mode"|"verification_document_fraudulent"|"verification_document_id_number_mismatch"|"verification_document_id_number_missing"|"verification_document_incomplete"|"verification_document_invalid"|"verification_document_issue_or_expiry_date_missing"|"verification_document_manipulated"|"verification_document_missing_back"|"verification_document_missing_front"|"verification_document_name_mismatch"|"verification_document_name_missing"|"verification_document_nationality_mismatch"|"verification_document_not_readable"|"verification_document_not_signed"|"verification_document_not_uploaded"|"verification_document_photo_mismatch"|"verification_document_too_large"|"verification_document_type_not_supported"|"verification_extraneous_directors"|"verification_failed_address_match"|"verification_failed_business_iec_number"|"verification_failed_document_match"|"verification_failed_id_number_match"|"verification_failed_keyed_identity"|"verification_failed_keyed_match"|"verification_failed_name_match"|"verification_failed_other"|"verification_failed_representative_authority"|"verification_failed_residential_address"|"verification_failed_tax_id_match"|"verification_failed_tax_id_not_issued"|"verification_missing_directors"|"verification_missing_executives"|"verification_missing_owners"|"verification_requires_additional_memorandum_of_associations"|"verification_requires_additional_proof_of_registration" code; + # The specific user onboarding requirement field (in the requirements hash) that needs to be resolved + @constraint:String {maxLength: 5000} + string requirement; +}; + +public type MetersidBody record {| + # Specifies which fields in the response should be expanded + MetersidBodyExpandItemsString[] expand?; + # The meter's name + @jsondata:Name {value: "display_name"} + string displayName?; +|}; + +# Generate a post-purchase Invoice for one-time payments +public type InvoiceCreationCreateParams record { + @jsondata:Name {value: "invoice_data"} + InvoiceSettingsParams1 invoiceData?; + boolean enabled; +}; + +public type IntentCancelBody record {| + # Specifies which fields in the response should be expanded + IntentCancelBodyExpandItemsString[] expand?; + # Reason for canceling this PaymentIntent. Possible values are: `duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned` + @jsondata:Name {value: "cancellation_reason"} + "abandoned"|"duplicate"|"fraudulent"|"requested_by_customer" cancellationReason?; +|}; + +# +public type ShippingRateDeliveryEstimate record { + # The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite + ShippingRateDeliveryEstimateBound? maximum?; + # The lower bound of the estimated range. If empty, represents no lower bound + ShippingRateDeliveryEstimateBound? minimum?; +}; + +public type SubscriptionDefaultTaxRates1AnyOf1 SubscriptionDefaultTaxRates1AnyOf1ItemsString[]; + +@constraint:String {maxLength: 5000} +public type GetRadarEarlyFraudWarningsEarlyFraudWarningQueriesExpandItemsString string; + +# When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method) +# value in the SetupIntent +public type PaymentMethodDataParams1 record { + record {} paynow?; + @jsondata:Name {value: "billing_details"} + BillingDetailsInnerParams billingDetails?; + record {} blik?; + record {|string...;|} metadata?; + @jsondata:Name {value: "interac_present"} + record {} interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodParam acssDebit?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions1 radarOptions?; + @jsondata:Name {value: "bacs_debit"} + Param5 bacsDebit?; + Param6 boleto?; + record {} link?; + @jsondata:Name {value: "amazon_pay"} + record {} amazonPay?; + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type; + @jsondata:Name {value: "au_becs_debit"} + Param4 auBecsDebit?; + record {} oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + record {} afterpayClearpay?; + record {} swish?; + record {} twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam1 usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {} customerBalance?; + record {} cashapp?; + @jsondata:Name {value: "wechat_pay"} + record {} wechatPay?; + record {} paypal?; + record {} pix?; + @jsondata:Name {value: "revolut_pay"} + record {} revolutPay?; + record {} giropay?; + record {} zip?; + record {} alipay?; + Param9 ideal?; + Param7 eps?; + record {} konbini?; + Param13 sofort?; + Param8 fpx?; + record {} promptpay?; + record {} affirm?; + record {} mobilepay?; + record {} bancontact?; + record {} grabpay?; + Param10 klarna?; + Param11 p24?; + @jsondata:Name {value: "sepa_debit"} + Param12 sepaDebit?; + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + record {} multibanco?; +}; + +# If provided, this hash will be used to create a PaymentMethod +public type PaymentMethodDataParams2 record { + record {} paynow?; + @jsondata:Name {value: "billing_details"} + BillingDetailsInnerParams billingDetails?; + record {} blik?; + record {|string...;|} metadata?; + @jsondata:Name {value: "interac_present"} + record {} interacPresent?; + @jsondata:Name {value: "acss_debit"} + PaymentMethodParam acssDebit?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions1 radarOptions?; + @jsondata:Name {value: "bacs_debit"} + Param5 bacsDebit?; + Param6 boleto?; + record {} link?; + @jsondata:Name {value: "amazon_pay"} + record {} amazonPay?; + "acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip" 'type; + @jsondata:Name {value: "au_becs_debit"} + Param4 auBecsDebit?; + record {} oxxo?; + @jsondata:Name {value: "afterpay_clearpay"} + record {} afterpayClearpay?; + record {} swish?; + record {} twint?; + @jsondata:Name {value: "us_bank_account"} + PaymentMethodParam1 usBankAccount?; + @jsondata:Name {value: "customer_balance"} + record {} customerBalance?; + record {} cashapp?; + @jsondata:Name {value: "wechat_pay"} + record {} wechatPay?; + record {} paypal?; + record {} pix?; + @jsondata:Name {value: "revolut_pay"} + record {} revolutPay?; + record {} giropay?; + record {} zip?; + record {} alipay?; + Param9 ideal?; + Param7 eps?; + record {} konbini?; + Param13 sofort?; + Param8 fpx?; + record {} promptpay?; + record {} affirm?; + record {} mobilepay?; + record {} bancontact?; + record {} grabpay?; + Param10 klarna?; + Param11 p24?; + @jsondata:Name {value: "sepa_debit"} + Param12 sepaDebit?; + @jsondata:Name {value: "allow_redisplay"} + "always"|"limited"|"unspecified" allowRedisplay?; + record {} multibanco?; +}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionsSubscriptionExposedIdQueriesExpandItemsString string; + +# +public type CheckoutMobilepayPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +# Represents a reader action to set the reader display +public type TerminalReaderReaderResourceSetReaderDisplayAction record { + # Type of information to be displayed by the reader + "cart" 'type; + # Cart object to be displayed by the reader + TerminalReaderReaderResourceCart? cart?; +}; + +# +public type PaymentMethodCardWalletLink record { +}; + +public type PaymentIntentsintentBodyPaymentmethodtypesItemsString string; + +@constraint:String {maxLength: 5000} +public type IssuingCardsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetPaymentIntentsSearchQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetTerminalReaders +public type GetTerminalReadersQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTerminalReadersQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Filters readers by device type + @http:Query {name: "device_type"} + "bbpos_chipper2x"|"bbpos_wisepad3"|"bbpos_wisepos_e"|"mobile_phone_reader"|"simulated_wisepos_e"|"stripe_m2"|"verifone_P400" deviceType?; + # A location ID to filter the response list to only readers at the specific location + @constraint:String {maxLength: 5000} + string location?; + # Filters readers by serial number + @http:Query {name: "serial_number"} + string serialNumber?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # A status filter to filter readers to only offline or online readers + "offline"|"online" status?; +}; + +public type IntentConfirmBody record {| + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "automatic"|"automatic_async"|"manual" captureMethod?; + # ID of the mandate that's used for this payment + @constraint:String {maxLength: 5000} + string mandate?; + @jsondata:Name {value: "radar_options"} + RadarOptionsWithHiddenOptions2 radarOptions?; + # The list of payment method types (for example, a card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods) + @jsondata:Name {value: "payment_method_types"} + IntentConfirmBodyPaymentmethodtypesItemsString[] paymentMethodTypes?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication). + # + # If `setup_future_usage` is already set and you are performing a request using a publishable key, you may only update the value from `on_session` to `off_session` + @jsondata:Name {value: "setup_future_usage"} + ""|"off_session"|"on_session" setupFutureUsage?; + # ID of the ConfirmationToken used to confirm this PaymentIntent. + # + # If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence + @jsondata:Name {value: "confirmation_token"} + string confirmationToken?; + # Specifies which fields in the response should be expanded + IntentConfirmBodyExpandItemsString[] expand?; + # Shipping information for this PaymentIntent + record {record {string city?; string country?; string line1?; string line2?; string postal_code?; string state?;} address; string carrier?; string name; string phone?; string tracking_number?;}|"" shipping?; + # Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails) + @jsondata:Name {value: "receipt_email"} + string|"" receiptEmail?; + # Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards) + @jsondata:Name {value: "off_session"} + boolean|"one_off"|"recurring" offSession?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams paymentMethodData?; + # The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. + # If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. + # This parameter is only used for cards and other redirect-based payment methods + @jsondata:Name {value: "return_url"} + string returnUrl?; + # The client secret of the PaymentIntent + @jsondata:Name {value: "client_secret"} + string clientSecret?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam14 paymentMethodOptions?; + @jsondata:Name {value: "mandate_data"} + record {record {int accepted_at?; record {} offline?; record {string ip_address; string user_agent;} online?; "offline"|"online" 'type;} customer_acceptance;}|""|record {record {record {string ip_address?; string user_agent?;} online; "online" 'type;} customer_acceptance;} mandateData?; + # Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. This parameter is intended for simpler integrations that do not handle customer actions, like [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication) + @jsondata:Name {value: "error_on_requires_action"} + boolean errorOnRequiresAction?; + # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions + @jsondata:Name {value: "use_stripe_sdk"} + boolean useStripeSdk?; + # ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent + @jsondata:Name {value: "payment_method"} + string paymentMethod?; +|}; + +public type InvoiceRemoveLinesBody record {| + # 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` + @jsondata:Name {value: "invoice_metadata"} + record {|string...;|}|"" invoiceMetadata?; + # Specifies which fields in the response should be expanded + InvoiceRemoveLinesBodyExpandItemsString[] expand?; + # The line items to remove + LinesDataParam1[] lines; +|}; + +# +public type IssuingCardApplePay record { + # Apple Pay Eligibility + boolean eligible; + # Reason the card is ineligible for Apple Pay + @jsondata:Name {value: "ineligible_reason"} + "missing_agreement"|"missing_cardholder_contact"|"unsupported_region"? ineligibleReason?; +}; + +# +public type BankConnectionsResourceOwnershipRefresh record { + # The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch + @jsondata:Name {value: "last_attempted_at"} + int lastAttemptedAt; + # Time at which the next ownership refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch + @jsondata:Name {value: "next_refresh_available_at"} + int? nextRefreshAvailableAt?; + # The status of the last refresh attempt + "failed"|"pending"|"succeeded" status; +}; + +public type Europe record { + Standard standard?; + "ioss"|"oss_non_union"|"oss_union"|"standard" 'type; +}; + +# +public type ChargeOutcome record { + # An enumerated value providing a more detailed explanation of the outcome's `type`. Charges blocked by Radar's default block rule have the value `highest_risk_level`. Charges placed in review by Radar's default review rule have the value `elevated_risk_level`. Charges authorized, blocked, or placed in review by custom rules have the value `rule`. See [understanding declines](https://stripe.com/docs/declines) for more details + string? reason?; + # Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are `normal`, `elevated`, `highest`. For non-card payments, and card-based payments predating the public assignment of risk levels, this field will have the value `not_assessed`. In the event of an error in the evaluation, this field will have the value `unknown`. This field is only available with Radar + @jsondata:Name {value: "risk_level"} + string riskLevel?; + # Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are between 0 and 100. For non-card payments, card-based payments predating the public assignment of risk scores, or in the event of an error during evaluation, this field will not be present. This field is only available with Radar for Fraud Teams + @jsondata:Name {value: "risk_score"} + int riskScore?; + # The ID of the Radar rule that matched the payment, if applicable + string|Rule rule?; + # A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer + @jsondata:Name {value: "seller_message"} + string? sellerMessage?; + # Possible values are `approved_by_network`, `declined_by_network`, `not_sent_to_network`, and `reversed_after_approval`. The value `reversed_after_approval` indicates the payment was [blocked by Stripe](https://stripe.com/docs/declines#blocked-payments) after bank authorization, and may temporarily appear as "pending" on a cardholder's statement + @jsondata:Name {value: "network_status"} + string? networkStatus?; + # Possible values are `authorized`, `manual_review`, `issuer_declined`, `blocked`, and `invalid`. See [understanding declines](https://stripe.com/docs/declines) and [Radar reviews](https://stripe.com/docs/radar/reviews) for details + @constraint:String {maxLength: 5000} + string 'type; +}; + +@constraint:String {maxLength: 5000} +public type TreasuryDebitReversalsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TreasuryOutboundPaymentsBodyExpandItemsString string; + +# +public type PaymentMethodOptionsFpx record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type DocumentsParam13Files FilesAnyOf112|FilesFilesAnyOf1122; + +# +public type SetupIntentPaymentMethodOptions record { + @jsondata:Name {value: "acss_debit"} + SetupIntentPaymentMethodOptionsAcssDebit|SetupIntentTypeSpecificPaymentMethodOptionsClient acssDebit?; + @jsondata:Name {value: "us_bank_account"} + SetupIntentPaymentMethodOptionsUsBankAccount|SetupIntentTypeSpecificPaymentMethodOptionsClient usBankAccount?; + SetupIntentPaymentMethodOptionsLink|SetupIntentTypeSpecificPaymentMethodOptionsClient link?; + @jsondata:Name {value: "sepa_debit"} + SetupIntentPaymentMethodOptionsSepaDebit|SetupIntentTypeSpecificPaymentMethodOptionsClient sepaDebit?; + @jsondata:Name {value: "amazon_pay"} + SetupIntentPaymentMethodOptionsAmazonPay|SetupIntentTypeSpecificPaymentMethodOptionsClient amazonPay?; + @jsondata:Name {value: "card_present"} + SetupIntentPaymentMethodOptionsCardPresent|SetupIntentTypeSpecificPaymentMethodOptionsClient cardPresent?; + SetupIntentPaymentMethodOptionsPaypal|SetupIntentTypeSpecificPaymentMethodOptionsClient paypal?; + SetupIntentPaymentMethodOptionsCard|SetupIntentTypeSpecificPaymentMethodOptionsClient card?; +}; + +# +public type PaymentMethodDetailsSwish record { + # Uniquely identifies the payer's Swish account. You can use this attribute to check whether two Swish transactions were paid for by the same payer + string? fingerprint?; + # The last four digits of the Swish account phone number + @jsondata:Name {value: "verified_phone_last4"} + string? verifiedPhoneLast4?; + # Payer bank reference number for the payment + @jsondata:Name {value: "payment_reference"} + string? paymentReference?; +}; + +@constraint:String {maxLength: 5000} +public type IdCancelBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type InvoiceitemsBodyExpandItemsString string; + +public type QuoteAcceptBody record {| + # Specifies which fields in the response should be expanded + QuoteAcceptBodyExpandItemsString[] expand?; +|}; + +public type InvoiceItemPreviewParams record { + @jsondata:Name {value: "tax_behavior"} + "exclusive"|"inclusive"|"unspecified" taxBehavior?; + int amount?; + record {|string...;|}|"" metadata?; + Period2 period?; + @jsondata:Name {value: "price_data"} + OneTimePriceData1 priceData?; + int quantity?; + @constraint:String {maxLength: 5000} + string invoiceitem?; + @constraint:String {maxLength: 5000} + string description?; + @jsondata:Name {value: "unit_amount_decimal"} + string unitAmountDecimal?; + @jsondata:Name {value: "unit_amount"} + int unitAmount?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; + @jsondata:Name {value: "tax_code"} + string|"" taxCode?; + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + @constraint:String {maxLength: 5000} + string price?; + string currency?; + boolean discountable?; +}; + +# Represents the Queries record for the operation: GetDisputes +public type GetDisputesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetDisputesQueriesExpandItemsString[] expand?; + # Only return disputes associated to the charge specified by this charge ID + @constraint:String {maxLength: 5000} + string charge?; + Created9 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID + @http:Query {name: "payment_intent"} + string paymentIntent?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type SourcesBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTransfersTransferReversalsIdQueriesExpandItemsString string; + +# The request body and headers to be sent to the destination endpoint +public type RequestParam record { + HeaderParam[] headers?; + @constraint:String {maxLength: 5000} + string body?; +}; + +# Represents the Queries record for the operation: GetIssuingTokensToken +public type GetIssuingTokensTokenQueries record { + # Specifies which fields in the response should be expanded + GetIssuingTokensTokenQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetIssuingPhysicalBundles +public type GetIssuingPhysicalBundlesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetIssuingPhysicalBundlesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return physical bundles with the given type + "custom"|"standard" 'type?; + # Only return physical bundles with the given status + "active"|"inactive"|"review" status?; +}; + +public type CustomFieldOptionParam record { + @constraint:String {maxLength: 100} + string label; + @constraint:String {maxLength: 100} + string value; +}; + +# Default invoice settings for this customer +public type CustomerParam record { + @constraint:String {maxLength: 5000} + string footer?; + @jsondata:Name {value: "custom_fields"} + record {string name; string value;}[]|"" customFields?; + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + @jsondata:Name {value: "rendering_options"} + record {""|"exclude_tax"|"include_inclusive_tax" amount_tax_display?;}|"" renderingOptions?; +}; + +public type SubscriptionDefaultTaxRates SubscriptionDefaultTaxRatesAnyOf1|SubscriptionDefaultTaxRatesSubscriptionDefaultTaxRatesAnyOf12; + +public type DueDate RangeQuerySpecs18|DueDateRangeQuerySpecs182; + +public type InvoiceFinalizeBody record {| + # Specifies which fields in the response should be expanded + InvoiceFinalizeBodyExpandItemsString[] expand?; + # Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action + @jsondata:Name {value: "auto_advance"} + boolean autoAdvance?; +|}; + +@constraint:String {maxLength: 5000} +public type PayoutReverseBodyExpandItemsString string; + +public type Address1 record { + @constraint:String {maxLength: 5000} + string country?; + @constraint:String {maxLength: 5000} + string city?; + @constraint:String {maxLength: 5000} + string state?; + @jsondata:Name {value: "postal_code"} + string postalCode?; + @constraint:String {maxLength: 5000} + string line2?; + @constraint:String {maxLength: 5000} + string line1; +}; + +@constraint:String {maxLength: 5000} +public type CouponsBodyExpandItemsString string; + +public type SourcesidBody1 record {| + # Specifies which fields in the response should be expanded + SourcesidBody1ExpandItemsString[] expand?; +|}; + +# +public type IssuingCardholderRequirements record { + # Array of fields that need to be collected in order to verify and re-enable the cardholder + @jsondata:Name {value: "past_due"} + ("company.tax_id"|"individual.card_issuing.user_terms_acceptance.date"|"individual.card_issuing.user_terms_acceptance.ip"|"individual.dob.day"|"individual.dob.month"|"individual.dob.year"|"individual.first_name"|"individual.last_name"|"individual.verification.document")[]? pastDue?; + # If `disabled_reason` is present, all cards will decline authorizations with `cardholder_verification_required` reason + @jsondata:Name {value: "disabled_reason"} + "listed"|"rejected.listed"|"requirements.past_due"|"under_review"? disabledReason?; +}; + +public type CheckoutSessionsBody record {| + # Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0. + # This may occur if the Checkout Session includes a free trial or a discount. + # + # Can only be set in `subscription` mode. Defaults to `always`. + # + # If you'd like information on how to collect a payment method outside of Checkout, read the guide on configuring [subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials) + @jsondata:Name {value: "payment_method_collection"} + "always"|"if_required" paymentMethodCollection?; + # The ID of the payment method configuration to use with this Checkout session + @jsondata:Name {value: "payment_method_configuration"} + string paymentMethodConfiguration?; + # 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` + record {|string...;|} metadata?; + @jsondata:Name {value: "after_expiration"} + AfterExpirationParams afterExpiration?; + # This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-redirect-behavior) of embedded sessions. Defaults to `always` + @jsondata:Name {value: "redirect_on_completion"} + "always"|"if_required"|"never" redirectOnCompletion?; + @jsondata:Name {value: "setup_intent_data"} + SetupIntentDataParam setupIntentData?; + # A list of items the customer is purchasing. Use this parameter to pass one-time or recurring [Prices](https://stripe.com/docs/api/prices). + # + # For `payment` mode, there is a maximum of 100 line items, however it is recommended to consolidate line items if there are more than a few dozen. + # + # For `subscription` mode, there is a maximum of 20 line items with recurring Prices and 20 line items with one-time Prices. Line items with one-time Prices will be on the initial invoice only + @jsondata:Name {value: "line_items"} + LineItemParams[] lineItems?; + # The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used + "auto"|"bg"|"cs"|"da"|"de"|"el"|"en"|"en-GB"|"es"|"es-419"|"et"|"fi"|"fil"|"fr"|"fr-CA"|"hr"|"hu"|"id"|"it"|"ja"|"ko"|"lt"|"lv"|"ms"|"mt"|"nb"|"nl"|"pl"|"pt"|"pt-BR"|"ro"|"ru"|"sk"|"sl"|"sv"|"th"|"tr"|"vi"|"zh"|"zh-HK"|"zh-TW" locale?; + @jsondata:Name {value: "saved_payment_method_options"} + SavedPaymentMethodOptionsParam savedPaymentMethodOptions?; + # The mode of the Checkout Session. Pass `subscription` if the Checkout Session includes at least one recurring item + "payment"|"setup"|"subscription" mode?; + @jsondata:Name {value: "consent_collection"} + ConsentCollectionParams consentCollection?; + # The Epoch time in seconds at which the Checkout Session will expire. It can be anywhere from 30 minutes to 24 hours after Checkout Session creation. By default, this value is 24 hours from creation + @jsondata:Name {value: "expires_at"} + int expiresAt?; + @jsondata:Name {value: "subscription_data"} + SubscriptionDataParams subscriptionData?; + # Enables user redeemable promotion codes + @jsondata:Name {value: "allow_promotion_codes"} + boolean allowPromotionCodes?; + # Configure whether a Checkout Session creates a [Customer](https://stripe.com/docs/api/customers) during Session confirmation. + # + # When a Customer is not created, you can still retrieve email, address, and other customer data entered in Checkout + # with [customer_details](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-customer_details). + # + # Sessions that don't create Customers instead are grouped by [guest customers](https://stripe.com/docs/payments/checkout/guest-customers) + # in the Dashboard. Promotion codes limited to first time customers will return invalid for these Sessions. + # + # Can only be set in `payment` and `setup` mode + @jsondata:Name {value: "customer_creation"} + "always"|"if_required" customerCreation?; + # The coupon or promotion code to apply to this Session. Currently, only up to one may be specified + DiscountParams[] discounts?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParam paymentMethodData?; + @jsondata:Name {value: "phone_number_collection"} + PhoneNumberCollectionParams phoneNumberCollection?; + # A unique string to reference the Checkout Session. This can be a + # customer ID, a cart ID, or similar, and can be used to reconcile the + # session with your internal systems + @jsondata:Name {value: "client_reference_id"} + string clientReferenceId?; + # The URL to redirect your customer back to after they authenticate or cancel their payment on the + # payment method's app or site. This parameter is required if ui_mode is `embedded` + # and redirect-based payment methods are enabled on the session + @jsondata:Name {value: "return_url"} + string returnUrl?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Required in `setup` mode when `payment_method_types` is not set + string currency?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam paymentMethodOptions?; + # Specify whether Checkout should collect the customer's billing address. Defaults to `auto` + @jsondata:Name {value: "billing_address_collection"} + "auto"|"required" billingAddressCollection?; + # The URL to which Stripe should send customers when payment or setup + # is complete. + # This parameter is not allowed if ui_mode is `embedded`. If you’d like to use + # information from the successful Checkout Session on your page, read the + # guide on [customizing your success page](https://stripe.com/docs/payments/checkout/custom-success-page) + @jsondata:Name {value: "success_url"} + string successUrl?; + @jsondata:Name {value: "invoice_creation"} + InvoiceCreationParams invoiceCreation?; + @jsondata:Name {value: "shipping_address_collection"} + ShippingAddressCollectionParams shippingAddressCollection?; + # Collect additional information from your customer using custom fields. Up to 3 fields are supported + @jsondata:Name {value: "custom_fields"} + CustomFieldParam[] customFields?; + # A list of the types of payment methods (e.g., `card`) this Checkout Session can accept. + # + # You can omit this attribute to manage your payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). + # See [Dynamic Payment Methods](https://stripe.com/docs/payments/payment-methods/integration-options#using-dynamic-payment-methods) for more details. + # + # Read more about the supported payment methods and their requirements in our [payment + # method details guide](/docs/payments/checkout/payment-methods). + # + # If multiple payment methods are passed, Checkout will dynamically reorder them to + # prioritize the most relevant payment methods based on the customer's location and + # other characteristics + @jsondata:Name {value: "payment_method_types"} + ("acss_debit"|"affirm"|"afterpay_clearpay"|"alipay"|"amazon_pay"|"au_becs_debit"|"bacs_debit"|"bancontact"|"blik"|"boleto"|"card"|"cashapp"|"customer_balance"|"eps"|"fpx"|"giropay"|"grabpay"|"ideal"|"klarna"|"konbini"|"link"|"mobilepay"|"multibanco"|"oxxo"|"p24"|"paynow"|"paypal"|"pix"|"promptpay"|"revolut_pay"|"sepa_debit"|"sofort"|"swish"|"twint"|"us_bank_account"|"wechat_pay"|"zip")[] paymentMethodTypes?; + @jsondata:Name {value: "payment_intent_data"} + PaymentIntentDataParams paymentIntentData?; + # The shipping rate options to apply to this Session. Up to a maximum of 5 + @jsondata:Name {value: "shipping_options"} + ShippingOptionParams[] shippingOptions?; + # Describes the type of transaction being performed by Checkout in order to customize + # relevant text on the page, such as the submit button. `submit_type` can only be + # specified on Checkout Sessions in `payment` mode. If blank or `auto`, `pay` is used + @jsondata:Name {value: "submit_type"} + "auto"|"book"|"donate"|"pay" submitType?; + # Specifies which fields in the response should be expanded + CheckoutSessionsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxParams automaticTax?; + @jsondata:Name {value: "tax_id_collection"} + TaxIdCollectionParams taxIdCollection?; + @jsondata:Name {value: "custom_text"} + CustomTextParam customText?; + # If provided, this value will be used when the Customer object is created. + # If not provided, customers will be asked to enter their email address. + # Use this parameter to prefill customer data if you already have an email + # on file. To access information about the customer once a session is + # complete, use the `customer` field + @jsondata:Name {value: "customer_email"} + string customerEmail?; + @jsondata:Name {value: "customer_update"} + CustomerUpdateParams customerUpdate?; + # If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website + @jsondata:Name {value: "cancel_url"} + string cancelUrl?; + # The UI mode of the Session. Defaults to `hosted` + @jsondata:Name {value: "ui_mode"} + "embedded"|"hosted" uiMode?; + # ID of an existing Customer, if one exists. In `payment` mode, the customer’s most recently saved card + # payment method will be used to prefill the email, name, card details, and billing address + # on the Checkout page. In `subscription` mode, the customer’s [default payment method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) + # will be used if it’s a card, otherwise the most recently saved card will be used. A valid billing address, billing name and billing email are required on the payment method for Checkout to prefill the customer's card details. + # + # If the Customer already has a valid [email](https://stripe.com/docs/api/customers/object#customer_object-email) set, the email will be prefilled and not editable in Checkout. + # If the Customer does not have a valid `email`, Checkout will set the email entered during the session on the Customer. + # + # If blank for Checkout Sessions in `subscription` mode or with `customer_creation` set as `always` in `payment` mode, Checkout will create a new Customer object based on information provided during the payment flow. + # + # You can set [`payment_intent_data.setup_future_usage`](https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage) to have Checkout automatically attach the payment method to the Customer you pass in for future reuse + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# +public type IssuingAuthorizationFuelData record { + # The units for `quantity_decimal` + "charging_minute"|"imperial_gallon"|"kilogram"|"kilowatt_hour"|"liter"|"other"|"pound"|"us_gallon"? unit?; + # The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places + @jsondata:Name {value: "quantity_decimal"} + string? quantityDecimal?; + # [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased + @jsondata:Name {value: "industry_product_code"} + string? industryProductCode?; + # The type of fuel that was purchased + "diesel"|"other"|"unleaded_plus"|"unleaded_regular"|"unleaded_super"? 'type?; + # The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places + @jsondata:Name {value: "unit_cost_decimal"} + string? unitCostDecimal?; +}; + +@constraint:String {maxLength: 5000} +public type GetShippingRatesQueriesExpandItemsString string; + +# +public type InvoiceInstallmentsCard record { + # Whether Installments are enabled for this Invoice + boolean? enabled?; +}; + +public type ControllerLossesSpecs record { + "application"|"stripe" payments?; +}; + +public type EndBehavior record { + @jsondata:Name {value: "missing_payment_method"} + "cancel"|"create_invoice"|"pause" missingPaymentMethod; +}; + +public type Created41RangeQuerySpecs502 int; + +# +public type IssuingTransactionFlightData record { + # The travel agency that issued the ticket + @jsondata:Name {value: "travel_agency"} + string? travelAgency?; + # The time that the flight departed + @jsondata:Name {value: "departure_at"} + int? departureAt?; + # Whether the ticket is refundable + boolean? refundable?; + # The name of the passenger + @jsondata:Name {value: "passenger_name"} + string? passengerName?; + # The legs of the trip + IssuingTransactionFlightDataLeg[]? segments?; +}; + +# +public type PaymentIntentNextActionPixDisplayQrCode record { + # The image_url_png string used to render png QR code + @jsondata:Name {value: "image_url_png"} + string imageUrlPng?; + # The date (unix timestamp) when the PIX expires + @jsondata:Name {value: "expires_at"} + int expiresAt?; + # The raw data string used to generate QR code, it should be used together with QR code library + @constraint:String {maxLength: 5000} + string data?; + # The URL to the hosted pix instructions page, which allows customers to view the pix QR code + @jsondata:Name {value: "hosted_instructions_url"} + string hostedInstructionsUrl?; + # The image_url_svg string used to render svg QR code + @jsondata:Name {value: "image_url_svg"} + string imageUrlSvg?; +}; + +public type OutboundTransferPostBody record {| + # Specifies which fields in the response should be expanded + OutboundTransferPostBodyExpandItemsString[] expand?; +|}; + +# +public type DeletedTerminalLocation record { + # Always true for a deleted object + true deleted; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "terminal.location" 'object; +}; + +# Each customer has a [`balance`](https://stripe.com/docs/api/customers/object#customer_object-balance) that is +# automatically applied to future invoices and payments using the `customer_balance` payment method. +# Customers can fund this balance by initiating a bank transfer to any account in the +# `financial_addresses` field. +# Related guide: [Customer balance funding instructions](https://stripe.com/docs/payments/customer-balance/funding-instructions) +public type FundingInstructions record { + @jsondata:Name {value: "bank_transfer"} + FundingInstructionsBankTransfer bankTransfer; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # The `funding_type` of the returned instructions + @jsondata:Name {value: "funding_type"} + "bank_transfer" fundingType; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + @constraint:String {maxLength: 5000} + string currency; + # String representing the object's type. Objects of the same type share the same value + "funding_instructions" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetWebhookEndpointsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetEntitlementsFeaturesIdQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type InvoiceMarkUncollectibleBodyExpandItemsString string; + +public type ReleasedAt RangeQuerySpecs44|ReleasedAtRangeQuerySpecs442; + +# Represents the Queries record for the operation: GetCustomersCustomerBankAccounts +public type GetCustomersCustomerBankAccountsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetCustomersCustomerBankAccountsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type CustomFieldParam record { + CustomFieldNumericParam numeric?; + boolean optional?; + CustomFieldLabelParam label; + CustomFieldTextParam text?; + "dropdown"|"numeric"|"text" 'type; + CustomFieldDropdownParam dropdown?; + @constraint:String {maxLength: 200} + string 'key; +}; + +public type ChargeRefundBody record {| + # String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms + "duplicate"|"fraudulent"|"requested_by_customer" reason?; + # A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) representing how much of this charge to refund. Can refund only up to the remaining, unrefunded amount of the charge + int amount?; + # Specifies which fields in the response should be expanded + ChargeRefundBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions + @jsondata:Name {value: "instructions_email"} + string instructionsEmail?; + # Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge + @jsondata:Name {value: "refund_application_fee"} + boolean refundApplicationFee?; + # Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge + @jsondata:Name {value: "reverse_transfer"} + boolean reverseTransfer?; + # The identifier of the PaymentIntent to refund + @jsondata:Name {value: "payment_intent"} + string paymentIntent?; +|}; + +# +public type PaymentLinksResourceCustomFieldsDropdown record { + # The options available for the customer to select. Up to 200 options allowed + PaymentLinksResourceCustomFieldsDropdownOption[] options; +}; + +public type PersonVerificationSpecs record { + PersonVerificationDocumentSpecs document?; + @jsondata:Name {value: "additional_document"} + PersonVerificationDocumentSpecs additionalDocument?; +}; + +# +public type PaymentIntentNextActionBoleto record { + # The boleto number + string? number?; + # The timestamp after which the boleto expires + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # The URL to the downloadable boleto voucher PDF + string? pdf?; + # The URL to the hosted boleto voucher page, which allows customers to view the boleto voucher + @jsondata:Name {value: "hosted_voucher_url"} + string? hostedVoucherUrl?; +}; + +@constraint:String {maxLength: 5000} +public type AuthorizationReverseBodyExpandItemsString string; + +# Balance information for the FinancialAccount +public type TreasuryFinancialAccountsResourceBalance record { + # Funds not spendable yet, but will become available at a later time + @jsondata:Name {value: "inbound_pending"} + record {|int...;|} inboundPending; + # Funds the user can spend right now + record {|int...;|} cash; + # Funds in the account, but not spendable because they are being held for pending outbound flows + @jsondata:Name {value: "outbound_pending"} + record {|int...;|} outboundPending; +}; + +# Each key of the dictionary represents a capability, and each capability +# maps to its settings (for example, whether it has been requested or not). Each +# capability is inactive until you have provided its specific +# requirements and Stripe has verified them. An account might have some +# of its requested capabilities be active and some be inactive. +# +# Required when [account.controller.stripe_dashboard.type](/api/accounts/create#create_account-controller-dashboard-type) +# is `none`, which includes Custom accounts +public type CapabilitiesParam record { + @jsondata:Name {value: "revolut_pay_payments"} + CapabilityParam revolutPayPayments?; + @jsondata:Name {value: "mobilepay_payments"} + CapabilityParam mobilepayPayments?; + @jsondata:Name {value: "p24_payments"} + CapabilityParam p24Payments?; + @jsondata:Name {value: "cashapp_payments"} + CapabilityParam cashappPayments?; + @jsondata:Name {value: "jp_bank_transfer_payments"} + CapabilityParam jpBankTransferPayments?; + @jsondata:Name {value: "klarna_payments"} + CapabilityParam klarnaPayments?; + @jsondata:Name {value: "sepa_debit_payments"} + CapabilityParam sepaDebitPayments?; + @jsondata:Name {value: "us_bank_transfer_payments"} + CapabilityParam usBankTransferPayments?; + @jsondata:Name {value: "acss_debit_payments"} + CapabilityParam acssDebitPayments?; + @jsondata:Name {value: "blik_payments"} + CapabilityParam blikPayments?; + @jsondata:Name {value: "tax_reporting_us_1099_misc"} + CapabilityParam taxReportingUs1099Misc?; + @jsondata:Name {value: "fpx_payments"} + CapabilityParam fpxPayments?; + @jsondata:Name {value: "grabpay_payments"} + CapabilityParam grabpayPayments?; + @jsondata:Name {value: "jcb_payments"} + CapabilityParam jcbPayments?; + @jsondata:Name {value: "eps_payments"} + CapabilityParam epsPayments?; + CapabilityParam transfers?; + @jsondata:Name {value: "afterpay_clearpay_payments"} + CapabilityParam afterpayClearpayPayments?; + @jsondata:Name {value: "multibanco_payments"} + CapabilityParam multibancoPayments?; + @jsondata:Name {value: "gb_bank_transfer_payments"} + CapabilityParam gbBankTransferPayments?; + @jsondata:Name {value: "oxxo_payments"} + CapabilityParam oxxoPayments?; + @jsondata:Name {value: "india_international_payments"} + CapabilityParam indiaInternationalPayments?; + @jsondata:Name {value: "twint_payments"} + CapabilityParam twintPayments?; + @jsondata:Name {value: "konbini_payments"} + CapabilityParam konbiniPayments?; + @jsondata:Name {value: "sofort_payments"} + CapabilityParam sofortPayments?; + @jsondata:Name {value: "boleto_payments"} + CapabilityParam boletoPayments?; + @jsondata:Name {value: "au_becs_debit_payments"} + CapabilityParam auBecsDebitPayments?; + @jsondata:Name {value: "sepa_bank_transfer_payments"} + CapabilityParam sepaBankTransferPayments?; + @jsondata:Name {value: "giropay_payments"} + CapabilityParam giropayPayments?; + @jsondata:Name {value: "legacy_payments"} + CapabilityParam legacyPayments?; + @jsondata:Name {value: "tax_reporting_us_1099_k"} + CapabilityParam taxReportingUs1099K?; + @jsondata:Name {value: "bacs_debit_payments"} + CapabilityParam bacsDebitPayments?; + @jsondata:Name {value: "zip_payments"} + CapabilityParam zipPayments?; + @jsondata:Name {value: "card_payments"} + CapabilityParam cardPayments?; + @jsondata:Name {value: "mx_bank_transfer_payments"} + CapabilityParam mxBankTransferPayments?; + @jsondata:Name {value: "swish_payments"} + CapabilityParam swishPayments?; + @jsondata:Name {value: "affirm_payments"} + CapabilityParam affirmPayments?; + @jsondata:Name {value: "card_issuing"} + CapabilityParam cardIssuing?; + CapabilityParam treasury?; + @jsondata:Name {value: "bancontact_payments"} + CapabilityParam bancontactPayments?; + @jsondata:Name {value: "bank_transfer_payments"} + CapabilityParam bankTransferPayments?; + @jsondata:Name {value: "cartes_bancaires_payments"} + CapabilityParam cartesBancairesPayments?; + @jsondata:Name {value: "ideal_payments"} + CapabilityParam idealPayments?; + @jsondata:Name {value: "promptpay_payments"} + CapabilityParam promptpayPayments?; + @jsondata:Name {value: "paynow_payments"} + CapabilityParam paynowPayments?; + @jsondata:Name {value: "us_bank_account_ach_payments"} + CapabilityParam usBankAccountAchPayments?; + @jsondata:Name {value: "link_payments"} + CapabilityParam linkPayments?; + @jsondata:Name {value: "amazon_pay_payments"} + CapabilityParam amazonPayPayments?; +}; + +# +public type CheckoutIdealPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type TransactionsCreateReversalBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetBalanceQueriesExpandItemsString string; + +public type SourceTypeP24 record { + string? reference?; +}; + +public type OutboundTransfers record { + AccessWithAchDetails ach?; + @jsondata:Name {value: "us_domestic_wire"} + Access usDomesticWire?; +}; + +# Represents the Queries record for the operation: GetTreasuryTransactionEntriesId +public type GetTreasuryTransactionEntriesIdQueries record { + # Specifies which fields in the response should be expanded + GetTreasuryTransactionEntriesIdQueriesExpandItemsString[] expand?; +}; + +public type AddInvoiceItemEntry record { + @jsondata:Name {value: "price_data"} + OneTimePriceDataWithNegativeAmounts priceData?; + int quantity?; + DiscountsDataParam[] discounts?; + @constraint:String {maxLength: 5000} + string price?; + @jsondata:Name {value: "tax_rates"} + TaxratesItemsString[]|"" taxRates?; +}; + +# +public type TaxProductResourceTaxTransactionLineItemResourceReversal record { + # The `id` of the line item to reverse in the original transaction + @jsondata:Name {value: "original_line_item"} + string originalLineItem; +}; + +# The bank account this token will represent +public type TokenCreateBankAccount record { + @jsondata:Name {value: "account_number"} + string accountNumber; + @constraint:String {maxLength: 5000} + string country; + @jsondata:Name {value: "account_type"} + "checking"|"futsu"|"savings"|"toza" accountType?; + @jsondata:Name {value: "account_holder_name"} + string accountHolderName?; + @jsondata:Name {value: "account_holder_type"} + "company"|"individual" accountHolderType?; + string currency?; + @jsondata:Name {value: "routing_number"} + string routingNumber?; + @jsondata:Name {value: "payment_method"} + string paymentMethod?; +}; + +# +public type PaymentPagesCheckoutSessionListLineItems record { + # Details about each object + Item[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type LodgingSpecs record { + int nights?; + @jsondata:Name {value: "check_in_at"} + int checkInAt?; +}; + +# Represents the Queries record for the operation: GetTreasuryDebitReversals +public type GetTreasuryDebitReversalsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Returns objects associated with this FinancialAccount + @http:Query {name: "financial_account"} + string financialAccount; + # Specifies which fields in the response should be expanded + GetTreasuryDebitReversalsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return DebitReversals for a given resolution + "lost"|"won" resolution?; + # Only return DebitReversals for the ReceivedDebit ID + @http:Query {name: "received_debit"} + string receivedDebit?; + # Only return DebitReversals for a given status + "canceled"|"completed"|"processing" status?; +}; + +public type DisputeCloseBody record {| + # Specifies which fields in the response should be expanded + DisputeCloseBodyExpandItemsString[] expand?; +|}; + +# The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields +public type SubscriptionDetailsParams record { + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + @jsondata:Name {value: "cancel_now"} + boolean cancelNow?; + @jsondata:Name {value: "resume_at"} + "now" resumeAt?; + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + SubscriptionItemUpdateParams[] items?; + @jsondata:Name {value: "billing_cycle_anchor"} + "now"|"unchanged"|int billingCycleAnchor?; + @jsondata:Name {value: "proration_date"} + int prorationDate?; + @jsondata:Name {value: "cancel_at"} + int|"" cancelAt?; + @jsondata:Name {value: "start_date"} + int startDate?; +}; + +# +public type PaymentMethodOptionsSofort record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; + # Preferred language of the SOFORT authorization page that the customer is redirected to + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"es"|"fr"|"it"|"nl"|"pl"? preferredLanguage?; +}; + +# +public type PaymentMethodOptionsBacsDebit record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +public type SetupIntentPaymentMethodOptionsParam3 record { + @jsondata:Name {value: "financial_connections"} + LinkedAccountOptionsParam1 financialConnections?; + @jsondata:Name {value: "verification_method"} + "automatic"|"instant"|"microdeposits" verificationMethod?; + @jsondata:Name {value: "mandate_options"} + MandateOptionsParam1 mandateOptions?; + NetworksOptionsParam networks?; +}; + +public type ScheduleDetailsParams2 record { + @jsondata:Name {value: "end_behavior"} + "cancel"|"release" endBehavior?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + PhaseConfigurationParams2[] phases?; +}; + +public type SetupIntentPaymentMethodOptionsParam2 record { + @jsondata:Name {value: "mandate_options"} + record {} mandateOptions?; +}; + +public type ScheduleDetailsParams1 record { + @jsondata:Name {value: "end_behavior"} + "cancel"|"release" endBehavior?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + PhaseConfigurationParams1[] phases?; +}; + +public type SetupIntentPaymentMethodOptionsParam1 record { + @jsondata:Name {value: "transaction_id"} + string transactionId?; + @jsondata:Name {value: "ares_trans_status"} + "A"|"C"|"I"|"N"|"R"|"U"|"Y" aresTransStatus?; + @jsondata:Name {value: "network_options"} + NetworkOptionsParam networkOptions?; + @jsondata:Name {value: "electronic_commerce_indicator"} + "01"|"02"|"05"|"06"|"07" electronicCommerceIndicator?; + @jsondata:Name {value: "requestor_challenge_indicator"} + string requestorChallengeIndicator?; + "1.0.2"|"2.1.0"|"2.2.0" version?; + @constraint:String {maxLength: 5000} + string cryptogram?; +}; + +# +public type SearchResult record { + @jsondata:Name {value: "next_page"} + string? nextPage?; + Charge[] data; + # The total number of objects that match the query, only accurate up to 10,000 + @jsondata:Name {value: "total_count"} + int totalCount?; + @jsondata:Name {value: "has_more"} + boolean hasMore; + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value + "search_result" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetCouponsCouponQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTaxRegistrationsIdQueriesExpandItemsString string; + +# +public type PaymentMethodDetailsOxxo record { + # OXXO reference number + string? number?; +}; + +# Represents the Queries record for the operation: GetAccount +public type GetAccountQueries record { + # Specifies which fields in the response should be expanded + GetAccountQueriesExpandItemsString[] expand?; +}; + +# +public type PaymentMethodOptionsP24 record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +public type UnitedStates record { + @constraint:String {maxLength: 5000} + string state; + @jsondata:Name {value: "local_amusement_tax"} + LocalAmusementTax localAmusementTax?; + @jsondata:Name {value: "local_lease_tax"} + LocalLeaseTax localLeaseTax?; + "local_amusement_tax"|"local_lease_tax"|"state_communications_tax"|"state_sales_tax" 'type; +}; + +# Represents the Queries record for the operation: GetSubscriptionItemsSubscriptionItemUsageRecordSummaries +public type GetSubscriptionItemsSubscriptionItemUsageRecordSummariesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetSubscriptionItemsSubscriptionItemUsageRecordSummariesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type IssuingDisputeCanceledEvidence record { + # Date when the cardholder expected to receive the product + @jsondata:Name {value: "expected_at"} + int? expectedAt?; + # Whether the product was a merchandise or service + @jsondata:Name {value: "product_type"} + "merchandise"|"service"? productType?; + # (ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute + @jsondata:Name {value: "additional_documentation"} + string|File? additionalDocumentation?; + # Date when the product was returned or attempted to be returned + @jsondata:Name {value: "returned_at"} + int? returnedAt?; + # Date when order was canceled + @jsondata:Name {value: "canceled_at"} + int? canceledAt?; + # Result of cardholder's attempt to return the product + @jsondata:Name {value: "return_status"} + "merchant_rejected"|"successful"? returnStatus?; + # Reason for canceling the order + @jsondata:Name {value: "cancellation_reason"} + string? cancellationReason?; + # Explanation of why the cardholder is disputing this transaction + string? explanation?; + # Description of the merchandise or service that was purchased + @jsondata:Name {value: "product_description"} + string? productDescription?; + # Whether the cardholder was provided with a cancellation policy + @jsondata:Name {value: "cancellation_policy_provided"} + boolean? cancellationPolicyProvided?; +}; + +@constraint:String {maxLength: 5000} +public type GetSigmaScheduledQueryRunsQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetCharges +public type GetChargesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetChargesQueriesExpandItemsString[] expand?; + # Only return charges for this transfer group + @http:Query {name: "transfer_group"} + string transferGroup?; + # Only return charges that were created during the given date interval + Created4 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return charges that were created by the PaymentIntent specified by this PaymentIntent ID + @http:Query {name: "payment_intent"} + string paymentIntent?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return charges for the customer specified by this customer ID + @constraint:String {maxLength: 5000} + string customer?; +}; + +@constraint:String {maxLength: 5000} +public type IssuingCardholdersBodyExpandItemsString string; + +# +public type PortalPaymentMethodUpdate record { + # Whether the feature is enabled + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type IntentVerifyMicrodepositsBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetSubscriptionsSubscriptionExposedId +public type GetSubscriptionsSubscriptionExposedIdQueries record { + # Specifies which fields in the response should be expanded + GetSubscriptionsSubscriptionExposedIdQueriesExpandItemsString[] expand?; +}; + +# Represents the Queries record for the operation: GetPlans +public type GetPlansQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPlansQueriesExpandItemsString[] expand?; + # Only return plans for the given product + @constraint:String {maxLength: 5000} + string product?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created25 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return plans that are active or inactive (e.g., pass `false` to list all inactive plans) + boolean active?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +public type TreasuryReceivedDebitsBody record {| + # The FinancialAccount to pull funds from + @jsondata:Name {value: "financial_account"} + string financialAccount; + # Amount (in cents) to be transferred + int amount; + # Specifies which fields in the response should be expanded + TreasuryReceivedDebitsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "initiating_payment_method_details"} + SourceParams initiatingPaymentMethodDetails?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 5000} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type + "ach" network; +|}; + +# +public type PaymentMethodDetailsSofort record { + # The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge + @jsondata:Name {value: "generated_sepa_debit"} + string|PaymentMethod? generatedSepaDebit?; + # Bank code of bank associated with the bank account + @jsondata:Name {value: "bank_code"} + string? bankCode?; + # Two-letter ISO code representing the country the bank account is located in + string? country?; + # Name of the bank associated with the bank account + @jsondata:Name {value: "bank_name"} + string? bankName?; + # Last four characters of the IBAN + @jsondata:Name {value: "iban_last4"} + string? ibanLast4?; + # Owner's verified full name. Values are verified or provided by SOFORT directly + # (if supported) at the time of authorization or settlement. They cannot be set or mutated + @jsondata:Name {value: "verified_name"} + string? verifiedName?; + # The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge + @jsondata:Name {value: "generated_sepa_debit_mandate"} + string|Mandate? generatedSepaDebitMandate?; + # Bank Identifier Code of the bank associated with the bank account + string? bic?; + # Preferred language of the SOFORT authorization page that the customer is redirected to. + # Can be one of `de`, `en`, `es`, `fr`, `it`, `nl`, or `pl` + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"es"|"fr"|"it"|"nl"|"pl"? preferredLanguage?; +}; + +@constraint:String {maxLength: 5000} +public type GetEntitlementsFeaturesQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type ReportingReportRunsBodyExpandItemsString string; + +public type FilesBody record {| + # Specifies which fields in the response should be expanded + FilesBodyExpandItemsString[] expand?; + # A file to upload. Make sure that the specifications follow RFC 2388, which defines file transfers for the `multipart/form-data` protocol + record {byte[] fileContent; string fileName;} file; + # The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file + "account_requirement"|"additional_verification"|"business_icon"|"business_logo"|"customer_signature"|"dispute_evidence"|"identity_document"|"pci_document"|"tax_document_user_upload"|"terminal_reader_splashscreen" purpose; + @jsondata:Name {value: "file_link_data"} + FileLinkCreationParams fileLinkData?; +|}; + +public type TerminalReadersBody record {| + # Specifies which fields in the response should be expanded + TerminalReadersBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # A code generated by the reader used for registering to an account + @jsondata:Name {value: "registration_code"} + string registrationCode; + # The location to assign the reader to + @constraint:String {maxLength: 5000} + string location?; + # Custom label given to the reader for easier identification. If no label is specified, the registration code will be used + @constraint:String {maxLength: 5000} + string label?; +|}; + +@constraint:String {maxLength: 5000} +public type SubscriptionItemUsageRecordsBodyExpandItemsString string; + +# +public type QuotesResourceTotalDetailsResourceBreakdown record { + # The aggregated discounts + LineItemsDiscountAmount[] discounts; + # The aggregated tax amounts by rate + LineItemsTaxAmount[] taxes; +}; + +# +public type PaymentIntentPaymentMethodOptionsAuBecsDebit record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session"|"on_session" setupFutureUsage?; +}; + +public type SubscriptionDefaultTaxRates1 SubscriptionDefaultTaxRates1AnyOf1|SubscriptionDefaultTaxRates1SubscriptionDefaultTaxRates1AnyOf12; + +# Details about the address from which the goods are being shipped +public type ShipFromDetails record { + MerchantPostalAddress address; +}; + +# Represents the Queries record for the operation: GetCountrySpecsCountry +public type GetCountrySpecsCountryQueries record { + # Specifies which fields in the response should be expanded + GetCountrySpecsCountryQueriesExpandItemsString[] expand?; +}; + +# +public type APIMethodRefundList record { + Refund[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/refunds`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type CheckoutP24PaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type FiltersParamsCountriesItemsString string; + +# Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode +public type SavedPaymentMethodOptionsParam record { + @jsondata:Name {value: "payment_method_save"} + "disabled"|"enabled" paymentMethodSave?; + @jsondata:Name {value: "allow_redisplay_filters"} + ("always"|"limited"|"unspecified")[] allowRedisplayFilters?; +}; + +# Represents the Queries record for the operation: GetIssuingCardholdersCardholder +public type GetIssuingCardholdersCardholderQueries record { + # Specifies which fields in the response should be expanded + GetIssuingCardholdersCardholderQueriesExpandItemsString[] expand?; +}; + +# +public type IssuingAuthorizationMerchantData record { + # Country where the seller is located + string? country?; + # Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant + @jsondata:Name {value: "network_id"} + string networkId; + # The merchant category code for the seller’s business + @jsondata:Name {value: "category_code"} + string categoryCode; + # City where the seller is located + string? city?; + # Name of the seller + string? name?; + # State where the seller is located + string? state?; + # A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values + @constraint:String {maxLength: 5000} + string category; + # Postal code where the seller is located + @jsondata:Name {value: "postal_code"} + string? postalCode?; + # An ID assigned by the seller to the location of the sale + @jsondata:Name {value: "terminal_id"} + string? terminalId?; + # URL provided by the merchant on a 3DS request + string? url?; +}; + +# +public type TaxProductRegistrationsResourceTaxRegistrationList record { + TaxRegistration[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/tax/registrations`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type SetupAttemptPaymentMethodDetailsAmazonPay record { +}; + +# +public type IssuingTransactionFuelData record { + # The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other` + @constraint:String {maxLength: 5000} + string unit; + # The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places + @jsondata:Name {value: "quantity_decimal"} + string? quantityDecimal?; + # [Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased + @jsondata:Name {value: "industry_product_code"} + string? industryProductCode?; + # The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other` + @constraint:String {maxLength: 5000} + string 'type; + # The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places + @jsondata:Name {value: "unit_cost_decimal"} + string unitCostDecimal; +}; + +# +public type IssuingPersonalizationDesignCarrierText record { + # The footer body text of the carrier letter + @jsondata:Name {value: "footer_body"} + string? footerBody?; + # The header title text of the carrier letter + @jsondata:Name {value: "header_title"} + string? headerTitle?; + # The header body text of the carrier letter + @jsondata:Name {value: "header_body"} + string? headerBody?; + # The footer title text of the carrier letter + @jsondata:Name {value: "footer_title"} + string? footerTitle?; +}; + +# Represents the Queries record for the operation: GetPayouts +public type GetPayoutsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPayoutsQueriesExpandItemsString[] expand?; + # Only return payouts that were created during the given date interval + Created24 created?; + # The ID of an external account - only return payouts sent to this external account + string destination?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return payouts that are expected to arrive during the given date interval + @http:Query {name: "arrival_date"} + ArrivalDate arrivalDate?; + # Only return payouts that have the given status: `pending`, `paid`, `failed`, or `canceled` + @constraint:String {maxLength: 5000} + string status?; +}; + +@constraint:String {maxLength: 5000} +public type GetBillingPortalConfigurationsQueriesExpandItemsString string; + +# +public type PaymentIntentPaymentMethodOptionsMandateOptionsAcssDebit record { + # Payment schedule for the mandate + @jsondata:Name {value: "payment_schedule"} + "combined"|"interval"|"sporadic"? paymentSchedule?; + # A URL for custom mandate text + @jsondata:Name {value: "custom_mandate_url"} + string customMandateUrl?; + # Transaction type of the mandate + @jsondata:Name {value: "transaction_type"} + "business"|"personal"? transactionType?; + # Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined' + @jsondata:Name {value: "interval_description"} + string? intervalDescription?; +}; + +# You can add one or multiple tax IDs to a [customer](https://stripe.com/docs/api/customers) or account. +# Customer and account tax IDs get displayed on related invoices and credit notes. +# +# Related guides: [Customer tax identification numbers](https://stripe.com/docs/billing/taxes/tax-ids), [Account tax IDs](https://stripe.com/docs/invoicing/connect#account-tax-ids) +public type TaxId record { + # The account or customer the tax ID belongs to + TaxIDsOwner? owner?; + # Two-letter ISO code representing the country of the tax ID + string? country?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Type of the tax ID, one of `ad_nrt`, `ae_trn`, `ar_cuit`, `au_abn`, `au_arn`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `hk_br`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kr_brn`, `kz_bin`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sv_nit`, `th_vat`, `tr_tin`, `tw_vat`, `ua_vat`, `us_ein`, `uy_ruc`, `ve_rif`, `vn_tin`, or `za_vat`. Note that some legacy tax IDs have type `unknown` + "ad_nrt"|"ae_trn"|"ar_cuit"|"au_abn"|"au_arn"|"bg_uic"|"bh_vat"|"bo_tin"|"br_cnpj"|"br_cpf"|"ca_bn"|"ca_gst_hst"|"ca_pst_bc"|"ca_pst_mb"|"ca_pst_sk"|"ca_qst"|"ch_uid"|"ch_vat"|"cl_tin"|"cn_tin"|"co_nit"|"cr_tin"|"de_stn"|"do_rcn"|"ec_ruc"|"eg_tin"|"es_cif"|"eu_oss_vat"|"eu_vat"|"gb_vat"|"ge_vat"|"hk_br"|"hu_tin"|"id_npwp"|"il_vat"|"in_gst"|"is_vat"|"jp_cn"|"jp_rn"|"jp_trn"|"ke_pin"|"kr_brn"|"kz_bin"|"li_uid"|"mx_rfc"|"my_frp"|"my_itn"|"my_sst"|"ng_tin"|"no_vat"|"no_voec"|"nz_gst"|"om_vat"|"pe_ruc"|"ph_tin"|"ro_tin"|"rs_pib"|"ru_inn"|"ru_kpp"|"sa_vat"|"sg_gst"|"sg_uen"|"si_tin"|"sv_nit"|"th_vat"|"tr_tin"|"tw_vat"|"ua_vat"|"unknown"|"us_ein"|"uy_ruc"|"ve_rif"|"vn_tin"|"za_vat" 'type; + # Value of the tax ID + @constraint:String {maxLength: 5000} + string value; + # Tax ID verification information + TaxIdVerification? verification?; + # ID of the customer + string|Customer? customer?; + # String representing the object's type. Objects of the same type share the same value + "tax_id" 'object; +}; + +public type FileLinkslinkBody record {| + # Specifies which fields in the response should be expanded + FileLinkslinkBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # A future timestamp after which the link will no longer be usable, or `now` to expire the link immediately + @jsondata:Name {value: "expires_at"} + "now"|int|"" expiresAt?; +|}; + +# ABA Records contain U.S. bank account details per the ABA format +public type FundingInstructionsBankTransferAbaRecord record { + # The ABA account number + @jsondata:Name {value: "account_number"} + string accountNumber; + # The bank name + @jsondata:Name {value: "bank_name"} + string bankName; + # The ABA routing number + @jsondata:Name {value: "routing_number"} + string routingNumber; +}; + +@constraint:String {maxLength: 5000} +public type GetPaymentMethodDomainsQueriesExpandItemsString string; + +# +public type PaymentFlowsPaymentIntentList record { + PaymentIntent[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/payment_intents`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +public type LineItemsCreateParams record { + int quantity; + @jsondata:Name {value: "adjustable_quantity"} + AdjustableQuantityParams adjustableQuantity?; + @constraint:String {maxLength: 5000} + string price; +}; + +# +public type TreasuryInboundTransfersResourceInboundTransferResourceLinkedFlows record { + # If funds for this flow were returned after the flow went to the `succeeded` state, this field contains a reference to the ReceivedDebit return + @jsondata:Name {value: "received_debit"} + string? receivedDebit?; +}; + +public type IntentConfirmBody1 record {| + # Specifies which fields in the response should be expanded + IntentConfirmBody1ExpandItemsString[] expand?; + @jsondata:Name {value: "payment_method_data"} + PaymentMethodDataParams1 paymentMethodData?; + # The URL to redirect your customer back to after they authenticate on the payment method's app or site. + # If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. + # This parameter is only used for cards and other redirect-based payment methods + @jsondata:Name {value: "return_url"} + string returnUrl?; + # The client secret of the SetupIntent + @jsondata:Name {value: "client_secret"} + string clientSecret?; + @jsondata:Name {value: "payment_method_options"} + PaymentMethodOptionsParam16 paymentMethodOptions?; + @jsondata:Name {value: "mandate_data"} + record {record {int accepted_at?; record {} offline?; record {string ip_address; string user_agent;} online?; "offline"|"online" 'type;} customer_acceptance;}|""|record {record {record {string ip_address?; string user_agent?;} online; "online" 'type;} customer_acceptance;} mandateData?; + # ID of the ConfirmationToken used to confirm this SetupIntent. + # + # If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence + @jsondata:Name {value: "confirmation_token"} + string confirmationToken?; + # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions + @jsondata:Name {value: "use_stripe_sdk"} + boolean useStripeSdk?; + # ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent + @jsondata:Name {value: "payment_method"} + string paymentMethod?; +|}; + +# The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions +public type DeliveryEstimate1 record { + DeliveryEstimateBound maximum?; + DeliveryEstimateBound minimum?; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountsAccountCapabilitiesCapabilityQueriesExpandItemsString string; + +# Payment-method-specific configuration +public type ConfirmationTokensResourcePaymentMethodOptions record { + # This hash contains the card payment method options + ConfirmationTokensResourcePaymentMethodOptionsResourceCard? card?; +}; + +# Optional parameters that automatically create a [file link](https://stripe.com/docs/api#file_links) for the newly created file +public type FileLinkCreationParams record { + record {|string...;|}|"" metadata?; + @jsondata:Name {value: "expires_at"} + int expiresAt?; + boolean create; +}; + +# +public type PaymentMethodMobilepay record { +}; + +# +public type InvoiceSettingQuoteSetting record { + # Number of days within which a customer must pay invoices generated by this quote. This value will be `null` for quotes where `collection_method=charge_automatically` + @jsondata:Name {value: "days_until_due"} + int? daysUntilDue?; + ConnectAccountReference issuer; +}; + +# +public type PaymentMethodOptionsBancontact record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; + # Preferred language of the Bancontact authorization page that the customer is redirected to + @jsondata:Name {value: "preferred_language"} + "de"|"en"|"fr"|"nl" preferredLanguage; +}; + +public type AuthorizationDeclineBody record {| + # Specifies which fields in the response should be expanded + AuthorizationDeclineBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +public type SubscriptionsBody record {| + @jsondata:Name {value: "billing_cycle_anchor_config"} + BillingCycleAnchorConfigParam billingCycleAnchorConfig?; + # 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` + record {|string...;|}|"" metadata?; + # Only applies to subscriptions with `collection_method=charge_automatically`. + # + # Use `allow_incomplete` to create Subscriptions with `status=incomplete` if the first invoice can't be paid. Creating Subscriptions with this status allows you to manage scenarios where additional customer actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior. + # + # Use `default_incomplete` to create Subscriptions with `status=incomplete` when the first invoice requires payment, otherwise start as active. Subscriptions transition to `status=active` when successfully confirming the PaymentIntent on the first invoice. This allows simpler management of scenarios where additional customer actions are needed to pay a subscription’s invoice, such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. If the PaymentIntent is not confirmed within 23 hours Subscriptions transition to `status=incomplete_expired`, which is a terminal state. + # + # Use `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's first invoice can't be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further customer action is needed, this parameter doesn't create a Subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more. + # + # `pending_if_incomplete` is only used with updates and cannot be passed when creating a Subscription. + # + # Subscriptions with `collection_method=send_invoice` are automatically activated regardless of the first Invoice status + @jsondata:Name {value: "payment_behavior"} + "allow_incomplete"|"default_incomplete"|"error_if_incomplete"|"pending_if_incomplete" paymentBehavior?; + # Boolean indicating whether this subscription should cancel at the end of the current period + @jsondata:Name {value: "cancel_at_period_end"} + boolean cancelAtPeriodEnd?; + # Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice` + @jsondata:Name {value: "days_until_due"} + int daysUntilDue?; + # The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs + @constraint:String {maxLength: 500} + string description?; + # Integer representing the number of trial period days before the customer is charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_period_days"} + int trialPeriodDays?; + # A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions) + @jsondata:Name {value: "application_fee_percent"} + decimal|"" applicationFeePercent?; + @jsondata:Name {value: "transfer_data"} + TransferDataSpecs3 transferData?; + # The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer + record {string coupon?; string discount?; string promotion_code?;}[]|"" discounts?; + # A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items + @jsondata:Name {value: "add_invoice_items"} + AddInvoiceItemEntry[] addInvoiceItems?; + # Indicates if a customer is on or off-session while an invoice payment is attempted + @jsondata:Name {value: "off_session"} + boolean offSession?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor`. If no value is passed, the default is `create_prorations` + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + @jsondata:Name {value: "invoice_settings"} + InvoiceSettingsParam1 invoiceSettings?; + @jsondata:Name {value: "payment_settings"} + PaymentSettings paymentSettings?; + # The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription + @jsondata:Name {value: "default_tax_rates"} + DefaulttaxratesItemsString[]|"" defaultTaxRates?; + # The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @constraint:String {maxLength: 5000} + string coupon?; + # ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_source"} + string defaultSource?; + # The account on behalf of which to charge, for each of the subscription's invoices + @jsondata:Name {value: "on_behalf_of"} + string|"" onBehalfOf?; + # The ID of a promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead + @jsondata:Name {value: "promotion_code"} + string promotionCode?; + # ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source) + @jsondata:Name {value: "default_payment_method"} + string defaultPaymentMethod?; + # Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_end"} + "now"|int trialEnd?; + # Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval + @jsondata:Name {value: "pending_invoice_item_interval"} + record {"day"|"month"|"week"|"year" interval; int interval_count?;}|"" pendingInvoiceItemInterval?; + @jsondata:Name {value: "trial_settings"} + TrialSettingsConfig1 trialSettings?; + # A future timestamp in UTC format to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). The anchor is the reference point that aligns future billing cycle dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals + @jsondata:Name {value: "billing_cycle_anchor"} + int billingCycleAnchor?; + # Specifies which fields in the response should be expanded + SubscriptionsBodyExpandItemsString[] expand?; + # Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more + @jsondata:Name {value: "trial_from_plan"} + boolean trialFromPlan?; + @jsondata:Name {value: "automatic_tax"} + AutomaticTaxConfig4 automaticTax?; + # Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically` + @jsondata:Name {value: "collection_method"} + "charge_automatically"|"send_invoice" collectionMethod?; + # For new subscriptions, a past timestamp to backdate the subscription's start date to. If set, the first invoice will contain a proration for the timespan between the start date and the current time. Can be combined with trials and the billing cycle anchor + @jsondata:Name {value: "backdate_start_date"} + int backdateStartDate?; + # Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds + @jsondata:Name {value: "billing_thresholds"} + record {int amount_gte?; boolean reset_billing_cycle_anchor?;}|"" billingThresholds?; + # A list of up to 20 subscription items, each with an attached price + SubscriptionItemCreateParams[] items?; + # A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period + @jsondata:Name {value: "cancel_at"} + int cancelAt?; + # The identifier of the customer to subscribe + @constraint:String {maxLength: 5000} + string customer; +|}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryOutboundTransfersOutboundTransferQueriesExpandItemsString string; + +# Represents the Queries record for the operation: GetQuotesQuoteComputedUpfrontLineItems +public type GetQuotesQuoteComputedUpfrontLineItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetQuotesQuoteComputedUpfrontLineItemsQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type GetAccountQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type CustomerFundingInstructionsBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetRadarEarlyFraudWarningsEarlyFraudWarning +public type GetRadarEarlyFraudWarningsEarlyFraudWarningQueries record { + # Specifies which fields in the response should be expanded + GetRadarEarlyFraudWarningsEarlyFraudWarningQueriesExpandItemsString[] expand?; +}; + +# This is an object representing a Stripe account. You can retrieve it to see +# properties on the account like its current requirements or if the account is +# enabled to make live charges or receive payouts. +# +# For accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) +# is `application`, which includes Custom accounts, the properties below are always +# returned. +# +# For accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) +# is `stripe`, which includes Standard and Express accounts, some properties are only returned +# until you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions) +# to start Connect Onboarding. Learn about the [differences between accounts](/connect/accounts) +public type Account record { + @jsondata:Name {value: "tos_acceptance"} + AccountTosAcceptance tosAcceptance?; + # The account's country + @constraint:String {maxLength: 5000} + string country?; + # Options for customizing how the account functions within Stripe + AccountSettings? settings?; + AccountUnificationAccountController controller?; + # 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 + record {|string...;|} metadata?; + AccountRequirements requirements?; + AccountCapabilities capabilities?; + Person individual?; + # Time at which the account was connected. Measured in seconds since the Unix epoch + int created?; + # Whether Stripe can send payouts to this account + @jsondata:Name {value: "payouts_enabled"} + boolean payoutsEnabled?; + # The Stripe account type. Can be `standard`, `express`, `custom`, or `none` + "custom"|"express"|"none"|"standard" 'type?; + # Business information about the account + @jsondata:Name {value: "business_profile"} + AccountBusinessProfile? businessProfile?; + # Whether the account can create live charges + @jsondata:Name {value: "charges_enabled"} + boolean chargesEnabled?; + # Whether account details have been submitted. Accounts with Stripe Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to [an onboarding flow](/connect/onboarding) to finish submitting account details + @jsondata:Name {value: "details_submitted"} + boolean detailsSubmitted?; + @jsondata:Name {value: "future_requirements"} + AccountFutureRequirements futureRequirements?; + # The business type. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property is only returned for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts + @jsondata:Name {value: "business_type"} + "company"|"government_entity"|"individual"|"non_profit"? businessType?; + LegalEntityCompany company?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://stripe.com/docs/payouts) + @jsondata:Name {value: "default_currency"} + string defaultCurrency?; + # An email address associated with the account. It's not used for authentication and Stripe doesn't market to this field without explicit approval from the platform + string? email?; + @jsondata:Name {value: "external_accounts"} + ExternalAccountList1 externalAccounts?; + # String representing the object's type. Objects of the same type share the same value + "account" 'object; +}; + +@constraint:String {maxLength: 5000} +public type GetChargesChargeRefundsRefundQueriesExpandItemsString string; + +public type SourceTypeAcssDebit record { + string? country?; + string? last4?; + @jsondata:Name {value: "bank_address_city"} + string? bankAddressCity?; + @jsondata:Name {value: "bank_name"} + string? bankName?; + string? fingerprint?; + @jsondata:Name {value: "bank_address_postal_code"} + string? bankAddressPostalCode?; + string? category?; + @jsondata:Name {value: "routing_number"} + string? routingNumber?; + @jsondata:Name {value: "bank_address_line_1"} + string? bankAddressLine1?; + @jsondata:Name {value: "bank_address_line_2"} + string? bankAddressLine2?; +}; + +@constraint:String {maxLength: 5000} +public type GetInvoicesUpcomingLinesQueriesExpandItemsString string; + +public type ChargeRefundsBody record {| + # String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms + "duplicate"|"fraudulent"|"requested_by_customer" reason?; + int amount?; + # Specifies which fields in the response should be expanded + ChargeRefundsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions + @jsondata:Name {value: "instructions_email"} + string instructionsEmail?; + # Origin of the refund + "customer_balance" origin?; + # Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge + @jsondata:Name {value: "refund_application_fee"} + boolean refundApplicationFee?; + # Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge + @jsondata:Name {value: "reverse_transfer"} + boolean reverseTransfer?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # The identifier of the PaymentIntent to refund + @jsondata:Name {value: "payment_intent"} + string paymentIntent?; + # Customer whose customer balance to refund from + @constraint:String {maxLength: 5000} + string customer?; +|}; + +# Represents the Queries record for the operation: GetPrices +public type GetPricesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPricesQueriesExpandItemsString[] expand?; + # Only return prices for the given product + @constraint:String {maxLength: 5000} + string product?; + # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options + Created26 created?; + # Only return prices with these recurring fields + AllPricesRecurringParams recurring?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return prices that are active or inactive (e.g., pass `false` to list all inactive prices) + boolean active?; + # Only return prices for the given currency + string currency?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Only return the price with these lookup_keys, if any exist. You can specify up to 10 lookup_keys + @http:Query {name: "lookup_keys"} + GetPricesQueriesLookupkeysItemsString[] lookupKeys?; + # Only return prices of type `recurring` or `one_time` + "one_time"|"recurring" 'type?; +}; + +public type InvoiceSettingsParams record { + Param issuer?; +}; + +# Describes a snapshot of the owners of an account at a particular point in time +public type FinancialConnectionsAccountOwnership record { + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + BankConnectionsResourceOwnerList1 owners; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "financial_connections.account_ownership" 'object; +}; + +# A Promotion Code represents a customer-redeemable code for a [coupon](https://stripe.com/docs/api#coupons). It can be used to +# create multiple codes for a single coupon +public type PromotionCode record { + # 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 + record {|string...;|}? metadata?; + # The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer + @constraint:String {maxLength: 5000} + string code; + Coupon coupon; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Maximum number of times this promotion code can be redeemed + @jsondata:Name {value: "max_redemptions"} + int? maxRedemptions?; + # Number of times this promotion code has been used + @jsondata:Name {value: "times_redeemed"} + int timesRedeemed; + # Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid + boolean active; + PromotionCodesResourceRestrictions restrictions; + # Date at which the promotion code can no longer be redeemed + @jsondata:Name {value: "expires_at"} + int? expiresAt?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The customer that this promotion code can be used by + string|Customer|DeletedCustomer? customer?; + # String representing the object's type. Objects of the same type share the same value + "promotion_code" 'object; +}; + +# +public type IssuingAuthorizationThreeDSecure record { + # The outcome of the 3D Secure authentication request + "attempt_acknowledged"|"authenticated"|"failed"|"required" result; +}; + +# +public type InvoiceLinesList record { + # Details about each object + LineItem1[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type PersonalizationDesignActivateBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TaxIdsBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type QuoteAcceptBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTaxIdsQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetAccountsQueriesExpandItemsString string; + +# +public type ReceivedPaymentMethodDetailsFinancialAccount record { + # The FinancialAccount ID + @constraint:String {maxLength: 5000} + string id; + # The rails the ReceivedCredit was sent over. A FinancialAccount can only send funds over `stripe` + "stripe" network; +}; + +public type RelationshipSpecs1 record { + boolean owner?; + boolean executive?; + @jsondata:Name {value: "legal_guardian"} + boolean legalGuardian?; + boolean director?; + @constraint:String {maxLength: 5000} + string title?; + boolean representative?; + @jsondata:Name {value: "percent_ownership"} + decimal|"" percentOwnership?; +}; + +public type Created8RangeQuerySpecs82 int; + +public type IntentCaptureBody record {| + # For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long + @jsondata:Name {value: "statement_descriptor"} + string statementDescriptor?; + @jsondata:Name {value: "transfer_data"} + TransferDataUpdateParams1 transferData?; + # Specifies which fields in the response should be expanded + IntentCaptureBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # Defaults to `true`. When capturing a PaymentIntent, setting `final_capture` to `false` notifies Stripe to not release the remaining uncaptured funds to make sure that they're captured in future requests. You can only use this setting when [multicapture](https://stripe.com/docs/payments/multicapture) is available for PaymentIntents + @jsondata:Name {value: "final_capture"} + boolean finalCapture?; + # Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. The concatenated descriptor must be 1-22 characters long + @jsondata:Name {value: "statement_descriptor_suffix"} + string statementDescriptorSuffix?; + # The amount to capture from the PaymentIntent, which must be less than or equal to the original amount. Any additional amount is automatically refunded. Defaults to the full `amount_capturable` if it's not provided + @jsondata:Name {value: "amount_to_capture"} + int amountToCapture?; + # The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) + @jsondata:Name {value: "application_fee_amount"} + int applicationFeeAmount?; +|}; + +public type FlowDataSubscriptionCancelParam record { + @constraint:String {maxLength: 5000} + string subscription; + RetentionParam retention?; +}; + +@constraint:String {maxLength: 5000} +public type GetInvoicesSearchQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetInvoicesInvoiceLinesQueriesExpandItemsString string; + +# +public type GelatoVerificationSessionOptions record { + @jsondata:Name {value: "id_number"} + GelatoSessionIdNumberOptions idNumber?; + GelatoSessionPhoneOptions phone?; + GelatoSessionDocumentOptions document?; + GelatoSessionEmailOptions email?; +}; + +public type CustomerBalanceTransactionsBody record {| + # The integer amount in **cents (or local equivalent)** to apply to the customer's credit balance + int amount; + # Specifies which fields in the response should be expanded + CustomerBalanceTransactionsBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; + # An arbitrary string attached to the object. Often useful for displaying to users + @constraint:String {maxLength: 350} + string description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Specifies the [`invoice_credit_balance`](https://stripe.com/docs/api/customers/object#customer_object-invoice_credit_balance) that this transaction will apply to. If the customer's `currency` is not set, it will be updated to this value + string currency; +|}; + +# Balance information and default balance settings for this customer +public type CashBalanceParam record { + BalanceSettingsParam settings?; +}; + +public type InvoiceitemsBodyTaxratesItemsString string; + +@constraint:String {maxLength: 5000} +public type ChargesBodyExpandItemsString string; + +public type ReaderPresentPaymentMethodBody record {| + # Specifies which fields in the response should be expanded + ReaderPresentPaymentMethodBodyExpandItemsString[] expand?; + # Simulated on-reader tip amount + @jsondata:Name {value: "amount_tip"} + int amountTip?; + @jsondata:Name {value: "interac_present"} + InteracPresent interacPresent?; + # Simulated payment type + "card_present"|"interac_present" 'type?; + @jsondata:Name {value: "card_present"} + CardPresent cardPresent?; +|}; + +public type ReaderCancelActionBody record {| + # Specifies which fields in the response should be expanded + ReaderCancelActionBodyExpandItemsString[] expand?; +|}; + +# +public type PaymentPagesCheckoutSessionCustomFieldsDropdown record { + # The options available for the customer to select. Up to 200 options allowed + PaymentPagesCheckoutSessionCustomFieldsOption[] options; + # The value that will pre-fill on the payment page + @jsondata:Name {value: "default_value"} + string? defaultValue?; + # The option selected by the customer. This will be the `value` for the option + string? value?; +}; + +public type CouponsBody record {| + # Unix timestamp specifying the last time at which the coupon can be redeemed. After the redeem_by date, the coupon can no longer be applied to new customers + @jsondata:Name {value: "redeem_by"} + int redeemBy?; + # 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` + record {|string...;|}|"" metadata?; + # A positive integer specifying the number of times the coupon can be redeemed before it's no longer valid. For example, you might have a 50% off coupon that the first 20 readers of your blog can use + @jsondata:Name {value: "max_redemptions"} + int maxRedemptions?; + # Coupons defined in each available currency option (only supported if `amount_off` is passed). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies) + @jsondata:Name {value: "currency_options"} + record {|CurrencyOption1...;|} currencyOptions?; + # Specifies how long the discount will be in effect if used on a subscription. Defaults to `once` + "forever"|"once"|"repeating" duration?; + # Required only if `duration` is `repeating`, in which case it must be a positive integer that specifies the number of months the discount will be in effect + @jsondata:Name {value: "duration_in_months"} + int durationInMonths?; + # Specifies which fields in the response should be expanded + CouponsBodyExpandItemsString[] expand?; + @jsondata:Name {value: "applies_to"} + AppliesToParams appliesTo?; + # Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set + @constraint:String {maxLength: 40} + string name?; + # Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `amount_off` parameter (required if `amount_off` is passed) + string currency?; + # A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if `amount_off` is not passed) + @jsondata:Name {value: "percent_off"} + decimal percentOff?; + # Unique string of your choice that will be used to identify this coupon when applying it to a customer. If you don't want to specify a particular code, you can leave the ID blank and we'll generate a random code for you + @constraint:String {maxLength: 5000} + string id?; + # A positive integer representing the amount to subtract from an invoice total (required if `percent_off` is not passed) + @jsondata:Name {value: "amount_off"} + int amountOff?; +|}; + +# +public type PaymentMethodDomainResourcePaymentMethodDomainList record { + PaymentMethodDomain[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/payment_method_domains`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# All invoices will be billed using the specified settings +public type InvoiceSettingsParam1 record { + @jsondata:Name {value: "account_tax_ids"} + AccounttaxidsItemsString[]|"" accountTaxIds?; + Param3 issuer?; +}; + +# Represents the Queries record for the operation: GetTaxCodes +public type GetTaxCodesQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetTaxCodesQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +# +public type CheckoutAuBecsDebitPaymentMethodOptions record { + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none" setupFutureUsage?; +}; + +@constraint:String {maxLength: 5000} +public type TestHelpersConfirmationTokensBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type TransactionsCreateFromCalculationBodyExpandItemsString string; + +public type Discounts1Discounts1AnyOf12 ""; + +@constraint:String {maxLength: 5000} +public type PaymentIntentsintentBodyExpandItemsString string; + +# You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. +# +# Plans define the base price, currency, and billing cycle for recurring purchases of products. +# [Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme. +# +# For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year. +# +# Related guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription) and more about [products and prices](https://stripe.com/docs/products-prices/overview) +public type Plan record { + # The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months + @jsondata:Name {value: "interval_count"} + int intervalCount; + # The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit` + int? amount?; + # 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 + record {|string...;|}? metadata?; + # The product whose pricing this plan determines + string|Product|DeletedProduct? product?; + # Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme` + PlanTier[] tiers?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The meter tracking the usage of a metered price + string? meter?; + # The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit` + @jsondata:Name {value: "amount_decimal"} + string? amountDecimal?; + # Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with `tiers` + @jsondata:Name {value: "transform_usage"} + TransformUsage? transformUsage?; + # Whether the plan can be used for new purchases + boolean active; + # Specifies a usage aggregation strategy for plans of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for using the last usage record reported within a period, `last_ever` for using the last usage record ever (across period bounds) or `max` which uses the usage record with the maximum reported usage during a period. Defaults to `sum` + @jsondata:Name {value: "aggregate_usage"} + "last_during_period"|"last_ever"|"max"|"sum"? aggregateUsage?; + # Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes + @jsondata:Name {value: "billing_scheme"} + "per_unit"|"tiered" billingScheme; + # Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan) + @jsondata:Name {value: "trial_period_days"} + int? trialPeriodDays?; + # Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows + @jsondata:Name {value: "tiers_mode"} + "graduated"|"volume"? tiersMode?; + # Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed` + @jsondata:Name {value: "usage_type"} + "licensed"|"metered" usageType; + # A brief description of the plan, hidden from customers + string? nickname?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year` + "day"|"month"|"week"|"year" interval; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "plan" 'object; +}; + +# A portal configuration describes the functionality and behavior of a portal session +public type BillingPortalConfiguration record { + # The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session + @jsondata:Name {value: "default_return_url"} + string? defaultReturnUrl?; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Whether the configuration is active and can be used to create portal sessions + boolean active; + # Whether the configuration is the default. If `true`, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session + @jsondata:Name {value: "is_default"} + boolean isDefault; + @jsondata:Name {value: "business_profile"} + PortalBusinessProfile businessProfile; + PortalFeatures features; + # ID of the Connect Application that created the configuration + string|Application|DeletedApplication? application?; + @jsondata:Name {value: "login_page"} + PortalLoginPage loginPage; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # Time at which the object was last updated. Measured in seconds since the Unix epoch + int updated; + # String representing the object's type. Objects of the same type share the same value + "billing_portal.configuration" 'object; +}; + +# Represents the Queries record for the operation: GetPaymentLinks +public type GetPaymentLinksQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetPaymentLinksQueriesExpandItemsString[] expand?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # Only return payment links that are active or inactive (e.g., pass `false` to list all inactive payment links) + boolean active?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; +}; + +@constraint:String {maxLength: 5000} +public type BillingMetersBodyExpandItemsString string; + +# Source mandate notifications should be created when a notification related to +# a source mandate must be sent to the payer. They will trigger a webhook or +# deliver an email to the customer +public type SourceMandateNotification record { + # The reason of the mandate notification. Valid reasons are `mandate_confirmed` or `debit_initiated` + @constraint:String {maxLength: 5000} + string reason; + # 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 amount associated with the mandate notification. The amount is expressed in the currency of the underlying source. Required if the notification type is `debit_initiated` + int? amount?; + @jsondata:Name {value: "acss_debit"} + SourceMandateNotificationAcssDebitData acssDebit?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + @jsondata:Name {value: "bacs_debit"} + SourceMandateNotificationBacsDebitData bacsDebit?; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + @jsondata:Name {value: "sepa_debit"} + SourceMandateNotificationSepaDebitData sepaDebit?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + Source 'source; + # The type of source this mandate notification is attached to. Should be the source type identifier code for the payment method, such as `three_d_secure` + @constraint:String {maxLength: 5000} + string 'type; + # String representing the object's type. Objects of the same type share the same value + "source_mandate_notification" 'object; + # The status of the mandate notification. Valid statuses are `pending` or `submitted` + @constraint:String {maxLength: 5000} + string status; +}; + +# +public type IssuingAuthorizationNetworkData record { + # Unique identifier for the authorization assigned by the card network used to match subsequent messages, disputes, and transactions + @jsondata:Name {value: "transaction_id"} + string? transactionId?; + # The System Trace Audit Number (STAN) is a 6-digit identifier assigned by the acquirer. Prefer `network_data.transaction_id` if present, unless you have special requirements + @jsondata:Name {value: "system_trace_audit_number"} + string? systemTraceAuditNumber?; + # Identifier assigned to the acquirer by the card network. Sometimes this value is not provided by the network; in this case, the value will be `null` + @jsondata:Name {value: "acquiring_institution_id"} + string? acquiringInstitutionId?; +}; + +# +public type ReserveTransaction record { + int amount; + # An arbitrary string attached to the object. Often useful for displaying to users + string? description?; + # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # String representing the object's type. Objects of the same type share the same value + "reserve_transaction" 'object; +}; + +# +public type OutboundTransfersPaymentMethodDetails record { + @jsondata:Name {value: "billing_details"} + TreasurySharedResourceBillingDetails billingDetails; + @jsondata:Name {value: "us_bank_account"} + OutboundTransfersPaymentMethodDetailsUsBankAccount usBankAccount?; + # The type of the payment method used in the OutboundTransfer + "us_bank_account" 'type; +}; + +public type SubscriptionUpdateUpdatingParam record { + @jsondata:Name {value: "default_allowed_updates"} + ("price"|"promotion_code"|"quantity")[]|"" defaultAllowedUpdates?; + @jsondata:Name {value: "proration_behavior"} + "always_invoice"|"create_prorations"|"none" prorationBehavior?; + boolean enabled?; + record {ProductsItemsObjectPricesItemsString[] prices; string product;}[]|"" products?; +}; + +@constraint:String {maxLength: 5000} +public type TestHelpersTestClocksBodyExpandItemsString string; + +# Details about the customer, including address and tax IDs +public type CustomerDetails record { + @jsondata:Name {value: "taxability_override"} + "customer_exempt"|"none"|"reverse_charge" taxabilityOverride?; + PostalAddress address?; + @jsondata:Name {value: "tax_ids"} + DataParams[] taxIds?; + @jsondata:Name {value: "address_source"} + "billing"|"shipping" addressSource?; + @jsondata:Name {value: "ip_address"} + string ipAddress?; +}; + +@constraint:String {maxLength: 5000} +public type GetInvoicesQueriesExpandItemsString string; + +# +public type PaymentMethodOptionsRevolutPay record { + # Controls when the funds will be captured from the customer's account + @jsondata:Name {value: "capture_method"} + "manual" captureMethod?; + # Indicates that you intend to make future payments with this PaymentIntent's payment method. + # + # Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes. + # + # When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication) + @jsondata:Name {value: "setup_future_usage"} + "none"|"off_session" setupFutureUsage?; +}; + +public type AuthorizationControlsParamV2BlockedmerchantcountriesItemsString string; + +public type LinkedFlowsParam record { + @jsondata:Name {value: "source_flow_type"} + "credit_reversal"|"other"|"outbound_payment"|"payout" sourceFlowType; +}; + +@constraint:String {maxLength: 5000} +public type GetTreasuryOutboundPaymentsIdQueriesExpandItemsString string; + +# +public type CancellationDetails record { + # The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user + "customer_service"|"low_quality"|"missing_features"|"other"|"switched_service"|"too_complex"|"too_expensive"|"unused"? feedback?; + # Why this subscription was canceled + "cancellation_requested"|"payment_disputed"|"payment_failed"? reason?; + # Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user + string? comment?; +}; + +# +public type BankConnectionsResourceAccountholder record { + # Type of account holder that this account belongs to + "account"|"customer" 'type; + # The ID of the Stripe account this account belongs to. Should only be present if `account_holder.type` is `account` + string|Account account?; + # ID of the Stripe customer this account belongs to. Present if and only if `account_holder.type` is `customer` + string|Customer customer?; +}; + +# +public type TerminalLocationLocationList record { + TerminalLocation[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000, pattern: re `^/v1/terminal/locations`} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodOptionsInteracPresent record { +}; + +# Configuration for collecting the customer's shipping address +public type ShippingAddressCollectionParams1 record { + @jsondata:Name {value: "allowed_countries"} + ("AC"|"AD"|"AE"|"AF"|"AG"|"AI"|"AL"|"AM"|"AO"|"AQ"|"AR"|"AT"|"AU"|"AW"|"AX"|"AZ"|"BA"|"BB"|"BD"|"BE"|"BF"|"BG"|"BH"|"BI"|"BJ"|"BL"|"BM"|"BN"|"BO"|"BQ"|"BR"|"BS"|"BT"|"BV"|"BW"|"BY"|"BZ"|"CA"|"CD"|"CF"|"CG"|"CH"|"CI"|"CK"|"CL"|"CM"|"CN"|"CO"|"CR"|"CV"|"CW"|"CY"|"CZ"|"DE"|"DJ"|"DK"|"DM"|"DO"|"DZ"|"EC"|"EE"|"EG"|"EH"|"ER"|"ES"|"ET"|"FI"|"FJ"|"FK"|"FO"|"FR"|"GA"|"GB"|"GD"|"GE"|"GF"|"GG"|"GH"|"GI"|"GL"|"GM"|"GN"|"GP"|"GQ"|"GR"|"GS"|"GT"|"GU"|"GW"|"GY"|"HK"|"HN"|"HR"|"HT"|"HU"|"ID"|"IE"|"IL"|"IM"|"IN"|"IO"|"IQ"|"IS"|"IT"|"JE"|"JM"|"JO"|"JP"|"KE"|"KG"|"KH"|"KI"|"KM"|"KN"|"KR"|"KW"|"KY"|"KZ"|"LA"|"LB"|"LC"|"LI"|"LK"|"LR"|"LS"|"LT"|"LU"|"LV"|"LY"|"MA"|"MC"|"MD"|"ME"|"MF"|"MG"|"MK"|"ML"|"MM"|"MN"|"MO"|"MQ"|"MR"|"MS"|"MT"|"MU"|"MV"|"MW"|"MX"|"MY"|"MZ"|"NA"|"NC"|"NE"|"NG"|"NI"|"NL"|"NO"|"NP"|"NR"|"NU"|"NZ"|"OM"|"PA"|"PE"|"PF"|"PG"|"PH"|"PK"|"PL"|"PM"|"PN"|"PR"|"PS"|"PT"|"PY"|"QA"|"RE"|"RO"|"RS"|"RU"|"RW"|"SA"|"SB"|"SC"|"SE"|"SG"|"SH"|"SI"|"SJ"|"SK"|"SL"|"SM"|"SN"|"SO"|"SR"|"SS"|"ST"|"SV"|"SX"|"SZ"|"TA"|"TC"|"TD"|"TF"|"TG"|"TH"|"TJ"|"TK"|"TL"|"TM"|"TN"|"TO"|"TR"|"TT"|"TV"|"TW"|"TZ"|"UA"|"UG"|"US"|"UY"|"UZ"|"VA"|"VC"|"VE"|"VG"|"VN"|"VU"|"WF"|"WS"|"XK"|"YE"|"YT"|"ZA"|"ZM"|"ZW"|"ZZ")[] allowedCountries; +}; + +public type TransactionsCreateUnlinkedRefundBody record {| + # The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) + int amount; + # Specifies which fields in the response should be expanded + TransactionsCreateUnlinkedRefundBodyExpandItemsString[] expand?; + @jsondata:Name {value: "purchase_details"} + PurchaseDetailsSpecs purchaseDetails?; + @jsondata:Name {value: "merchant_data"} + MerchantDataSpecs merchantData?; + # The currency of the unlinked refund. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) + string currency?; + # Card associated with this unlinked refund transaction + @constraint:String {maxLength: 5000} + string card; +|}; + +# The Report Run object represents an instance of a report type generated with +# specific run parameters. Once the object is created, Stripe begins processing the report. +# When the report has finished running, it will give you a reference to a file +# where you can retrieve your results. For an overview, see +# [API Access to Reports](https://stripe.com/docs/reporting/statements/api). +# +# Note that certain report types can only be run based on your live-mode data (not test-mode +# data), and will error when queried without a [live-mode API key](https://stripe.com/docs/keys#test-live-modes) +public type ReportingReportRun record { + # The file object representing the result of the report run (populated when + # `status=succeeded`) + File? result?; + # `true` if the report is run on live mode data and `false` if it is run on test mode data + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The ID of the [report type](https://stripe.com/docs/reports/report-types) to run, such as `"balance.summary.1"` + @jsondata:Name {value: "report_type"} + string reportType; + # If something should go wrong during the run, a message about the failure (populated when + # `status=failed`) + string? 'error?; + FinancialReportingFinanceReportRunRunParameters parameters; + # Timestamp at which this run successfully finished (populated when + # `status=succeeded`). Measured in seconds since the Unix epoch + @jsondata:Name {value: "succeeded_at"} + int? succeededAt?; + # String representing the object's type. Objects of the same type share the same value + "reporting.report_run" 'object; + # Status of this report run. This will be `pending` when the run is initially created. + # When the run finishes, this will be set to `succeeded` and the `result` field will be populated. + # Rarely, we may encounter an error, at which point this will be set to `failed` and the `error` field will be populated + @constraint:String {maxLength: 5000} + string status; +}; + +# Stripe Treasury provides users with a container for money called a FinancialAccount that is separate from their Payments balance. +# FinancialAccounts serve as the source and destination of Treasury’s money movement APIs +public type TreasuryFinancialAccount record { + # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + @constraint:String {maxLength: 5000} + string country; + # 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 + record {|string...;|}? metadata?; + # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode + boolean livemode; + # Time at which the object was created. Measured in seconds since the Unix epoch + int created; + # The array of paths to restricted Features in the Features hash + @jsondata:Name {value: "restricted_features"} + ("card_issuing"|"deposit_insurance"|"financial_addresses.aba"|"inbound_transfers.ach"|"intra_stripe_flows"|"outbound_payments.ach"|"outbound_payments.us_domestic_wire"|"outbound_transfers.ach"|"outbound_transfers.us_domestic_wire"|"remote_deposit_capture")[] restrictedFeatures?; + # The set of functionalities that the platform can restrict on the FinancialAccount + @jsondata:Name {value: "platform_restrictions"} + TreasuryFinancialAccountsResourcePlatformRestrictions? platformRestrictions?; + # The array of paths to active Features in the Features hash + @jsondata:Name {value: "active_features"} + ("card_issuing"|"deposit_insurance"|"financial_addresses.aba"|"inbound_transfers.ach"|"intra_stripe_flows"|"outbound_payments.ach"|"outbound_payments.us_domestic_wire"|"outbound_transfers.ach"|"outbound_transfers.us_domestic_wire"|"remote_deposit_capture")[] activeFeatures?; + # The currencies the FinancialAccount can hold a balance in. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase + @jsondata:Name {value: "supported_currencies"} + string[] supportedCurrencies; + TreasuryFinancialAccountFeatures features?; + TreasuryFinancialAccountsResourceBalance balance; + # The array of paths to pending Features in the Features hash + @jsondata:Name {value: "pending_features"} + ("card_issuing"|"deposit_insurance"|"financial_addresses.aba"|"inbound_transfers.ach"|"intra_stripe_flows"|"outbound_payments.ach"|"outbound_payments.us_domestic_wire"|"outbound_transfers.ach"|"outbound_transfers.us_domestic_wire"|"remote_deposit_capture")[] pendingFeatures?; + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The set of credentials that resolve to a FinancialAccount + @jsondata:Name {value: "financial_addresses"} + TreasuryFinancialAccountsResourceFinancialAddress[] financialAddresses; + @jsondata:Name {value: "status_details"} + TreasuryFinancialAccountsResourceStatusDetails statusDetails; + # String representing the object's type. Objects of the same type share the same value + "treasury.financial_account" 'object; + # The enum specifying what state the account is in + "closed"|"open" status; +}; + +# +public type BankConnectionsResourceTransactionRefresh record { + # Unique identifier for the object + @constraint:String {maxLength: 5000} + string id; + # The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch + @jsondata:Name {value: "last_attempted_at"} + int lastAttemptedAt; + # Time at which the next transaction refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch + @jsondata:Name {value: "next_refresh_available_at"} + int? nextRefreshAvailableAt?; + # The status of the last refresh attempt + "failed"|"pending"|"succeeded" status; +}; + +public type CustomFieldTextParam record { + @jsondata:Name {value: "maximum_length"} + int maximumLength?; + @jsondata:Name {value: "default_value"} + string defaultValue?; + @jsondata:Name {value: "minimum_length"} + int minimumLength?; +}; + +public type AuthorizationApproveBody record {| + # If the authorization's `pending_request.is_amount_controllable` property is `true`, you may provide this value to control how much to hold for the authorization. Must be positive (use [`decline`](https://stripe.com/docs/api/issuing/authorizations/decline) to decline an authorization request) + int amount?; + # Specifies which fields in the response should be expanded + AuthorizationApproveBodyExpandItemsString[] expand?; + # 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` + record {|string...;|}|"" metadata?; +|}; + +@constraint:String {maxLength: 5000} +public type GetSubscriptionItemsSubscriptionItemUsageRecordSummariesQueriesExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetQuotesQuotePdfQueriesExpandItemsString string; + +# +public type FeeRefundList record { + # Details about each object + FeeRefund[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +@constraint:String {maxLength: 5000} +public type OutboundPaymentsidBodyExpandItemsString string; + +# Represents the Queries record for the operation: GetCustomersCustomerDiscount +public type GetCustomersCustomerDiscountQueries record { + # Specifies which fields in the response should be expanded + GetCustomersCustomerDiscountQueriesExpandItemsString[] expand?; +}; + +# Result from a email check +public type GelatoEmailReport record { + # Details on the verification error. Present when status is `unverified` + GelatoEmailReportError? 'error?; + # Email to be verified + string? email?; + # Status of this `email` check + "unverified"|"verified" status; +}; + +# +public type CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransfer record { + @jsondata:Name {value: "eu_bank_transfer"} + CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceEuBankTransfer euBankTransfer?; + # The user-supplied reference field on the bank transfer + string? reference?; + @jsondata:Name {value: "gb_bank_transfer"} + CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceGbBankTransfer gbBankTransfer?; + @jsondata:Name {value: "jp_bank_transfer"} + CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceJpBankTransfer jpBankTransfer?; + @jsondata:Name {value: "us_bank_transfer"} + CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceUsBankTransfer usBankTransfer?; + # The funding method type used to fund the customer balance. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer` + "eu_bank_transfer"|"gb_bank_transfer"|"jp_bank_transfer"|"mx_bank_transfer"|"us_bank_transfer" 'type; +}; + +# When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data` +public type SubscriptionDataParams1 record { + @jsondata:Name {value: "invoice_settings"} + SubscriptionDataInvoiceSettingsParams invoiceSettings?; + record {|string...;|} metadata?; + @constraint:String {maxLength: 500} + string description?; + @jsondata:Name {value: "trial_period_days"} + int trialPeriodDays?; + @jsondata:Name {value: "trial_settings"} + TrialSettingsConfig trialSettings?; +}; + +# +public type SetupAttemptPaymentMethodDetailsCardWallet record { + @jsondata:Name {value: "apple_pay"} + PaymentMethodDetailsCardWalletApplePay applePay?; + @jsondata:Name {value: "google_pay"} + PaymentMethodDetailsCardWalletGooglePay googlePay?; + # The type of the card wallet, one of `apple_pay`, `google_pay`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type + "apple_pay"|"google_pay"|"link" 'type; +}; + +# +public type InvoiceSettingCustomerSetting record { + # Default footer to be displayed on invoices for this customer + string? footer?; + # Default custom fields to be displayed on invoices for this customer + @jsondata:Name {value: "custom_fields"} + InvoiceSettingCustomField[]? customFields?; + # ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices + @jsondata:Name {value: "default_payment_method"} + string|PaymentMethod? defaultPaymentMethod?; + # Default options for invoice PDF rendering for this customer + @jsondata:Name {value: "rendering_options"} + InvoiceSettingCustomerRenderingOptions? renderingOptions?; +}; + +public type CustomFieldNumericParam record { + @jsondata:Name {value: "maximum_length"} + int maximumLength?; + @jsondata:Name {value: "default_value"} + string defaultValue?; + @jsondata:Name {value: "minimum_length"} + int minimumLength?; +}; + +public type PaymentMethodUpdateParam record { + boolean enabled; +}; + +# Represents the Queries record for the operation: GetRadarValueListItems +public type GetRadarValueListItemsQueries record { + # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list + @http:Query {name: "ending_before"} + string endingBefore?; + # Specifies which fields in the response should be expanded + GetRadarValueListItemsQueriesExpandItemsString[] expand?; + # Only return items that were created during the given date interval + Created30 created?; + # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10 + int 'limit?; + # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list + @http:Query {name: "starting_after"} + string startingAfter?; + # Identifier for the parent value list this item belongs to + @http:Query {name: "value_list"} + string valueList; + # Return items belonging to the parent list whose value matches the specified value (using an "is like" match) + @constraint:String {maxLength: 800} + string value?; +}; + +# List of items contained within this value list +public type RadarListListItemList1 record { + # Details about each object + RadarValueListItem[] data; + # True if this list has another page of items after this one that can be fetched + @jsondata:Name {value: "has_more"} + boolean hasMore; + # The URL where this list can be accessed + @constraint:String {maxLength: 5000} + string url; + # String representing the object's type. Objects of the same type share the same value. Always has the value `list` + "list" 'object; +}; + +# +public type PaymentMethodMultibanco record { +}; + +# When you enable this parameter, this SetupIntent accepts payment methods that you enable in the Dashboard and that are compatible with its other parameters +public type AutomaticPaymentMethodsParam1 record { + @jsondata:Name {value: "allow_redirects"} + "always"|"never" allowRedirects?; + boolean enabled; +}; + +@constraint:String {maxLength: 5000} +public type SubscriptionssubscriptionExposedIdBodyExpandItemsString string; + +@constraint:String {maxLength: 5000} +public type GetTaxSettingsQueriesExpandItemsString string; + +# Documents that may be submitted to satisfy various informational requests +public type PersonDocumentsSpecs record { + DocumentsParam2 passport?; + DocumentsParam3 visa?; + @jsondata:Name {value: "company_authorization"} + DocumentsParam1 companyAuthorization?; +}; + +# +public type IssuingAuthorizationAmountDetails record { + # The amount of cash requested by the cardholder + @jsondata:Name {value: "cashback_amount"} + int? cashbackAmount?; + # The fee charged by the ATM for the cash withdrawal + @jsondata:Name {value: "atm_fee"} + int? atmFee?; +}; + +# +public type AccountUnificationAccountController record { + @jsondata:Name {value: "stripe_dashboard"} + AccountUnificationAccountControllerStripeDashboard stripeDashboard?; + AccountUnificationAccountControllerFees fees?; + # `true` if the Connect application retrieving the resource controls the account and can therefore exercise [platform controls](https://stripe.com/docs/connect/platform-controls-for-standard-accounts). Otherwise, this field is null + @jsondata:Name {value: "is_controller"} + boolean isController?; + AccountUnificationAccountControllerLosses losses?; + # The controller type. Can be `application`, if a Connect application controls the account, or `account`, if the account controls itself + "account"|"application" 'type; + # A value indicating responsibility for collecting requirements on this account. Only returned when the Connect application retrieving the resource controls the account + @jsondata:Name {value: "requirement_collection"} + "application"|"stripe" requirementCollection?; +}; + +# This hash contains whether the Payment Element is enabled and the features it supports +public type CustomerSessionResourceComponentsResourcePaymentElement record { + # This hash defines whether the Payment Element supports certain features + CustomerSessionResourceComponentsResourcePaymentElementResourceFeatures? features?; + # Whether the Payment Element is enabled + boolean enabled; +}; + +# Represents the Queries record for the operation: GetForwardingRequestsId +public type GetForwardingRequestsIdQueries record { + # Specifies which fields in the response should be expanded + GetForwardingRequestsIdQueriesExpandItemsString[] expand?; +}; diff --git a/ballerina/utils.bal b/ballerina/utils.bal index 6e32468..b2ead61 100644 --- a/ballerina/utils.bal +++ b/ballerina/utils.bal @@ -17,6 +17,7 @@ // specific language governing permissions and limitations // under the License. +import ballerina/http; import ballerina/mime; import ballerina/url; @@ -215,12 +216,13 @@ isolated function getEncodedUri(anydata value) returns string { # + encodingMap - Details on serialization mechanism # + return - Returns generated Path or error at failure of client initialization isolated function getPathForQueryParam(map queryParam, map encodingMap = {}) returns string|error { + map queriesMap = http:getQueryMap(queryParam); string[] param = []; - if queryParam.length() > 0 { + if queriesMap.length() > 0 { param.push("?"); - foreach var [key, value] in queryParam.entries() { + foreach var [key, value] in queriesMap.entries() { if value is () { - _ = queryParam.remove(key); + _ = queriesMap.remove(key); continue; } Encoding encodingData = encodingMap.hasKey(key) ? encodingMap.get(key) : defaultEncoding; @@ -245,36 +247,86 @@ isolated function getPathForQueryParam(map queryParam, map en return restOfPath; } -isolated function createBodyParts(record {|anydata...;|} anyRecord, map encodingMap = {}) returns mime:Entity[]|error { +isolated function createBodyParts(record {|anydata...;|} anyRecord, map encodingMap = {}) +returns mime:Entity[]|error { mime:Entity[] entities = []; foreach [string, anydata] [key, value] in anyRecord.entries() { Encoding encodingData = encodingMap.hasKey(key) ? encodingMap.get(key) : {}; - mime:Entity entity = new mime:Entity(); + string contentDisposition = string `form-data; name=${key};`; if value is record {byte[] fileContent; string fileName;} { - entity.setContentDisposition(mime:getContentDispositionObject(string `form-data; name=${key}; filename=${value.fileName}`)); - entity.setByteArray(value.fileContent); + string fileContentDisposition = string `${contentDisposition} filename=${value.fileName}`; + mime:Entity entity = check constructEntity(fileContentDisposition, encodingData, + value.fileContent); + entities.push(entity); } else if value is byte[] { - entity.setContentDisposition(mime:getContentDispositionObject(string `form-data; name=${key};`)); - entity.setByteArray(value); - } else if value is SimpleBasicType|SimpleBasicType[] { - entity.setContentDisposition(mime:getContentDispositionObject(string `form-data; name=${key};`)); - entity.setText(value.toString()); - } else if value is record {}|record {}[] { - entity.setContentDisposition(mime:getContentDispositionObject(string `form-data; name=${key};`)); - entity.setJson(value.toJson()); - } - if encodingData?.contentType is string { - check entity.setContentType(encodingData?.contentType.toString()); - } - map? headers = encodingData?.headers; - if headers is map { - foreach var [headerName, headerValue] in headers.entries() { - if headerValue is SimpleBasicType { - entity.setHeader(headerName, headerValue.toString()); + mime:Entity entity = check constructEntity(contentDisposition, encodingData, value); + entities.push(entity); + } else if value is SimpleBasicType { + mime:Entity entity = check constructEntity(contentDisposition, encodingData, + value.toString()); + entities.push(entity); + } else if value is SimpleBasicType[] { + if encodingData.explode { + foreach SimpleBasicType member in value { + mime:Entity entity = check constructEntity(contentDisposition, encodingData, + member.toString()); + entities.push(entity); + } + } else { + string[] valueStrArray = from SimpleBasicType val in value + select val.toString(); + mime:Entity entity = check constructEntity(contentDisposition, encodingData, + string:'join(",", ...valueStrArray)); + entities.push(entity); + } + } else if value is record {} { + mime:Entity entity = check constructEntity(contentDisposition, encodingData, + value.toString()); + entities.push(entity); + } else if value is record {}[] { + if encodingData.explode { + foreach record {} member in value { + mime:Entity entity = check constructEntity(contentDisposition, encodingData, + member.toString()); + entities.push(entity); } + } else { + string[] valueStrArray = from record {} val in value + select val.toJsonString(); + mime:Entity entity = check constructEntity(contentDisposition, encodingData, + string:'join(",", ...valueStrArray)); + entities.push(entity); } } - entities.push(entity); } return entities; } + +isolated function constructEntity(string contentDisposition, Encoding encoding, + string|byte[]|record {} data) returns mime:Entity|error { + mime:Entity entity = new mime:Entity(); + entity.setContentDisposition(mime:getContentDispositionObject(contentDisposition)); + if data is byte[] { + entity.setByteArray(data); + } else if data is string { + entity.setText(data); + } else { + entity.setJson(data.toJson()); + } + check populateEncodingInfo(entity, encoding); + return entity; +} + +isolated function populateEncodingInfo(mime:Entity entity, Encoding encoding) returns error? { + if encoding?.contentType is string { + check entity.setContentType(encoding?.contentType.toString()); + } + map? headers = encoding?.headers; + if headers is map { + foreach var [headerName, headerValue] in headers.entries() { + if headerValue is SimpleBasicType { + entity.setHeader(headerName, headerValue.toString()); + } + } + } +} diff --git a/docs/spec/openapi.json b/docs/spec/openapi.json index 6074057..e855396 100644 --- a/docs/spec/openapi.json +++ b/docs/spec/openapi.json @@ -1,160150 +1,119100 @@ { - "paths": { - "/account": { - "get": { - "description": "

Retrieves the details of an account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccount", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - } - }, - "/account_links": { - "post": { - "description": "

Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "collection_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account": { - "description": "The identifier of the account to create an account link for.", - "maxLength": 5000, - "type": "string" - }, - "collect": { - "description": "The collect parameter is deprecated. Use `collection_options` instead.", - "enum": [ - "currently_due", - "eventually_due" - ], - "type": "string" - }, - "collection_options": { - "description": "Specifies the requirements that Stripe collects from connected accounts in the Connect Onboarding flow.", - "properties": { - "fields": { - "enum": [ - "currently_due", - "eventually_due" - ], - "type": "string" - }, - "future_requirements": { - "enum": [ - "include", - "omit" - ], - "type": "string" - } - }, - "required": [ - "fields" - ], - "title": "collection_options_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "refresh_url": { - "description": "The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link's URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user.", - "type": "string" - }, - "return_url": { - "description": "The URL that the user will be redirected to upon leaving or completing the linked flow.", - "type": "string" - }, - "type": { - "description": "The type of account link the user is requesting. Possible values are `account_onboarding` or `account_update`.", - "enum": [ - "account_onboarding", - "account_update" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "account", - "type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account_link" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountLinks" - } - }, - "/account_sessions": { - "post": { - "description": "

Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "components": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account": { - "description": "The identifier of the account to create an Account Session for.", - "type": "string" - }, - "components": { - "description": "Each key of the dictionary represents an embedded component, and each embedded component maps to its configuration (e.g. whether it has been enabled or not).", - "properties": { - "account_management": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "external_account_collection": { - "type": "boolean" - } - }, - "title": "account_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "account_config_param", - "type": "object" - }, - "account_onboarding": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "external_account_collection": { - "type": "boolean" - } - }, - "title": "account_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "account_config_param", - "type": "object" - }, - "balances": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "edit_payout_schedule": { - "type": "boolean" - }, - "external_account_collection": { - "type": "boolean" - }, - "instant_payouts": { - "type": "boolean" - }, - "standard_payouts": { - "type": "boolean" - } - }, - "title": "payouts_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payouts_config_param", - "type": "object" - }, - "documents": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": {}, - "title": "base_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "base_config_param", - "type": "object" - }, - "notification_banner": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "external_account_collection": { - "type": "boolean" - } - }, - "title": "account_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "account_config_param", - "type": "object" - }, - "payment_details": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "capture_payments": { - "type": "boolean" - }, - "destination_on_behalf_of_charge_management": { - "type": "boolean" - }, - "dispute_management": { - "type": "boolean" - }, - "refund_management": { - "type": "boolean" - } - }, - "title": "payments_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payments_config_param", - "type": "object" - }, - "payments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "capture_payments": { - "type": "boolean" - }, - "destination_on_behalf_of_charge_management": { - "type": "boolean" - }, - "dispute_management": { - "type": "boolean" - }, - "refund_management": { - "type": "boolean" - } - }, - "title": "payments_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payments_config_param", - "type": "object" - }, - "payouts": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "edit_payout_schedule": { - "type": "boolean" - }, - "external_account_collection": { - "type": "boolean" - }, - "instant_payouts": { - "type": "boolean" - }, - "standard_payouts": { - "type": "boolean" - } - }, - "title": "payouts_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payouts_config_param", - "type": "object" - }, - "payouts_list": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": {}, - "title": "base_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "base_config_param", - "type": "object" - } - }, - "title": "account_session_create_components_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "account", - "components" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account_session" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountSessions" - } - }, - "/accounts": { - "get": { - "description": "

Returns a list of accounts connected to your platform via Connect<\/a>. If you’re not a platform, the list is empty.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "AccountList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/accounts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccounts", - "parameters": [ - { - "description": "Only return connected accounts that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

With Connect<\/a>, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform<\/a>.<\/p>\n\n

If you’ve already collected information for your connected accounts, you can prefill that information<\/a> when\ncreating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding.\nYou can prefill any information on the account.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "capabilities": { - "explode": true, - "style": "deepObject" - }, - "company": { - "explode": true, - "style": "deepObject" - }, - "controller": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "individual": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "settings": { - "explode": true, - "style": "deepObject" - }, - "tos_acceptance": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_token": { - "description": "An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account.", - "maxLength": 5000, - "type": "string" - }, - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "documents": { - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "external_account_payout_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "business_profile": { - "description": "Business information about the account.", - "properties": { - "annual_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "fiscal_year_end": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "fiscal_year_end" - ], - "title": "annual_revenue_specs", - "type": "object" - }, - "estimated_worker_count": { - "type": "integer" - }, - "mcc": { - "maxLength": 4, - "type": "string" - }, - "monthly_estimated_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "monthly_estimated_revenue_specs", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 40000, - "type": "string" - }, - "support_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "support_email": { - "type": "string" - }, - "support_phone": { - "maxLength": 5000, - "type": "string" - }, - "support_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "url": { - "type": "string" - } - }, - "title": "business_profile_specs", - "type": "object" - }, - "business_type": { - "description": "The business type. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "enum": [ - "company", - "government_entity", - "individual", - "non_profit" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "capabilities": { - "description": "Each key of the dictionary represents a capability, and each capability\nmaps to its settings (for example, whether it has been requested or not). Each\ncapability is inactive until you have provided its specific\nrequirements and Stripe has verified them. An account might have some\nof its requested capabilities be active and some be inactive.\n\nRequired when [account.controller.stripe_dashboard.type](\/api\/accounts\/create#create_account-controller-dashboard-type)\nis `none`, which includes Custom accounts.", - "properties": { - "acss_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "affirm_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "afterpay_clearpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "amazon_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "au_becs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bacs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bancontact_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "blik_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "boleto_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_issuing": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cartes_bancaires_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cashapp_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "eps_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "fpx_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "gb_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "giropay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "grabpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "ideal_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "india_international_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jcb_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jp_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "klarna_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "konbini_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "legacy_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "link_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mobilepay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "multibanco_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mx_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "oxxo_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "p24_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "paynow_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "promptpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "revolut_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sofort_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "swish_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_k": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_misc": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "transfers": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "treasury": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "twint_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_account_ach_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "zip_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - } - }, - "title": "capabilities_param", - "type": "object" - }, - "company": { - "description": "Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "directors_provided": { - "type": "boolean" - }, - "executives_provided": { - "type": "boolean" - }, - "export_license_id": { - "maxLength": 5000, - "type": "string" - }, - "export_purpose_code": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "name_kana": { - "maxLength": 100, - "type": "string" - }, - "name_kanji": { - "maxLength": 100, - "type": "string" - }, - "owners_provided": { - "type": "boolean" - }, - "ownership_declaration": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_ownership_declaration", - "type": "object" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "registration_number": { - "maxLength": 5000, - "type": "string" - }, - "structure": { - "enum": [ - "", - "free_zone_establishment", - "free_zone_llc", - "government_instrumentality", - "governmental_unit", - "incorporated_non_profit", - "incorporated_partnership", - "limited_liability_partnership", - "llc", - "multi_member_llc", - "private_company", - "private_corporation", - "private_partnership", - "public_company", - "public_corporation", - "public_partnership", - "registered_charity", - "single_member_llc", - "sole_establishment", - "sole_proprietorship", - "tax_exempt_government_instrumentality", - "unincorporated_association", - "unincorporated_non_profit", - "unincorporated_partnership" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "tax_id": { - "maxLength": 5000, - "type": "string" - }, - "tax_id_registrar": { - "maxLength": 5000, - "type": "string" - }, - "vat_id": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "verification_document_specs", - "type": "object" - } - }, - "title": "verification_specs", - "type": "object" - } - }, - "title": "company_specs", - "type": "object" - }, - "controller": { - "description": "A hash of configuration describing the account controller's attributes.", - "properties": { - "fees": { - "properties": { - "payer": { - "enum": [ - "account", - "application" - ], - "type": "string" - } - }, - "title": "controller_fees_specs", - "type": "object" - }, - "losses": { - "properties": { - "payments": { - "enum": [ - "application", - "stripe" - ], - "type": "string" - } - }, - "title": "controller_losses_specs", - "type": "object" - }, - "requirement_collection": { - "enum": [ - "application", - "stripe" - ], - "type": "string" - }, - "stripe_dashboard": { - "properties": { - "type": { - "enum": [ - "express", - "full", - "none" - ], - "type": "string" - } - }, - "title": "controller_dashboard_specs", - "type": "object" - } - }, - "title": "controller_specs", - "type": "object" - }, - "country": { - "description": "The country in which the account holder resides, or in which the business is legally established. This should be an ISO 3166-1 alpha-2 country code. For example, if you are in the United States and the business for which you're creating an account is legally represented in Canada, you would use `CA` as the country for the account being created. Available countries include [Stripe's global markets](https://stripe.com/global) as well as countries where [cross-border payouts](https://stripe.com/docs/connect/cross-border-payouts) are supported.", - "maxLength": 5000, - "type": "string" - }, - "default_currency": { - "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts).", - "type": "string" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_license": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_memorandum_of_association": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_ministerial_decree": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_registration_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_tax_id_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "proof_of_registration": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "documents_specs", - "type": "object" - }, - "email": { - "description": "The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "A card or bank account to attach to the account for receiving [payouts](/connect/bank-debit-card-payouts) (you won’t be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](/js), or a dictionary, as documented in the `external_account` parameter for [bank account](/api#account_create_bank_account) creation.

By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](/api#account_create_bank_account) or [card creation](/api#account_create_card) APIs. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "individual": { - "description": "Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "type": "string" - }, - "first_name": { - "maxLength": 100, - "type": "string" - }, - "first_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 300, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "gender": { - "type": "string" - }, - "id_number": { - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "maxLength": 100, - "type": "string" - }, - "last_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "type": "string" - }, - "political_exposure": { - "enum": [ - "existing", - "none" - ], - "type": "string" - }, - "registered_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "individual_relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "title": "individual_specs", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "settings": { - "description": "Options for customizing how the account functions within Stripe.", - "properties": { - "bacs_debit_payments": { - "properties": { - "display_name": { - "type": "string" - } - }, - "title": "bacs_debit_payments_specs", - "type": "object" - }, - "branding": { - "properties": { - "icon": { - "maxLength": 5000, - "type": "string" - }, - "logo": { - "maxLength": 5000, - "type": "string" - }, - "primary_color": { - "maxLength": 5000, - "type": "string" - }, - "secondary_color": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "branding_settings_specs", - "type": "object" - }, - "card_issuing": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "card_issuing_settings_specs", - "type": "object" - }, - "card_payments": { - "properties": { - "decline_on": { - "properties": { - "avs_failure": { - "type": "boolean" - }, - "cvc_failure": { - "type": "boolean" - } - }, - "title": "decline_charge_on_specs", - "type": "object" - }, - "statement_descriptor_prefix": { - "maxLength": 10, - "type": "string" - }, - "statement_descriptor_prefix_kana": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_prefix_kanji": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "card_payments_settings_specs", - "type": "object" - }, - "payments": { - "properties": { - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kana": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kanji": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payments_settings_specs", - "type": "object" - }, - "payouts": { - "properties": { - "debit_negative_balances": { - "type": "boolean" - }, - "schedule": { - "properties": { - "delay_days": { - "anyOf": [ - { - "enum": [ - "minimum" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "interval": { - "enum": [ - "daily", - "manual", - "monthly", - "weekly" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "monthly_anchor": { - "type": "integer" - }, - "weekly_anchor": { - "enum": [ - "friday", - "monday", - "saturday", - "sunday", - "thursday", - "tuesday", - "wednesday" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "transfer_schedule_specs", - "type": "object" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payout_settings_specs", - "type": "object" - }, - "treasury": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "treasury_settings_specs", - "type": "object" - } - }, - "title": "settings_specs", - "type": "object" - }, - "tos_acceptance": { - "description": "Details on the account's acceptance of the [Stripe Services Agreement](/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty.", - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "service_agreement": { - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "tos_acceptance_specs", - "type": "object" - }, - "type": { - "description": "The type of Stripe account to create. May be one of `custom`, `express` or `standard`.", - "enum": [ - "custom", - "express", - "standard" - ], - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccounts" + "openapi" : "3.0.0", + "info" : { + "title" : "Stripe API", + "description" : "The Stripe REST API. Please see https://stripe.com/docs/api for more details.", + "termsOfService" : "https://stripe.com/us/terms/", + "contact" : { + "name" : "Stripe Dev Platform Team", + "url" : "https://stripe.com", + "email" : "dev-platform@stripe.com" + }, + "version" : "2024-06-20", + "x-stripeSpecFilename" : "spec3" + }, + "servers" : [ { + "url" : "https://api.stripe.com/v1" + } ], + "security" : [ { + "basicAuth" : [ ] + }, { + "bearerAuth" : [ ] + } ], + "paths" : { + "/account" : { + "get" : { + "description" : "

Retrieves the details of an account.

", + "operationId" : "GetAccount", + "parameters" : [ { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Account" + } + } } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/account_links" : { + "post" : { + "description" : "

Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.

", + "operationId" : "PostAccountLinks", + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/AccountLinksBody" + }, + "encoding" : { + "collection_options" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + } + } + } + }, + "required" : true }, - "/accounts/{account}": { - "get": { - "description": "

Retrieves the details of an account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "post": { - "description": "

Updates a connected account<\/a> by setting the values of the parameters passed. Any parameters not provided are\nleft unchanged.<\/p>\n\n

For accounts where controller.requirement_collection<\/a>\nis application<\/code>, which includes Custom accounts, you can update any information on the account.<\/p>\n\n

For accounts where controller.requirement_collection<\/a>\nis stripe<\/code>, which includes Standard and Express accounts, you can update all information until you create\nan Account Link<\/a> or Account Session<\/a> to start Connect onboarding,\nafter which some properties can no longer be updated.<\/p>\n\n

To update your own account, use the Dashboard<\/a>. Refer to our\nConnect<\/a> documentation to learn more about updating accounts.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "capabilities": { - "explode": true, - "style": "deepObject" - }, - "company": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "individual": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "settings": { - "explode": true, - "style": "deepObject" - }, - "tos_acceptance": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_token": { - "description": "An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account.", - "maxLength": 5000, - "type": "string" - }, - "business_profile": { - "description": "Business information about the account.", - "properties": { - "annual_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "fiscal_year_end": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "fiscal_year_end" - ], - "title": "annual_revenue_specs", - "type": "object" - }, - "estimated_worker_count": { - "type": "integer" - }, - "mcc": { - "maxLength": 4, - "type": "string" - }, - "monthly_estimated_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "monthly_estimated_revenue_specs", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 40000, - "type": "string" - }, - "support_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "support_email": { - "type": "string" - }, - "support_phone": { - "maxLength": 5000, - "type": "string" - }, - "support_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "url": { - "type": "string" - } - }, - "title": "business_profile_specs", - "type": "object" - }, - "business_type": { - "description": "The business type. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "enum": [ - "company", - "government_entity", - "individual", - "non_profit" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "capabilities": { - "description": "Each key of the dictionary represents a capability, and each capability\nmaps to its settings (for example, whether it has been requested or not). Each\ncapability is inactive until you have provided its specific\nrequirements and Stripe has verified them. An account might have some\nof its requested capabilities be active and some be inactive.\n\nRequired when [account.controller.stripe_dashboard.type](\/api\/accounts\/create#create_account-controller-dashboard-type)\nis `none`, which includes Custom accounts.", - "properties": { - "acss_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "affirm_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "afterpay_clearpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "amazon_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "au_becs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bacs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bancontact_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "blik_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "boleto_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_issuing": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cartes_bancaires_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cashapp_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "eps_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "fpx_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "gb_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "giropay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "grabpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "ideal_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "india_international_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jcb_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jp_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "klarna_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "konbini_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "legacy_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "link_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mobilepay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "multibanco_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mx_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "oxxo_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "p24_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "paynow_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "promptpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "revolut_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sofort_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "swish_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_k": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_misc": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "transfers": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "treasury": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "twint_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_account_ach_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "zip_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - } - }, - "title": "capabilities_param", - "type": "object" - }, - "company": { - "description": "Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "directors_provided": { - "type": "boolean" - }, - "executives_provided": { - "type": "boolean" - }, - "export_license_id": { - "maxLength": 5000, - "type": "string" - }, - "export_purpose_code": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "name_kana": { - "maxLength": 100, - "type": "string" - }, - "name_kanji": { - "maxLength": 100, - "type": "string" - }, - "owners_provided": { - "type": "boolean" - }, - "ownership_declaration": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_ownership_declaration", - "type": "object" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "registration_number": { - "maxLength": 5000, - "type": "string" - }, - "structure": { - "enum": [ - "", - "free_zone_establishment", - "free_zone_llc", - "government_instrumentality", - "governmental_unit", - "incorporated_non_profit", - "incorporated_partnership", - "limited_liability_partnership", - "llc", - "multi_member_llc", - "private_company", - "private_corporation", - "private_partnership", - "public_company", - "public_corporation", - "public_partnership", - "registered_charity", - "single_member_llc", - "sole_establishment", - "sole_proprietorship", - "tax_exempt_government_instrumentality", - "unincorporated_association", - "unincorporated_non_profit", - "unincorporated_partnership" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "tax_id": { - "maxLength": 5000, - "type": "string" - }, - "tax_id_registrar": { - "maxLength": 5000, - "type": "string" - }, - "vat_id": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "verification_document_specs", - "type": "object" - } - }, - "title": "verification_specs", - "type": "object" - } - }, - "title": "company_specs", - "type": "object" - }, - "default_currency": { - "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts).", - "type": "string" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_license": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_memorandum_of_association": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_ministerial_decree": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_registration_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_tax_id_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "proof_of_registration": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "documents_specs", - "type": "object" - }, - "email": { - "description": "The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "A card or bank account to attach to the account for receiving [payouts](/connect/bank-debit-card-payouts) (you won’t be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](/js), or a dictionary, as documented in the `external_account` parameter for [bank account](/api#account_create_bank_account) creation.

By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](/api#account_create_bank_account) or [card creation](/api#account_create_card) APIs. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "individual": { - "description": "Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "type": "string" - }, - "first_name": { - "maxLength": 100, - "type": "string" - }, - "first_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 300, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "gender": { - "type": "string" - }, - "id_number": { - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "maxLength": 100, - "type": "string" - }, - "last_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "type": "string" - }, - "political_exposure": { - "enum": [ - "existing", - "none" - ], - "type": "string" - }, - "registered_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "individual_relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "title": "individual_specs", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "settings": { - "description": "Options for customizing how the account functions within Stripe.", - "properties": { - "bacs_debit_payments": { - "properties": { - "display_name": { - "type": "string" - } - }, - "title": "bacs_debit_payments_specs", - "type": "object" - }, - "branding": { - "properties": { - "icon": { - "maxLength": 5000, - "type": "string" - }, - "logo": { - "maxLength": 5000, - "type": "string" - }, - "primary_color": { - "maxLength": 5000, - "type": "string" - }, - "secondary_color": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "branding_settings_specs", - "type": "object" - }, - "card_issuing": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "card_issuing_settings_specs", - "type": "object" - }, - "card_payments": { - "properties": { - "decline_on": { - "properties": { - "avs_failure": { - "type": "boolean" - }, - "cvc_failure": { - "type": "boolean" - } - }, - "title": "decline_charge_on_specs", - "type": "object" - }, - "statement_descriptor_prefix": { - "maxLength": 10, - "type": "string" - }, - "statement_descriptor_prefix_kana": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_prefix_kanji": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "card_payments_settings_specs", - "type": "object" - }, - "invoices": { - "properties": { - "default_account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "invoices_settings_specs", - "type": "object" - }, - "payments": { - "properties": { - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kana": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kanji": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payments_settings_specs", - "type": "object" - }, - "payouts": { - "properties": { - "debit_negative_balances": { - "type": "boolean" - }, - "schedule": { - "properties": { - "delay_days": { - "anyOf": [ - { - "enum": [ - "minimum" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "interval": { - "enum": [ - "daily", - "manual", - "monthly", - "weekly" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "monthly_anchor": { - "type": "integer" - }, - "weekly_anchor": { - "enum": [ - "friday", - "monday", - "saturday", - "sunday", - "thursday", - "tuesday", - "wednesday" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "transfer_schedule_specs", - "type": "object" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payout_settings_specs", - "type": "object" - }, - "treasury": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "treasury_settings_specs", - "type": "object" - } - }, - "title": "settings_specs_update", - "type": "object" - }, - "tos_acceptance": { - "description": "Details on the account's acceptance of the [Stripe Services Agreement](/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty.", - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "service_agreement": { - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "tos_acceptance_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "delete": { - "operationId": "DeleteAccountsAccount", - "description": "

With Connect<\/a>, you can delete accounts you manage.<\/p>\n\n

Test-mode accounts can be deleted at any time.<\/p>\n\n

Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all balances<\/a> are zero.<\/p>\n\n

If you want to delete your own account, use the account information tab in your account settings<\/a> instead.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/bank_accounts": { - "post": { - "description": "

Create an external account for a given account.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "documents": { - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "external_account_payout_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "default_for_currency": { - "description": "When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/External_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountBankAccounts", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/bank_accounts/{id}": { - "get": { - "description": "

Retrieve a specified external account for a given account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/External_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.<\/p>\n\n

You can only update bank accounts when account.controller.requirement_collection<\/a> is application<\/code>, which includes Custom accounts<\/a>.<\/p>\n\n

You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "", - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "description": "The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.", - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "default_for_currency": { - "description": "When set to true, this becomes the default external account for its currency.", - "type": "boolean" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/External_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - }, - "delete": { - "operationId": "DeleteAccountsAccountBankAccountsId", - "description": "

Delete a specified external account for a given account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_external_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/capabilities": { - "get": { - "description": "

Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ListAccountCapability", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Capability" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountCapabilities", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - } - }, - "/accounts/{account}/capabilities/{capability}": { - "get": { - "description": "

Retrieves information about the specified Account Capability.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Capability" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountCapabilitiesCapability", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "capability", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "post": { - "description": "

Updates an existing Account Capability. Request or remove a capability by updating its requested parameter.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "requested": { - "description": "To request a new capability for an account, pass true. There can be a delay before the requested capability becomes active. If the capability has any activation requirements, the response includes them in the `requirements` arrays.\n\nIf a capability isn't permanent, you can remove it from the account by passing false. Some capabilities are permanent after they've been requested. Attempting to remove a permanent capability returns an error.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Capability" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountCapabilitiesCapability", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "capability", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/external_accounts": { - "get": { - "description": "

List external accounts for an account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ExternalAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "description": "The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/Bank_account" - }, - { - "$ref": "#/components/schemas/Card" - } - ], - "title": "Polymorphic", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountExternalAccounts", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filter external accounts according to a particular object type.", - "in": "query", - "name": "object", - "required": false, - "schema": { - "enum": [ - "bank_account", - "card" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Create an external account for a given account.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "documents": { - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "external_account_payout_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "default_for_currency": { - "description": "When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/External_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountExternalAccounts", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/external_accounts/{id}": { - "get": { - "description": "

Retrieve a specified external account for a given account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/External_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountExternalAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.<\/p>\n\n

You can only update bank accounts when account.controller.requirement_collection<\/a> is application<\/code>, which includes Custom accounts<\/a>.<\/p>\n\n

You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "", - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "description": "The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.", - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "default_for_currency": { - "description": "When set to true, this becomes the default external account for its currency.", - "type": "boolean" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/External_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountExternalAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - }, - "delete": { - "operationId": "DeleteAccountsAccountExternalAccountsId", - "description": "

Delete a specified external account for a given account.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_external_account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/login_links": { - "post": { - "description": "

Creates a single-use login link for a connected account to access the Express Dashboard.<\/p>\n\n

You can only create login links for accounts that use the Express Dashboard<\/a> and are connected to your platform<\/strong>.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Login_link" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountLoginLinks", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/people": { - "get": { - "description": "

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "PersonList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Person" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountPeople", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filters on the list of people returned based on the person's relationship to the account's company.", - "explode": true, - "in": "query", - "name": "relationship", - "required": false, - "schema": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "representative": { - "type": "boolean" - } - }, - "title": "all_people_relationship_specs", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Creates a new person.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountPeople", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/people/{person}": { - "get": { - "description": "

Retrieves an existing person.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountPeoplePerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates an existing person.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountPeoplePerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "delete": { - "operationId": "DeleteAccountsAccountPeoplePerson", - "description": "

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/persons": { - "get": { - "description": "

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "PersonList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Person" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountPersons", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filters on the list of people returned based on the person's relationship to the account's company.", - "explode": true, - "in": "query", - "name": "relationship", - "required": false, - "schema": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "representative": { - "type": "boolean" - } - }, - "title": "all_people_relationship_specs", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Creates a new person.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountPersons", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/persons/{person}": { - "get": { - "description": "

Retrieves an existing person.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAccountsAccountPersonsPerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates an existing person.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountPersonsPerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "delete": { - "operationId": "DeleteAccountsAccountPersonsPerson", - "description": "

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_person" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/accounts/{account}/reject": { - "post": { - "description": "

With Connect<\/a>, you can reject accounts that you have flagged as suspicious.<\/p>\n\n

Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "reason": { - "description": "The reason for rejecting the account. Can be `fraud`, `terms_of_service`, or `other`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "reason" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Account" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAccountsAccountReject", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/apple_pay/domains": { - "get": { - "description": "

List apple pay domains.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ApplePayDomainList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Apple_pay_domain" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/apple_pay/domains", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetApplePayDomains", - "parameters": [ - { - "in": "query", - "name": "domain_name", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Create an apple pay domain.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "domain_name": { - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "domain_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Apple_pay_domain" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostApplePayDomains" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AccountLink" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } } + } + } + } + }, + "/account_sessions" : { + "post" : { + "description" : "

Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.

", + "operationId" : "PostAccountSessions", + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/AccountSessionsBody" + }, + "encoding" : { + "components" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + } + } + } + }, + "required" : true }, - "/apple_pay/domains/{domain}": { - "get": { - "description": "

Retrieve an apple pay domain.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Apple_pay_domain" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetApplePayDomainsDomain", - "parameters": [ - { - "in": "path", - "name": "domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "delete": { - "operationId": "DeleteApplePayDomainsDomain", - "description": "

Delete an apple pay domain.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_apple_pay_domain" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/application_fees": { - "get": { - "description": "

Returns a list of application fees you’ve previously collected. The application fees are returned in sorted order, with the most recent fees appearing first.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "PlatformEarningList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Application_fee" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/application_fees", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetApplicationFees", - "parameters": [ - { - "description": "Only return application fees for the charge specified by this charge ID.", - "in": "query", - "name": "charge", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return applications fees that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/application_fees/{fee}/refunds/{id}": { - "get": { - "description": "

By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Fee_refund" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetApplicationFeesFeeRefundsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "fee", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged.<\/p>\n\n

This request only accepts metadata as an argument.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Fee_refund" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostApplicationFeesFeeRefundsId", - "parameters": [ - { - "in": "path", - "name": "fee", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/application_fees/{id}": { - "get": { - "description": "

Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Application_fee" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetApplicationFeesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/application_fees/{id}/refund": { - "post": { - "description": "", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "integer" - }, - "directive": { - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Application_fee" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostApplicationFeesIdRefund", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/application_fees/{id}/refunds": { - "get": { - "description": "

You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "FeeRefundList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/Fee_refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetApplicationFeesIdRefunds", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Refunds an application fee that has previously been collected but not yet refunded.\nFunds will be refunded to the Stripe account from which the fee was originally collected.<\/p>\n\n

You can optionally refund only part of an application fee.\nYou can do so multiple times, until the entire fee has been refunded.<\/p>\n\n

Once entirely refunded, an application fee can’t be refunded again.\nThis method will raise an error when called on an already-refunded application fee,\nor when trying to refund more money than is left on an application fee.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Fee_refund" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostApplicationFeesIdRefunds", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/apps/secrets": { - "get": { - "description": "

List all secrets stored on the given scope.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "SecretServiceResourceSecretList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Apps.secret" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/apps/secrets", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAppsSecrets", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "explode": true, - "in": "query", - "name": "scope", - "required": true, - "schema": { - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Create or replace a secret in the secret store.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "scope": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "The Unix timestamp for the expiry time of the secret, after which the secret deletes.", - "format": "unix-time", - "type": "integer" - }, - "name": { - "description": "A name for the secret that's unique within the scope.", - "maxLength": 5000, - "type": "string" - }, - "payload": { - "description": "The plaintext secret value to be stored.", - "maxLength": 5000, - "type": "string" - }, - "scope": { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - } - }, - "required": [ - "name", - "payload", - "scope" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Apps.secret" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAppsSecrets" - } - }, - "/apps/secrets/delete": { - "post": { - "description": "

Deletes a secret from the secret store by name and scope.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "scope": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "A name for the secret that's unique within the scope.", - "maxLength": 5000, - "type": "string" - }, - "scope": { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - } - }, - "required": [ - "name", - "scope" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Apps.secret" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostAppsSecretsDelete" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AccountSession" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/accounts" : { + "get" : { + "description" : "

Returns a list of accounts connected to your platform via Connect. If you’re not a platform, the list is empty.

", + "operationId" : "GetAccounts", + "parameters" : [ { + "name" : "created", + "in" : "query", + "description" : "Only return connected accounts that were created during the given date interval", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "$ref" : "#/components/schemas/Created" + } + }, { + "name" : "ending_before", + "in" : "query", + "description" : "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + }, + "x-ballerina-name" : "endingBefore" + }, { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + }, { + "name" : "limit", + "in" : "query", + "description" : "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "integer" + } + }, { + "name" : "starting_after", + "in" : "query", + "description" : "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + }, + "x-ballerina-name" : "startingAfter" + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/AccountList" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } } + } + } + }, + "post" : { + "description" : "

With Connect, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform.

\n\n

If you’ve already collected information for your connected accounts, you can prefill that information when\ncreating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding.\nYou can prefill any information on the account.

", + "operationId" : "PostAccounts", + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/AccountsBody" + }, + "encoding" : { + "bank_account" : { + "style" : "deepObject", + "explode" : true + }, + "business_profile" : { + "style" : "deepObject", + "explode" : true + }, + "capabilities" : { + "style" : "deepObject", + "explode" : true + }, + "company" : { + "style" : "deepObject", + "explode" : true + }, + "controller" : { + "style" : "deepObject", + "explode" : true + }, + "documents" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + }, + "individual" : { + "style" : "deepObject", + "explode" : true + }, + "metadata" : { + "style" : "deepObject", + "explode" : true + }, + "settings" : { + "style" : "deepObject", + "explode" : true + }, + "tos_acceptance" : { + "style" : "deepObject", + "explode" : true + } + } + } + }, + "required" : false }, - "/apps/secrets/find": { - "get": { - "description": "

Finds a secret in the secret store by name and scope.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Apps.secret" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetAppsSecretsFind", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A name for the secret that's unique within the scope.", - "in": "query", - "name": "name", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "explode": true, - "in": "query", - "name": "scope", - "required": true, - "schema": { - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - }, - "style": "deepObject" - } - ] - } - }, - "/balance": { - "get": { - "description": "

Retrieves the current account balance, based on the authentication that was used to make the request.\n For a sample request, see Accounting for negative balances<\/a>.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Balance" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBalance", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - } - }, - "/balance/history": { - "get": { - "description": "

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.<\/p>\n\n

Note that this endpoint was previously called “Balance history” and used the path \/v1\/balance\/history<\/code>.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "BalanceTransactionsList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Balance_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/balance_transactions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBalanceHistory", - "parameters": [ - { - "description": "Only return transactions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID.", - "in": "query", - "name": "payout", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns the original transaction.", - "in": "query", - "name": "source", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/balance/history/{id}": { - "get": { - "description": "

Retrieves the balance transaction with the given ID.<\/p>\n\n

Note that this endpoint previously used the path \/v1\/balance\/history\/:id<\/code>.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Balance_transaction" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBalanceHistoryId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/balance_transactions": { - "get": { - "description": "

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.<\/p>\n\n

Note that this endpoint was previously called “Balance history” and used the path \/v1\/balance\/history<\/code>.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "BalanceTransactionsList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Balance_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/balance_transactions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBalanceTransactions", - "parameters": [ - { - "description": "Only return transactions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID.", - "in": "query", - "name": "payout", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns the original transaction.", - "in": "query", - "name": "source", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/balance_transactions/{id}": { - "get": { - "description": "

Retrieves the balance transaction with the given ID.<\/p>\n\n

Note that this endpoint previously used the path \/v1\/balance\/history\/:id<\/code>.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Balance_transaction" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBalanceTransactionsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/billing/meter_event_adjustments": { - "post": { - "description": "

Creates a billing meter event adjustment

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "cancel": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cancel": { - "description": "Specifies which event to cancel.", - "properties": { - "identifier": { - "maxLength": 100, - "type": "string" - } - }, - "title": "event_adjustment_cancel_settings_param", - "type": "object" - }, - "event_name": { - "description": "The name of the meter event. Corresponds with the `event_name` field on a meter.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet.", - "enum": [ - "cancel" - ], - "type": "string" - } - }, - "required": [ - "event_name", - "type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter_event_adjustment" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingMeterEventAdjustments" - } - }, - "/billing/meter_events": { - "post": { - "description": "

Creates a billing meter event

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "payload": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "event_name": { - "description": "The name of the meter event. Corresponds with the `event_name` field on a meter.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "identifier": { - "description": "A unique identifier for the event. If not provided, one will be generated. We recommend using a globally unique identifier for this. We'll enforce uniqueness within a rolling 24 hour period.", - "maxLength": 100, - "type": "string" - }, - "payload": { - "additionalProperties": { - "type": "string" - }, - "description": "The payload of the event. This must contain the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).", - "type": "object" - }, - "timestamp": { - "description": "The time of the event. Measured in seconds since the Unix epoch. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "event_name", - "payload" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter_event" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingMeterEvents" - } - }, - "/billing/meters": { - "get": { - "description": "

Retrieve a list of billing meters.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "BillingMeterResourceBillingMeterList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Billing.meter" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/billing/meters", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBillingMeters", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Filter results to only include meters with the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Creates a billing meter

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "customer_mapping": { - "explode": true, - "style": "deepObject" - }, - "default_aggregation": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "value_settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer_mapping": { - "description": "Fields that specify how to map a meter event to a customer.", - "properties": { - "event_payload_key": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - "by_id" - ], - "type": "string" - } - }, - "required": [ - "event_payload_key", - "type" - ], - "title": "customer_mapping_param", - "type": "object" - }, - "default_aggregation": { - "description": "The default settings to aggregate a meter's events with.", - "properties": { - "formula": { - "enum": [ - "count", - "sum" - ], - "type": "string" - } - }, - "required": [ - "formula" - ], - "title": "aggregation_settings_param", - "type": "object" - }, - "display_name": { - "description": "The meter's name.", - "maxLength": 250, - "type": "string" - }, - "event_name": { - "description": "The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events.", - "maxLength": 100, - "type": "string" - }, - "event_time_window": { - "description": "The time window to pre-aggregate meter events for, if any.", - "enum": [ - "day", - "hour" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "value_settings": { - "description": "Fields that specify how to calculate a meter event's value.", - "properties": { - "event_payload_key": { - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "event_payload_key" - ], - "title": "meter_value_settings_param", - "type": "object" - } - }, - "required": [ - "default_aggregation", - "display_name", - "event_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingMeters" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Account" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } } + } + } + } + }, + "/accounts/{account}" : { + "get" : { + "description" : "

Retrieves the details of an account.

", + "operationId" : "GetAccountsAccount", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Account" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + }, + "post" : { + "description" : "

Updates a connected account by setting the values of the parameters passed. Any parameters not provided are\nleft unchanged.

\n\n

For accounts where controller.requirement_collection\nis application, which includes Custom accounts, you can update any information on the account.

\n\n

For accounts where controller.requirement_collection\nis stripe, which includes Standard and Express accounts, you can update all information until you create\nan Account Link or Account Session to start Connect onboarding,\nafter which some properties can no longer be updated.

\n\n

To update your own account, use the Dashboard. Refer to our\nConnect documentation to learn more about updating accounts.

", + "operationId" : "PostAccountsAccount", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/AccountsaccountBody" + }, + "encoding" : { + "business_profile" : { + "style" : "deepObject", + "explode" : true + }, + "capabilities" : { + "style" : "deepObject", + "explode" : true + }, + "company" : { + "style" : "deepObject", + "explode" : true + }, + "documents" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + }, + "individual" : { + "style" : "deepObject", + "explode" : true + }, + "metadata" : { + "style" : "deepObject", + "explode" : true + }, + "settings" : { + "style" : "deepObject", + "explode" : true + }, + "tos_acceptance" : { + "style" : "deepObject", + "explode" : true + } + } + } + }, + "required" : false }, - "/billing/meters/{id}": { - "get": { - "description": "

Retrieves a billing meter given an ID

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBillingMetersId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates a billing meter

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "display_name": { - "description": "The meter's name.", - "maxLength": 250, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingMetersId", - "parameters": [ - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/billing/meters/{id}/deactivate": { - "post": { - "description": "

Deactivates a billing meter

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingMetersIdDeactivate", - "parameters": [ - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/billing/meters/{id}/event_summaries": { - "get": { - "description": "

Retrieve a list of billing meter event summaries.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "BillingMeterResourceBillingMeterEventSummaryList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Billing.meter_event_summary" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/billing/meters/[^/]+/event_summaries", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBillingMetersIdEventSummaries", - "parameters": [ - { - "description": "The customer for which to fetch event summaries.", - "in": "query", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The timestamp from when to stop aggregating meter events (exclusive). Must be aligned with minute boundaries.", - "in": "query", - "name": "end_time", - "required": true, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The timestamp from when to start aggregating meter events (inclusive). Must be aligned with minute boundaries.", - "in": "query", - "name": "start_time", - "required": true, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies what granularity to use when generating event summaries. If not specified, a single event summary would be returned for the specified time range. For hourly granularity, start and end times must align with hour boundaries (e.g., 00:00, 01:00, ..., 23:00). For daily granularity, start and end times must align with UTC day boundaries (00:00 UTC).", - "in": "query", - "name": "value_grouping_window", - "required": false, - "schema": { - "enum": [ - "day", - "hour" - ], - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/billing/meters/{id}/reactivate": { - "post": { - "description": "

Reactivates a billing meter

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing.meter" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingMetersIdReactivate", - "parameters": [ - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/billing_portal/configurations": { - "get": { - "description": "

Returns a list of configurations that describe the functionality of the customer portal.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "PortalPublicResourceConfigurationList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Billing_portal.configuration" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/billing_portal/configurations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBillingPortalConfigurations", - "parameters": [ - { - "description": "Only return configurations that are active or inactive (e.g., pass `true` to only list active configurations).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return the default or non-default configurations (e.g., pass `true` to only list the default configuration).", - "in": "query", - "name": "is_default", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Creates a configuration that describes the functionality and behavior of a PortalSession

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "default_return_url": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - }, - "login_page": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "business_profile": { - "description": "The business information shown to customers in the portal.", - "properties": { - "headline": { - "anyOf": [ - { - "maxLength": 60, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "privacy_policy_url": { - "type": "string" - }, - "terms_of_service_url": { - "type": "string" - } - }, - "title": "business_profile_create_param", - "type": "object" - }, - "default_return_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "Information about the features available in the portal.", - "properties": { - "customer_update": { - "properties": { - "allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "address", - "email", - "name", - "phone", - "shipping", - "tax_id" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "customer_update_creation_param", - "type": "object" - }, - "invoice_history": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_list_param", - "type": "object" - }, - "payment_method_update": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "payment_method_update_param", - "type": "object" - }, - "subscription_cancel": { - "properties": { - "cancellation_reason": { - "properties": { - "enabled": { - "type": "boolean" - }, - "options": { - "anyOf": [ - { - "items": { - "enum": [ - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "enabled", - "options" - ], - "title": "subscription_cancellation_reason_creation_param", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "mode": { - "enum": [ - "at_period_end", - "immediately" - ], - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "title": "subscription_cancel_creation_param", - "type": "object" - }, - "subscription_update": { - "properties": { - "default_allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "price", - "promotion_code", - "quantity" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "products": { - "anyOf": [ - { - "items": { - "properties": { - "prices": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "product": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "prices", - "product" - ], - "title": "subscription_update_product_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "required": [ - "default_allowed_updates", - "enabled", - "products" - ], - "title": "subscription_update_creation_param", - "type": "object" - } - }, - "title": "features_creation_param", - "type": "object" - }, - "login_page": { - "description": "The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share).", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "login_page_create_param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - } - }, - "required": [ - "business_profile", - "features" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing_portal.configuration" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingPortalConfigurations" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Account" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + }, + "delete" : { + "description" : "

With Connect, you can delete accounts you manage.

\n\n

Test-mode accounts can be deleted at any time.

\n\n

Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all balances are zero.

\n\n

If you want to delete your own account, use the account information tab in your account settings instead.

", + "operationId" : "DeleteAccountsAccount", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeletedAccount" + } + } } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/accounts/{account}/bank_accounts" : { + "post" : { + "description" : "

Create an external account for a given account.

", + "operationId" : "PostAccountsAccountBankAccounts", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/AccountBankAccountsBody" + }, + "encoding" : { + "bank_account" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + }, + "metadata" : { + "style" : "deepObject", + "explode" : true + } + } + } + }, + "required" : false }, - "/billing_portal/configurations/{configuration}": { - "get": { - "description": "

Retrieves a configuration that describes the functionality of the customer portal.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing_portal.configuration" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetBillingPortalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "post": { - "description": "

Updates a configuration that describes the functionality of the customer portal.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "default_return_url": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - }, - "login_page": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the configuration is active and can be used to create portal sessions.", - "type": "boolean" - }, - "business_profile": { - "description": "The business information shown to customers in the portal.", - "properties": { - "headline": { - "anyOf": [ - { - "maxLength": 60, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "privacy_policy_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "terms_of_service_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "business_profile_update_param", - "type": "object" - }, - "default_return_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "Information about the features available in the portal.", - "properties": { - "customer_update": { - "properties": { - "allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "address", - "email", - "name", - "phone", - "shipping", - "tax_id" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - } - }, - "title": "customer_update_updating_param", - "type": "object" - }, - "invoice_history": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_list_param", - "type": "object" - }, - "payment_method_update": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "payment_method_update_param", - "type": "object" - }, - "subscription_cancel": { - "properties": { - "cancellation_reason": { - "properties": { - "enabled": { - "type": "boolean" - }, - "options": { - "anyOf": [ - { - "items": { - "enum": [ - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "enabled" - ], - "title": "subscription_cancellation_reason_updating_param", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "mode": { - "enum": [ - "at_period_end", - "immediately" - ], - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "subscription_cancel_updating_param", - "type": "object" - }, - "subscription_update": { - "properties": { - "default_allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "price", - "promotion_code", - "quantity" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "products": { - "anyOf": [ - { - "items": { - "properties": { - "prices": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "product": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "prices", - "product" - ], - "title": "subscription_update_product_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "subscription_update_updating_param", - "type": "object" - } - }, - "title": "features_updating_param", - "type": "object" - }, - "login_page": { - "description": "The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share).", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "login_page_update_param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing_portal.configuration" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingPortalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/billing_portal/sessions": { - "post": { - "description": "

Creates a session of the customer portal.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "flow_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "configuration": { - "description": "The ID of an existing [configuration](https://stripe.com/docs/api/customer_portal/configuration) to use for this session, describing its functionality and features. If not specified, the session uses the default configuration.", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "description": "The ID of an existing customer.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "flow_data": { - "description": "Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows.", - "properties": { - "after_completion": { - "properties": { - "hosted_confirmation": { - "properties": { - "custom_message": { - "maxLength": 500, - "type": "string" - } - }, - "title": "after_completion_hosted_confirmation_param", - "type": "object" - }, - "redirect": { - "properties": { - "return_url": { - "type": "string" - } - }, - "required": [ - "return_url" - ], - "title": "after_completion_redirect_param", - "type": "object" - }, - "type": { - "enum": [ - "hosted_confirmation", - "portal_homepage", - "redirect" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "flow_data_after_completion_param", - "type": "object" - }, - "subscription_cancel": { - "properties": { - "retention": { - "properties": { - "coupon_offer": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "coupon" - ], - "title": "coupon_offer_param", - "type": "object" - }, - "type": { - "enum": [ - "coupon_offer" - ], - "type": "string" - } - }, - "required": [ - "coupon_offer", - "type" - ], - "title": "retention_param", - "type": "object" - }, - "subscription": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "subscription" - ], - "title": "flow_data_subscription_cancel_param", - "type": "object" - }, - "subscription_update": { - "properties": { - "subscription": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "subscription" - ], - "title": "flow_data_subscription_update_param", - "type": "object" - }, - "subscription_update_confirm": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "subscription_update_confirm_discount_params", - "type": "object" - }, - "type": "array" - }, - "items": { - "items": { - "properties": { - "id": { - "maxLength": 5000, - "type": "string" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - } - }, - "required": [ - "id" - ], - "title": "subscription_update_confirm_item_params", - "type": "object" - }, - "type": "array" - }, - "subscription": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "items", - "subscription" - ], - "title": "flow_data_subscription_update_confirm_param", - "type": "object" - }, - "type": { - "enum": [ - "payment_method_update", - "subscription_cancel", - "subscription_update", - "subscription_update_confirm" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "flow_data_param", - "type": "object" - }, - "locale": { - "description": "The IETF language tag of the locale customer portal is displayed in. If blank or auto, the customer’s `preferred_locales` or browser’s locale is used.", - "enum": [ - "auto", - "bg", - "cs", - "da", - "de", - "el", - "en", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-NZ", - "en-SG", - "es", - "es-419", - "et", - "fi", - "fil", - "fr", - "fr-CA", - "hr", - "hu", - "id", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "mt", - "nb", - "nl", - "pl", - "pt", - "pt-BR", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "vi", - "zh", - "zh-HK", - "zh-TW" - ], - "type": "string" - }, - "on_behalf_of": { - "description": "The `on_behalf_of` account to use for this session. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays.", - "type": "string" - }, - "return_url": { - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website.", - "type": "string" - } - }, - "required": [ - "customer" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Billing_portal.session" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostBillingPortalSessions" - } - }, - "/charges": { - "get": { - "description": "

Returns a list of charges you’ve previously created. The charges are returned in sorted order, with the most recent charges appearing first.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ChargeList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Charge" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/charges", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCharges", - "parameters": [ - { - "description": "Only return charges that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return charges for the customer specified by this customer ID.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return charges that were created by the PaymentIntent specified by this PaymentIntent ID.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return charges for this transfer group.", - "in": "query", - "name": "transfer_group", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

This method is no longer recommended—use the Payment Intents API<\/a>\nto initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge<\/code>\nobject used to request payment.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "card": { - "explode": true, - "style": "deepObject" - }, - "destination": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "radar_options": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "application_fee": { - "type": "integer" - }, - "application_fee_amount": { - "description": "A fee in cents (or local equivalent) that will be applied to the charge and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the `Stripe-Account` header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/connect/direct-charges#collect-fees).", - "type": "integer" - }, - "capture": { - "description": "Whether to immediately capture the charge. Defaults to `true`. When `false`, the charge issues an authorization (or pre-authorization), and will need to be [captured](https://stripe.com/docs/api#capture_charge) later. Uncaptured charges expire after a set number of days (7 by default). For more information, see the [authorizing charges and settling later](https://stripe.com/docs/charges/placing-a-hold) documentation.", - "type": "boolean" - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "number": { - "maxLength": 5000, - "type": "string" - }, - "object": { - "enum": [ - "card" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "customer_payment_source_card", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).", - "x-stripeBypassValidation": true - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "The ID of an existing customer that will be charged in this request.", - "maxLength": 500, - "type": "string" - }, - "description": { - "description": "An arbitrary string which you can attach to a `Charge` object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing.", - "maxLength": 40000, - "type": "string" - }, - "destination": { - "anyOf": [ - { - "properties": { - "account": { - "maxLength": 5000, - "type": "string" - }, - "amount": { - "type": "integer" - } - }, - "required": [ - "account" - ], - "title": "destination_specs", - "type": "object" - }, - { - "type": "string" - } - ] - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "on_behalf_of": { - "description": "The Stripe account ID for which these funds are intended. Automatically set if you use the `destination` parameter. For details, see [Creating Separate Charges and Transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant).", - "maxLength": 5000, - "type": "string" - }, - "radar_options": { - "description": "Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.", - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "receipt_email": { - "description": "The email address to which this charge's [receipt](https://stripe.com/docs/dashboard/receipts) will be sent. The receipt will not be sent until the charge is paid, and no receipts will be sent for test mode charges. If this charge is for a [Customer](https://stripe.com/docs/api/customers/object), the email address specified here will override the customer's email address. If `receipt_email` is specified for a charge in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails).", - "type": "string" - }, - "shipping": { - "description": "Shipping information for the charge. Helps prevent fraud on charges for physical goods.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - "source": { - "description": "A payment source to be charged. This can be the ID of a [card](https://stripe.com/docs/api#cards) (i.e., credit or debit card), a [bank account](https://stripe.com/docs/api#bank_accounts), a [source](https://stripe.com/docs/api#sources), a [token](https://stripe.com/docs/api#tokens), or a [connected account](https://stripe.com/docs/connect/account-debits#charging-a-connected-account). For certain sources---namely, [cards](https://stripe.com/docs/api#cards), [bank accounts](https://stripe.com/docs/api#bank_accounts), and attached [sources](https://stripe.com/docs/api#sources)---you must also pass the ID of the associated customer.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "statement_descriptor": { - "description": "For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.", - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. For details, see [Grouping transactions](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options).", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Charge" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostCharges" - } - }, - "/charges/search": { - "get": { - "description": "

Search for charges you’ve previously created using Stripe’s Search Query Language<\/a>.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Charge" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetChargesSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for charges](https://stripe.com/docs/search#query-fields-for-charges).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/charges/{charge}": { - "get": { - "description": "

Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Charge" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetChargesCharge", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "post": { - "description": "

Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "fraud_details": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer": { - "description": "The ID of an existing customer that will be associated with this request. This field may only be updated if there is no existing associated customer with this charge.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string which you can attach to a charge object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing.", - "maxLength": 40000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fraud_details": { - "description": "A set of key-value pairs you can attach to a charge giving information about its riskiness. If you believe a charge is fraudulent, include a `user_report` key with a value of `fraudulent`. If you believe a charge is safe, include a `user_report` key with a value of `safe`. Stripe will use the information you send to improve our fraud detection algorithms.", - "properties": { - "user_report": { - "enum": [ - "", - "fraudulent", - "safe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "user_report" - ], - "title": "fraud_details", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "receipt_email": { - "description": "This is the email address that the receipt for this charge will be sent to. If this field is updated, then a new email receipt will be sent to the updated address.", - "maxLength": 5000, - "type": "string" - }, - "shipping": { - "description": "Shipping information for the charge. Helps prevent fraud on charges for physical goods.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Charge" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesCharge", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/charges/{charge}/capture": { - "post": { - "description": "

Capture the payment of an existing, uncaptured charge that was created with the capture<\/code> option set to false.<\/p>\n\n

Uncaptured payments expire a set number of days after they are created (7 by default<\/a>), after which they are marked as refunded and capture attempts will fail.<\/p>\n\n

Don’t use this method to capture a PaymentIntent-initiated charge. Use Capture a PaymentIntent<\/a>.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The amount to capture, which must be less than or equal to the original amount. Any additional amount will be automatically refunded.", - "type": "integer" - }, - "application_fee": { - "description": "An application fee to add on to this charge.", - "type": "integer" - }, - "application_fee_amount": { - "description": "An application fee amount to add on to this charge, which must be less than or equal to the original amount.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "receipt_email": { - "description": "The email address to send this charge's receipt to. This will override the previously-specified email address for this charge, if one was set. Receipts will not be sent in test mode.", - "type": "string" - }, - "statement_descriptor": { - "description": "For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.", - "properties": { - "amount": { - "type": "integer" - } - }, - "title": "transfer_data_specs", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Charge" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesChargeCapture", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/charges/{charge}/dispute": { - "get": { - "description": "

Retrieve a dispute for a specified charge.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dispute" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetChargesChargeDispute", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "post": { - "description": "", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "evidence": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "evidence": { - "description": "Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000.", - "properties": { - "access_activity_log": { - "maxLength": 20000, - "type": "string" - }, - "billing_address": { - "maxLength": 5000, - "type": "string" - }, - "cancellation_policy": { - "type": "string" - }, - "cancellation_policy_disclosure": { - "maxLength": 20000, - "type": "string" - }, - "cancellation_rebuttal": { - "maxLength": 20000, - "type": "string" - }, - "customer_communication": { - "type": "string" - }, - "customer_email_address": { - "maxLength": 5000, - "type": "string" - }, - "customer_name": { - "maxLength": 5000, - "type": "string" - }, - "customer_purchase_ip": { - "maxLength": 5000, - "type": "string" - }, - "customer_signature": { - "type": "string" - }, - "duplicate_charge_documentation": { - "type": "string" - }, - "duplicate_charge_explanation": { - "maxLength": 20000, - "type": "string" - }, - "duplicate_charge_id": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 20000, - "type": "string" - }, - "receipt": { - "type": "string" - }, - "refund_policy": { - "type": "string" - }, - "refund_policy_disclosure": { - "maxLength": 20000, - "type": "string" - }, - "refund_refusal_explanation": { - "maxLength": 20000, - "type": "string" - }, - "service_date": { - "maxLength": 5000, - "type": "string" - }, - "service_documentation": { - "type": "string" - }, - "shipping_address": { - "maxLength": 5000, - "type": "string" - }, - "shipping_carrier": { - "maxLength": 5000, - "type": "string" - }, - "shipping_date": { - "maxLength": 5000, - "type": "string" - }, - "shipping_documentation": { - "type": "string" - }, - "shipping_tracking_number": { - "maxLength": 5000, - "type": "string" - }, - "uncategorized_file": { - "type": "string" - }, - "uncategorized_text": { - "maxLength": 20000, - "type": "string" - } - }, - "title": "dispute_evidence_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "submit": { - "description": "Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default).", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dispute" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesChargeDispute", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/charges/{charge}/dispute/close": { - "post": { - "description": "", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Dispute" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesChargeDisputeClose", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/charges/{charge}/refund": { - "post": { - "description": "

When you create a new refund, you must specify either a Charge or a PaymentIntent object.<\/p>\n\n

This action refunds a previously created charge that’s not refunded yet.\nFunds are refunded to the credit or debit card that’s originally charged.<\/p>\n\n

You can optionally refund only part of a charge.\nYou can repeat this until the entire charge is refunded.<\/p>\n\n

After you entirely refund a charge, you can’t refund it again.\nThis method raises an error when it’s called on an already-refunded charge,\nor when you attempt to refund more money than is left on a charge.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) representing how much of this charge to refund. Can refund only up to the remaining, unrefunded amount of the charge.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "instructions_email": { - "description": "For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions.", - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "payment_intent": { - "description": "The identifier of the PaymentIntent to refund.", - "maxLength": 5000, - "type": "string" - }, - "reason": { - "description": "String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms.", - "enum": [ - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string" - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Charge" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesChargeRefund", - "parameters": [ - { - "description": "The identifier of the charge to refund.", - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/charges/{charge}/refunds": { - "get": { - "description": "

You can see a list of the refunds belonging to a specific charge. Note that the 10 most recent refunds are always available by default on the charge object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "RefundList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/Refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetChargesChargeRefunds", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.<\/p>\n\n

Creating a new refund will refund a charge that has previously been created but not yet refunded.\nFunds will be refunded to the credit or debit card that was originally charged.<\/p>\n\n

You can optionally refund only part of a charge.\nYou can do so multiple times, until the entire charge has been refunded.<\/p>\n\n

Once entirely refunded, a charge can’t be refunded again.\nThis method will raise an error when called on an already-refunded charge,\nor when trying to refund more money than is left on a charge.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "Customer whose customer balance to refund from.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "instructions_email": { - "description": "For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions.", - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "origin": { - "description": "Origin of the refund", - "enum": [ - "customer_balance" - ], - "type": "string" - }, - "payment_intent": { - "description": "The identifier of the PaymentIntent to refund.", - "maxLength": 5000, - "type": "string" - }, - "reason": { - "description": "String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms.", - "enum": [ - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string" - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Refund" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesChargeRefunds", - "parameters": [ - { - "description": "The identifier of the charge to refund.", - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/charges/{charge}/refunds/{refund}": { - "get": { - "description": "

Retrieves the details of an existing refund.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Refund" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetChargesChargeRefundsRefund", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Update a specified refund.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Refund" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostChargesChargeRefundsRefund", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/checkout/sessions": { - "get": { - "description": "

Returns a list of Checkout Sessions.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "PaymentPagesCheckoutSessionList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Checkout.session" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCheckoutSessions", - "parameters": [ - { - "description": "Only return Checkout Sessions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return the Checkout Sessions for the Customer specified.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Sessions for the Customer details specified.", - "explode": true, - "in": "query", - "name": "customer_details", - "required": false, - "schema": { - "properties": { - "email": { - "type": "string" - } - }, - "required": [ - "email" - ], - "title": "customer_details_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Session for the PaymentIntent specified.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Sessions for the Payment Link specified.", - "in": "query", - "name": "payment_link", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Sessions matching the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "complete", - "expired", - "open" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Session for the subscription specified.", - "in": "query", - "name": "subscription", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Creates a Session object.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "after_expiration": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "consent_collection": { - "explode": true, - "style": "deepObject" - }, - "custom_fields": { - "explode": true, - "style": "deepObject" - }, - "custom_text": { - "explode": true, - "style": "deepObject" - }, - "customer_update": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_creation": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_intent_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "phone_number_collection": { - "explode": true, - "style": "deepObject" - }, - "saved_payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "setup_intent_data": { - "explode": true, - "style": "deepObject" - }, - "shipping_address_collection": { - "explode": true, - "style": "deepObject" - }, - "shipping_options": { - "explode": true, - "style": "deepObject" - }, - "subscription_data": { - "explode": true, - "style": "deepObject" - }, - "tax_id_collection": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "after_expiration": { - "description": "Configure actions after a Checkout Session has expired.", - "properties": { - "recovery": { - "properties": { - "allow_promotion_codes": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "recovery_params", - "type": "object" - } - }, - "title": "after_expiration_params", - "type": "object" - }, - "allow_promotion_codes": { - "description": "Enables user redeemable promotion codes.", - "type": "boolean" - }, - "automatic_tax": { - "description": "Settings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_params", - "type": "object" - }, - "billing_address_collection": { - "description": "Specify whether Checkout should collect the customer's billing address. Defaults to `auto`.", - "enum": [ - "auto", - "required" - ], - "type": "string" - }, - "cancel_url": { - "description": "If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.", - "maxLength": 5000, - "type": "string" - }, - "client_reference_id": { - "description": "A unique string to reference the Checkout Session. This can be a\ncustomer ID, a cart ID, or similar, and can be used to reconcile the\nsession with your internal systems.", - "maxLength": 200, - "type": "string" - }, - "consent_collection": { - "description": "Configure fields for the Checkout Session to gather active consent from customers.", - "properties": { - "payment_method_reuse_agreement": { - "properties": { - "position": { - "enum": [ - "auto", - "hidden" - ], - "type": "string" - } - }, - "required": [ - "position" - ], - "title": "payment_method_reuse_agreement_params", - "type": "object" - }, - "promotions": { - "enum": [ - "auto", - "none" - ], - "type": "string" - }, - "terms_of_service": { - "enum": [ - "none", - "required" - ], - "type": "string" - } - }, - "title": "consent_collection_params", - "type": "object" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Required in `setup` mode when `payment_method_types` is not set.", - "type": "string" - }, - "custom_fields": { - "description": "Collect additional information from your customer using custom fields. Up to 3 fields are supported.", - "items": { - "properties": { - "dropdown": { - "properties": { - "default_value": { - "maxLength": 100, - "type": "string" - }, - "options": { - "items": { - "properties": { - "label": { - "maxLength": 100, - "type": "string" - }, - "value": { - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "title": "custom_field_option_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "options" - ], - "title": "custom_field_dropdown_param", - "type": "object" - }, - "key": { - "maxLength": 200, - "type": "string" - }, - "label": { - "properties": { - "custom": { - "maxLength": 50, - "type": "string" - }, - "type": { - "enum": [ - "custom" - ], - "type": "string" - } - }, - "required": [ - "custom", - "type" - ], - "title": "custom_field_label_param", - "type": "object" - }, - "numeric": { - "properties": { - "default_value": { - "maxLength": 255, - "type": "string" - }, - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_numeric_param", - "type": "object" - }, - "optional": { - "type": "boolean" - }, - "text": { - "properties": { - "default_value": { - "maxLength": 255, - "type": "string" - }, - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_text_param", - "type": "object" - }, - "type": { - "enum": [ - "dropdown", - "numeric", - "text" - ], - "type": "string" - } - }, - "required": [ - "key", - "label", - "type" - ], - "title": "custom_field_param", - "type": "object" - }, - "type": "array" - }, - "custom_text": { - "description": "Display additional text for your customers using custom text.", - "properties": { - "after_submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping_address": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "terms_of_service_acceptance": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "custom_text_param", - "type": "object" - }, - "customer": { - "description": "ID of an existing Customer, if one exists. In `payment` mode, the customer’s most recently saved card\npayment method will be used to prefill the email, name, card details, and billing address\non the Checkout page. In `subscription` mode, the customer’s [default payment method](https:\/\/stripe.com\/docs\/api\/customers\/update#update_customer-invoice_settings-default_payment_method)\nwill be used if it’s a card, otherwise the most recently saved card will be used. A valid billing address, billing name and billing email are required on the payment method for Checkout to prefill the customer's card details.\n\nIf the Customer already has a valid [email](https:\/\/stripe.com\/docs\/api\/customers\/object#customer_object-email) set, the email will be prefilled and not editable in Checkout.\nIf the Customer does not have a valid `email`, Checkout will set the email entered during the session on the Customer.\n\nIf blank for Checkout Sessions in `subscription` mode or with `customer_creation` set as `always` in `payment` mode, Checkout will create a new Customer object based on information provided during the payment flow.\n\nYou can set [`payment_intent_data.setup_future_usage`](https:\/\/stripe.com\/docs\/api\/checkout\/sessions\/create#create_checkout_session-payment_intent_data-setup_future_usage) to have Checkout automatically attach the payment method to the Customer you pass in for future reuse.", - "maxLength": 5000, - "type": "string" - }, - "customer_creation": { - "description": "Configure whether a Checkout Session creates a [Customer](https:\/\/stripe.com\/docs\/api\/customers) during Session confirmation.\n\nWhen a Customer is not created, you can still retrieve email, address, and other customer data entered in Checkout\nwith [customer_details](https:\/\/stripe.com\/docs\/api\/checkout\/sessions\/object#checkout_session_object-customer_details).\n\nSessions that don't create Customers instead are grouped by [guest customers](https:\/\/stripe.com\/docs\/payments\/checkout\/guest-customers)\nin the Dashboard. Promotion codes limited to first time customers will return invalid for these Sessions.\n\nCan only be set in `payment` and `setup` mode.", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "customer_email": { - "description": "If provided, this value will be used when the Customer object is created.\nIf not provided, customers will be asked to enter their email address.\nUse this parameter to prefill customer data if you already have an email\non file. To access information about the customer once a session is\ncomplete, use the `customer` field.", - "type": "string" - }, - "customer_update": { - "description": "Controls what fields on Customer can be updated by the Checkout Session. Can only be provided when `customer` is provided.", - "properties": { - "address": { - "enum": [ - "auto", - "never" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "name": { - "enum": [ - "auto", - "never" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "shipping": { - "enum": [ - "auto", - "never" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "customer_update_params", - "type": "object" - }, - "discounts": { - "description": "The coupon or promotion code to apply to this Session. Currently, only up to one may be specified.", - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discount_params", - "type": "object" - }, - "type": "array" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "The Epoch time in seconds at which the Checkout Session will expire. It can be anywhere from 30 minutes to 24 hours after Checkout Session creation. By default, this value is 24 hours from creation.", - "format": "unix-time", - "type": "integer" - }, - "invoice_creation": { - "description": "Generate a post-purchase Invoice for one-time payments.", - "properties": { - "enabled": { - "type": "boolean" - }, - "invoice_data": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "maxLength": 1500, - "type": "string" - }, - "footer": { - "maxLength": 5000, - "type": "string" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "rendering_options": { - "anyOf": [ - { - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - } - }, - "title": "rendering_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "invoice_data_params", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_creation_params", - "type": "object" - }, - "line_items": { - "description": "A list of items the customer is purchasing. Use this parameter to pass one-time or recurring [Prices](https:\/\/stripe.com\/docs\/api\/prices).\n\nFor `payment` mode, there is a maximum of 100 line items, however it is recommended to consolidate line items if there are more than a few dozen.\n\nFor `subscription` mode, there is a maximum of 20 line items with recurring Prices and 20 line items with one-time Prices. Line items with one-time Prices will be on the initial invoice only.", - "items": { - "properties": { - "adjustable_quantity": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "adjustable_quantity_params", - "type": "object" - }, - "dynamic_tax_rates": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "product_data": { - "properties": { - "description": { - "maxLength": 40000, - "type": "string" - }, - "images": { - "items": { - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "product_data", - "type": "object" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "title": "price_data_with_product_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "line_item_params", - "type": "object" - }, - "type": "array" - }, - "locale": { - "description": "The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used.", - "enum": [ - "auto", - "bg", - "cs", - "da", - "de", - "el", - "en", - "en-GB", - "es", - "es-419", - "et", - "fi", - "fil", - "fr", - "fr-CA", - "hr", - "hu", - "id", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "mt", - "nb", - "nl", - "pl", - "pt", - "pt-BR", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "vi", - "zh", - "zh-HK", - "zh-TW" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - }, - "mode": { - "description": "The mode of the Checkout Session. Pass `subscription` if the Checkout Session includes at least one recurring item.", - "enum": [ - "payment", - "setup", - "subscription" - ], - "type": "string" - }, - "payment_intent_data": { - "description": "A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode.", - "properties": { - "application_fee_amount": { - "type": "integer" - }, - "capture_method": { - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "description": { - "maxLength": 1000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "receipt_email": { - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "shipping": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "line1" - ], - "title": "address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "shipping", - "type": "object" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_params", - "type": "object" - }, - "transfer_group": { - "type": "string" - } - }, - "title": "payment_intent_data_params", - "type": "object" - }, - "payment_method_collection": { - "description": "Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.\nThis may occur if the Checkout Session includes a free trial or a discount.\n\nCan only be set in `subscription` mode. Defaults to `always`.\n\nIf you'd like information on how to collect a payment method outside of Checkout, read the guide on configuring [subscriptions with a free trial](https:\/\/stripe.com\/docs\/payments\/checkout\/free-trials).", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "payment_method_configuration": { - "description": "The ID of the payment method configuration to use with this Checkout session.", - "maxLength": 100, - "type": "string" - }, - "payment_method_data": { - "description": "This parameter allows you to set some attributes on the payment method created during a Checkout session.", - "properties": { - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - } - }, - "title": "payment_method_data_param", - "type": "object" - }, - "payment_method_options": { - "description": "Payment-method-specific configuration.", - "properties": { - "acss_debit": { - "properties": { - "currency": { - "enum": [ - "cad", - "usd" - ], - "type": "string" - }, - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_for": { - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "affirm": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "alipay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "amazon_pay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "bancontact": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "boleto": { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "card": { - "properties": { - "installments": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "title": "installments_param", - "type": "object" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix_kanji": { - "maxLength": 17, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "cashapp": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "customer_balance": { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_params", - "type": "object" - }, - "requested_address_types": { - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "enum": [ - "bank_transfer" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "eps": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "fpx": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "giropay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "grabpay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "ideal": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "klarna": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "konbini": { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "link": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "mobilepay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "multibanco": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "oxxo": { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "p24": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - }, - "tos_shown_and_accepted": { - "type": "boolean" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "paynow": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "paypal": { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-DE", - "de-LU", - "el-GR", - "en-GB", - "en-US", - "es-ES", - "fi-FI", - "fr-BE", - "fr-FR", - "fr-LU", - "hu-HU", - "it-IT", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "sk-SK", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reference": { - "maxLength": 127, - "type": "string" - }, - "risk_correlation_id": { - "maxLength": 32, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "pix": { - "properties": { - "expires_after_seconds": { - "type": "integer" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "revolut_pay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sofort": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "swish": { - "properties": { - "reference": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "us_bank_account": { - "properties": { - "financial_connections": { - "properties": { - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "wechat_pay": { - "properties": { - "app_id": { - "maxLength": 5000, - "type": "string" - }, - "client": { - "enum": [ - "android", - "ios", - "web" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "client" - ], - "title": "payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "A list of the types of payment methods (e.g., `card`) this Checkout Session can accept.\n\nYou can omit this attribute to manage your payment methods from the [Stripe Dashboard](https:\/\/dashboard.stripe.com\/settings\/payment_methods).\nSee [Dynamic Payment Methods](https:\/\/stripe.com\/docs\/payments\/payment-methods\/integration-options#using-dynamic-payment-methods) for more details.\n\nRead more about the supported payment methods and their requirements in our [payment\nmethod details guide](\/docs\/payments\/checkout\/payment-methods).\n\nIf multiple payment methods are passed, Checkout will dynamically reorder them to\nprioritize the most relevant payment methods based on the customer's location and\nother characteristics.", - "items": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "phone_number_collection": { - "description": "Controls phone number collection settings for the session.\n\nWe recommend that you review your privacy policy and check with your legal contacts\nbefore using this feature. Learn more about [collecting phone numbers with Checkout](https:\/\/stripe.com\/docs\/payments\/checkout\/phone-numbers).", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "phone_number_collection_params", - "type": "object" - }, - "redirect_on_completion": { - "description": "This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-redirect-behavior) of embedded sessions. Defaults to `always`.", - "enum": [ - "always", - "if_required", - "never" - ], - "type": "string" - }, - "return_url": { - "description": "The URL to redirect your customer back to after they authenticate or cancel their payment on the\npayment method's app or site. This parameter is required if ui_mode is `embedded`\nand redirect-based payment methods are enabled on the session.", - "maxLength": 5000, - "type": "string" - }, - "saved_payment_method_options": { - "description": "Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode.", - "properties": { - "allow_redisplay_filters": { - "items": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "type": "array" - }, - "payment_method_save": { - "enum": [ - "disabled", - "enabled" - ], - "type": "string" - } - }, - "title": "saved_payment_method_options_param", - "type": "object" - }, - "setup_intent_data": { - "description": "A subset of parameters to be passed to SetupIntent creation for Checkout Sessions in `setup` mode.", - "properties": { - "description": { - "maxLength": 1000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - } - }, - "title": "setup_intent_data_param", - "type": "object" - }, - "shipping_address_collection": { - "description": "When set, provides configuration for Checkout to collect a shipping address from a customer.", - "properties": { - "allowed_countries": { - "items": { - "enum": [ - "AC", - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CV", - "CW", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MK", - "ML", - "MM", - "MN", - "MO", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SZ", - "TA", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - "ZZ" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "allowed_countries" - ], - "title": "shipping_address_collection_params", - "type": "object" - }, - "shipping_options": { - "description": "The shipping rate options to apply to this Session. Up to a maximum of 5.", - "items": { - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - }, - "shipping_rate_data": { - "properties": { - "delivery_estimate": { - "properties": { - "maximum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - }, - "minimum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - } - }, - "title": "delivery_estimate", - "type": "object" - }, - "display_name": { - "maxLength": 100, - "type": "string" - }, - "fixed_amount": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "required": [ - "amount" - ], - "title": "currency_option", - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "fixed_amount", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - }, - "type": { - "enum": [ - "fixed_amount" - ], - "type": "string" - } - }, - "required": [ - "display_name" - ], - "title": "method_params", - "type": "object" - } - }, - "title": "shipping_option_params", - "type": "object" - }, - "type": "array" - }, - "submit_type": { - "description": "Describes the type of transaction being performed by Checkout in order to customize\nrelevant text on the page, such as the submit button. `submit_type` can only be\nspecified on Checkout Sessions in `payment` mode. If blank or `auto`, `pay` is used.", - "enum": [ - "auto", - "book", - "donate", - "pay" - ], - "type": "string" - }, - "subscription_data": { - "description": "A subset of parameters to be passed to subscription creation for Checkout Sessions in `subscription` mode.", - "properties": { - "application_fee_percent": { - "type": "number" - }, - "billing_cycle_anchor": { - "format": "unix-time", - "type": "integer" - }, - "default_tax_rates": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "description": { - "maxLength": 500, - "type": "string" - }, - "invoice_settings": { - "properties": { - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings_params", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "create_prorations", - "none" - ], - "type": "string" - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial_end": { - "format": "unix-time", - "type": "integer" - }, - "trial_period_days": { - "type": "integer" - }, - "trial_settings": { - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "title": "subscription_data_params", - "type": "object" - }, - "success_url": { - "description": "The URL to which Stripe should send customers when payment or setup\nis complete.\nThis parameter is not allowed if ui_mode is `embedded`. If you’d like to use\ninformation from the successful Checkout Session on your page, read the\nguide on [customizing your success page](https:\/\/stripe.com\/docs\/payments\/checkout\/custom-success-page).", - "maxLength": 5000, - "type": "string" - }, - "tax_id_collection": { - "description": "Controls tax ID collection during checkout.", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "tax_id_collection_params", - "type": "object" - }, - "ui_mode": { - "description": "The UI mode of the Session. Defaults to `hosted`.", - "enum": [ - "embedded", - "hosted" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Checkout.session" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostCheckoutSessions" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ExternalAccount" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/accounts/{account}/bank_accounts/{id}" : { + "get" : { + "description" : "

Retrieve a specified external account for a given account.

", + "operationId" : "GetAccountsAccountBankAccountsId", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + }, { + "name" : "id", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ExternalAccount" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + }, + "post" : { + "description" : "

Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.

\n\n

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

\n\n

You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.

", + "operationId" : "PostAccountsAccountBankAccountsId", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "id", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/BankAccountsidBody" + }, + "encoding" : { + "documents" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + }, + "metadata" : { + "style" : "deepObject", + "explode" : true + } + } } + }, + "required" : false }, - "/checkout/sessions/{session}": { - "get": { - "description": "

Retrieves a Session object.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Checkout.session" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCheckoutSessionsSession", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 66, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/checkout/sessions/{session}/expire": { - "post": { - "description": "

A Session can be expired when it is in one of these statuses: open<\/code> <\/p>\n\n

After it expires, a customer can’t complete a Session and customers loading the Session see a message saying the Session is expired.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Checkout.session" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostCheckoutSessionsSessionExpire", - "parameters": [ - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/checkout/sessions/{session}/line_items": { - "get": { - "description": "

When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "PaymentPagesCheckoutSessionListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/Item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCheckoutSessionsSessionLineItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/climate/orders": { - "get": { - "description": "

Lists all Climate order objects. The orders are returned sorted by creation date, with the\nmost recently created orders appearing first.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ClimateRemovalsOrdersList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Climate.order" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/climate/orders", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetClimateOrders", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Creates a Climate order object for a given Climate product. The order will be processed immediately\nafter creation and payment will be deducted your Stripe balance.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "beneficiary": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Requested amount of carbon removal units. Either this or `metric_tons` must be specified.", - "type": "integer" - }, - "beneficiary": { - "description": "Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set.", - "properties": { - "public_name": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "public_name" - ], - "title": "beneficiary_params", - "type": "object" - }, - "currency": { - "description": "Request currency for the order as a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a supported [settlement currency for your account](https://stripe.com/docs/currencies). If omitted, the account's default currency will be used.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - }, - "metric_tons": { - "description": "Requested number of tons for the order. Either this or `amount` must be specified.", - "format": "decimal", - "type": "string" - }, - "product": { - "description": "Unique identifier of the Climate product.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "product" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Climate.order" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostClimateOrders" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ExternalAccount" + } + } } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + }, + "delete" : { + "description" : "

Delete a specified external account for a given account.

", + "operationId" : "DeleteAccountsAccountBankAccountsId", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "id", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/DeletedExternalAccount" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/accounts/{account}/capabilities" : { + "get" : { + "description" : "

Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first.

", + "operationId" : "GetAccountsAccountCapabilities", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ListAccountCapability" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/accounts/{account}/capabilities/{capability}" : { + "get" : { + "description" : "

Retrieves information about the specified Account Capability.

", + "operationId" : "GetAccountsAccountCapabilitiesCapability", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "capability", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Capability" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + }, + "post" : { + "description" : "

Updates an existing Account Capability. Request or remove a capability by updating its requested parameter.

", + "operationId" : "PostAccountsAccountCapabilitiesCapability", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "capability", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/CapabilitiescapabilityBody" + }, + "encoding" : { + "expand" : { + "style" : "deepObject", + "explode" : true + } + } + } + }, + "required" : false }, - "/climate/orders/{order}": { - "get": { - "description": "

Retrieves the details of a Climate order object with the given ID.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Climate.order" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetClimateOrdersOrder", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Unique identifier of the order.", - "in": "path", - "name": "order", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "post": { - "description": "

Updates the specified order by setting the values of the parameters passed.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "beneficiary": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "beneficiary": { - "anyOf": [ - { - "properties": { - "public_name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "public_name" - ], - "title": "beneficiary_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "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`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Climate.order" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostClimateOrdersOrder", - "parameters": [ - { - "description": "Unique identifier of the order.", - "in": "path", - "name": "order", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/climate/orders/{order}/cancel": { - "post": { - "description": "

Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the\nreservation amount_subtotal<\/code>, but not the amount_fees<\/code> for user-triggered cancellations. Frontier\nmight cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe\nprovides 90 days advance notice and refunds the amount_total<\/code>.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Climate.order" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostClimateOrdersOrderCancel", - "parameters": [ - { - "description": "Unique identifier of the order.", - "in": "path", - "name": "order", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/climate/products": { - "get": { - "description": "

Lists all available Climate product objects.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ClimateRemovalsProductsList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Climate.product" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/climate/products", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetClimateProducts", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/climate/products/{product}": { - "get": { - "description": "

Retrieves the details of a Climate product with the given ID.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Climate.product" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetClimateProductsProduct", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "product", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/climate/suppliers": { - "get": { - "description": "

Lists all available Climate supplier objects.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "ClimateRemovalsSuppliersList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Climate.supplier" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/climate/suppliers", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetClimateSuppliers", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/climate/suppliers/{supplier}": { - "get": { - "description": "

Retrieves a Climate supplier object.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Climate.supplier" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetClimateSuppliersSupplier", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "supplier", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/confirmation_tokens/{confirmation_token}": { - "get": { - "description": "

Retrieves an existing ConfirmationToken object

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Confirmation_token" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetConfirmationTokensConfirmationToken", - "parameters": [ - { - "in": "path", - "name": "confirmation_token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - } - }, - "/country_specs": { - "get": { - "description": "

Lists all Country Spec objects available in the API.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "CountrySpecList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Country_spec" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/country_specs", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCountrySpecs", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - } - }, - "/country_specs/{country}": { - "get": { - "description": "

Returns a Country Spec for a given Country code.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Country_spec" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCountrySpecsCountry", - "parameters": [ - { - "in": "path", - "name": "country", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - } - }, - "/coupons": { - "get": { - "description": "

Returns a list of your coupons.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "CouponsResourceCouponList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Coupon" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/coupons", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCoupons", - "parameters": [ - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

You can create coupons easily via the coupon management<\/a> page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.<\/p>\n\n

A coupon has either a percent_off<\/code> or an amount_off<\/code> and currency<\/code>. If you set an amount_off<\/code>, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100<\/currency> will have a final total of 0<\/currency> if a coupon with an amount_off<\/code> of 200<\/amount> is applied to it and an invoice with a subtotal of 300<\/currency> will have a final total of 100<\/currency> if a coupon with an amount_off<\/code> of 200<\/amount> is applied to it.<\/p>", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "applies_to": { - "explode": true, - "style": "deepObject" - }, - "currency_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount_off": { - "description": "A positive integer representing the amount to subtract from an invoice total (required if `percent_off` is not passed).", - "type": "integer" - }, - "applies_to": { - "description": "A hash containing directions for what this Coupon will apply discounts to.", - "properties": { - "products": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "applies_to_params", - "type": "object" - }, - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `amount_off` parameter (required if `amount_off` is passed).", - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount_off": { - "type": "integer" - } - }, - "required": [ - "amount_off" - ], - "title": "currency_option", - "type": "object" - }, - "description": "Coupons defined in each available currency option (only supported if `amount_off` is passed). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "duration": { - "description": "Specifies how long the discount will be in effect if used on a subscription. Defaults to `once`.", - "enum": [ - "forever", - "once", - "repeating" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "duration_in_months": { - "description": "Required only if `duration` is `repeating`, in which case it must be a positive integer that specifies the number of months the discount will be in effect.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "Unique string of your choice that will be used to identify this coupon when applying it to a customer. If you don't want to specify a particular code, you can leave the ID blank and we'll generate a random code for you.", - "maxLength": 5000, - "type": "string" - }, - "max_redemptions": { - "description": "A positive integer specifying the number of times the coupon can be redeemed before it's no longer valid. For example, you might have a 50% off coupon that the first 20 readers of your blog can use.", - "type": "integer" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "name": { - "description": "Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.", - "maxLength": 40, - "type": "string" - }, - "percent_off": { - "description": "A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if `amount_off` is not passed).", - "type": "number" - }, - "redeem_by": { - "description": "Unix timestamp specifying the last time at which the coupon can be redeemed. After the redeem_by date, the coupon can no longer be applied to new customers.", - "format": "unix-time", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Coupon" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostCoupons" + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Capability" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/accounts/{account}/external_accounts" : { + "get" : { + "description" : "

List external accounts for an account.

", + "operationId" : "GetAccountsAccountExternalAccounts", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + }, { + "name" : "ending_before", + "in" : "query", + "description" : "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + }, + "x-ballerina-name" : "endingBefore" + }, { + "name" : "expand", + "in" : "query", + "description" : "Specifies which fields in the response should be expanded", + "required" : false, + "style" : "deepObject", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "maxLength" : 5000, + "type" : "string" + } + } + }, { + "name" : "limit", + "in" : "query", + "description" : "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "integer" + } + }, { + "name" : "object", + "in" : "query", + "description" : "Filter external accounts according to a particular object type", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "maxLength" : 5000, + "type" : "string", + "enum" : [ "bank_account", "card" ], + "x-stripeBypassValidation" : true + } + }, { + "name" : "starting_after", + "in" : "query", + "description" : "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + }, + "x-ballerina-name" : "startingAfter" + } ], + "responses" : { + "200" : { + "description" : "Successful response", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/ExternalAccountList" + } + } + } + }, + "default" : { + "description" : "Error response.", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + } + }, + "post" : { + "description" : "

Create an external account for a given account.

", + "operationId" : "PostAccountsAccountExternalAccounts", + "parameters" : [ { + "name" : "account", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "maxLength" : 5000, + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/x-www-form-urlencoded" : { + "schema" : { + "$ref" : "#/components/schemas/AccountExternalAccountsBody" + }, + "encoding" : { + "bank_account" : { + "style" : "deepObject", + "explode" : true + }, + "expand" : { + "style" : "deepObject", + "explode" : true + }, + "metadata" : { + "style" : "deepObject", + "explode" : true + } + } } + }, + "required" : false }, - "/coupons/{coupon}": { - "get": { - "description": "

Retrieves the coupon with the given ID.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Coupon" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCouponsCoupon", - "parameters": [ - { - "in": "path", - "name": "coupon", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ] - }, - "post": { - "description": "

Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.

", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "currency_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "currency_options": { - "additionalProperties": { - "properties": { - "amount_off": { - "type": "integer" - } - }, - "required": [ - "amount_off" - ], - "title": "currency_option", - "type": "object" - }, - "description": "Coupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "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`." - }, - "name": { - "description": "Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.", - "maxLength": 40, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Coupon" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "PostCouponsCoupon", - "parameters": [ - { - "in": "path", - "name": "coupon", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - }, - "delete": { - "operationId": "DeleteCouponsCoupon", - "description": "

You can delete coupons via the coupon management<\/a> page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can’t redeem the coupon. You can also delete coupons via the API.<\/p>", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Deleted_coupon" - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "parameters": [ - { - "in": "path", - "name": "coupon", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ] - } - }, - "/credit_notes": { - "get": { - "description": "

Returns a list of credit notes.

", - "responses": { - "200": { - "description": "Successful response.", - "content": { - "application/json": { - "schema": { - "title": "CreditNotesList", - "type": "object", - "x-expandableFields": [ - "data" - ], - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/Credit_note" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ] - } - } - } - }, - "default": { - "description": "Error response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "operationId": "GetCreditNotes", - "parameters": [ - { - "description": "Only return credit notes that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return credit notes for the customer specified by this customer ID.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return credit notes for the invoice specified by this invoice ID.", - "in": "query", - "name": "invoice", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ] - }, - "post": { - "description": "

Issue a credit note to adjust the amount of a finalized invoice. For a status=open<\/code> invoice, a credit note reduces\nits amount_due<\/code>. For a status=paid<\/code> invoice, a credit note does not affect its amount_due<\/code>. Instead, it can result\nin any combination of the following:<\/p>\n\n