From c0d4ac7102f2e1d41f34d6812d1fd77dc9d9902a Mon Sep 17 00:00:00 2001 From: "stripe-openapi[bot]" <105521251+stripe-openapi[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 13:43:21 -0700 Subject: [PATCH] OpenAPI Update (#439) Update OpenAPI for 2865bffb7a69eccb8e085d3bfade1129c0ea2350 Co-authored-by: Stripe OpenAPI <105521251+stripe-openapi[bot]@users.noreply.github.com> --- embedded/openapi/spec3.beta.sdk.json | 728 ++++++++++++++++++++++++++- embedded/openapi/spec3.json | 60 ++- 2 files changed, 782 insertions(+), 6 deletions(-) diff --git a/embedded/openapi/spec3.beta.sdk.json b/embedded/openapi/spec3.beta.sdk.json index 069adf0d..c78f560c 100644 --- a/embedded/openapi/spec3.beta.sdk.json +++ b/embedded/openapi/spec3.beta.sdk.json @@ -367,6 +367,9 @@ "nullable": true, "type": "string" }, + "monthly_estimated_revenue": { + "$ref": "#/components/schemas/account_monthly_estimated_revenue" + }, "name": { "description": "The customer-facing business name.", "maxLength": 5000, @@ -425,11 +428,15 @@ "title": "AccountBusinessProfile", "type": "object", "x-expandableFields": [ + "monthly_estimated_revenue", "support_address" ], "x-stripeResource": { "class_name": "BusinessProfile", - "in_class": "account" + "in_class": "account", + "inner_classes": [ + "account_monthly_estimated_revenue" + ] } }, "account_capabilities": { @@ -1196,6 +1203,30 @@ "in_package": "" } }, + "account_monthly_estimated_revenue": { + "description": "", + "properties": { + "amount": { + "description": "A non-negative integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", + "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" + } + }, + "required": [ + "amount", + "currency" + ], + "title": "AccountMonthlyEstimatedRevenue", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "MonthlyEstimatedRevenue", + "in_class": "account_business_profile" + } + }, "account_payments_settings": { "description": "", "properties": { @@ -6341,6 +6372,15 @@ "nullable": true, "type": "string" }, + "payment_method_configuration_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/payment_method_config_biz_payment_method_configuration_details" + } + ], + "description": "Information about the payment method configuration used for this Checkout session.", + "nullable": true + }, "payment_method_options": { "anyOf": [ { @@ -6561,6 +6601,7 @@ "line_items", "payment_intent", "payment_link", + "payment_method_configuration_details", "payment_method_options", "phone_number_collection", "setup_intent", @@ -37765,7 +37806,7 @@ } }, "person": { - "description": "This is an object representing a person associated with a Stripe account.\n\nA platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account.\nSee the [Standard onboarding](https://stripe.com/docs/connect/standard-accounts) or [Express onboarding documentation](https://stripe.com/docs/connect/express-accounts) for information about platform pre-filling and account onboarding steps.\n\nRelated guide: [Handling identity verification with the API](https://stripe.com/docs/connect/identity-verification-api#person-information)", + "description": "This is an object representing a person associated with a Stripe account.\n\nA platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account.\nSee the [Standard onboarding](https://stripe.com/docs/connect/standard-accounts) or [Express onboarding documentation](https://stripe.com/docs/connect/express-accounts) for information about platform prefilling and account onboarding steps.\n\nRelated guide: [Handling identity verification with the API](https://stripe.com/docs/connect/identity-verification-api#person-information)", "properties": { "account": { "description": "The account the person is associated with.", @@ -45493,6 +45534,15 @@ ] } }, + "payment_method_configuration_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/payment_method_config_biz_payment_method_configuration_details" + } + ], + "description": "Information about the payment method configuration used for this Setup Intent.", + "nullable": true + }, "payment_method_options": { "anyOf": [ { @@ -45585,6 +45635,7 @@ "next_action", "on_behalf_of", "payment_method", + "payment_method_configuration_details", "payment_method_options", "single_use_mandate" ], @@ -51199,6 +51250,136 @@ ] } }, + "tax.form": { + "description": "Tax forms are legal documents which are delivered to one or more tax authorities for information reporting purposes.\n\nRelated guide: [US tax reporting for Connect platforms](https://stripe.com/docs/connect/tax-reporting)", + "properties": { + "corrected_by": { + "anyOf": [ + { + "maxLength": 5000, + "type": "string" + }, + { + "$ref": "#/components/schemas/tax.form" + } + ], + "description": "The form that corrects this form, if any.", + "nullable": true, + "x-expansionResources": { + "oneOf": [ + { + "$ref": "#/components/schemas/tax.form" + } + ] + } + }, + "created": { + "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "filing_statuses": { + "description": "A list of tax filing statuses. Note that a filing status will only be included if the form has been filed directly with the jurisdiction’s tax authority.", + "items": { + "$ref": "#/components/schemas/tax_reporting_resource_tax_form_filing_status" + }, + "type": "array" + }, + "id": { + "description": "Unique identifier for the object.", + "maxLength": 5000, + "type": "string" + }, + "livemode": { + "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", + "type": "boolean" + }, + "object": { + "description": "String representing the object's type. Objects of the same type share the same value.", + "enum": [ + "tax.form" + ], + "type": "string" + }, + "payee": { + "$ref": "#/components/schemas/tax_reporting_resource_tax_form_payee" + }, + "type": { + "description": "The type of the tax form. An additional hash is included on the tax form with a name matching this value. It contains additional information specific to the tax form type.", + "enum": [ + "us_1099_k", + "us_1099_misc", + "us_1099_nec" + ], + "type": "string" + }, + "us_1099_k": { + "$ref": "#/components/schemas/tax_reporting_resource_tax_form_us1099_k" + }, + "us_1099_misc": { + "$ref": "#/components/schemas/tax_reporting_resource_tax_form_us1099_misc" + }, + "us_1099_nec": { + "$ref": "#/components/schemas/tax_reporting_resource_tax_form_us1099_nec" + } + }, + "required": [ + "corrected_by", + "created", + "filing_statuses", + "id", + "livemode", + "object", + "payee", + "type" + ], + "title": "TaxForm", + "type": "object", + "x-expandableFields": [ + "corrected_by", + "filing_statuses", + "payee", + "us_1099_k", + "us_1099_misc", + "us_1099_nec" + ], + "x-resourceId": "tax.form", + "x-stripeOperations": [ + { + "method_name": "list", + "method_on": "service", + "method_type": "list", + "operation": "get", + "path": "/v1/tax/forms" + }, + { + "method_name": "retrieve", + "method_on": "service", + "method_type": "retrieve", + "operation": "get", + "path": "/v1/tax/forms/{id}" + }, + { + "method_name": "pdf", + "method_on": "service", + "method_type": "custom", + "operation": "get", + "path": "/v1/tax/forms/{id}/pdf" + } + ], + "x-stripeResource": { + "class_name": "Form", + "has_collection_class": true, + "in_package": "Tax", + "inner_classes": [ + "tax_reporting_resource_tax_form_filing_status", + "tax_reporting_resource_tax_form_payee", + "tax_reporting_resource_tax_form_us1099_k", + "tax_reporting_resource_tax_form_us1099_misc", + "tax_reporting_resource_tax_form_us1099_nec" + ] + } + }, "tax.registration": { "description": "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).\n\nStripe 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).\n\nRelated guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api)", "properties": { @@ -53343,6 +53524,183 @@ "in_package": "" } }, + "tax_reporting_resource_tax_form_filing_status": { + "description": "", + "properties": { + "effective_at": { + "description": "Time when the filing status was updated.", + "format": "unix-time", + "type": "integer" + }, + "jurisdiction": { + "$ref": "#/components/schemas/tax_reporting_resource_tax_form_filing_status_resource_jurisdiction" + }, + "value": { + "description": "The current status of the filed form.", + "enum": [ + "accepted", + "filed", + "rejected" + ], + "type": "string" + } + }, + "required": [ + "effective_at", + "jurisdiction", + "value" + ], + "title": "TaxReportingResourceTaxFormFilingStatus", + "type": "object", + "x-expandableFields": [ + "jurisdiction" + ], + "x-stripeResource": { + "class_name": "FilingStatus", + "in_class": "tax.form", + "inner_classes": [ + "tax_reporting_resource_tax_form_filing_status_resource_jurisdiction" + ] + } + }, + "tax_reporting_resource_tax_form_filing_status_resource_jurisdiction": { + "description": "", + "properties": { + "country": { + "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). Always `US`.", + "maxLength": 5000, + "type": "string" + }, + "level": { + "description": "Indicates the level of the jurisdiction where the form was filed.", + "enum": [ + "country", + "state" + ], + "type": "string" + }, + "state": { + "description": "[ISO 3166-2 U.S. state code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix, if any. For example, \"NY\" for New York, United States.", + "maxLength": 5000, + "nullable": true, + "type": "string" + } + }, + "required": [ + "country", + "level", + "state" + ], + "title": "TaxReportingResourceTaxFormFilingStatusResourceJurisdiction", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "Jurisdiction", + "in_class": "tax_reporting_resource_tax_form_filing_status" + } + }, + "tax_reporting_resource_tax_form_payee": { + "description": "", + "properties": { + "account": { + "anyOf": [ + { + "maxLength": 5000, + "type": "string" + }, + { + "$ref": "#/components/schemas/account" + } + ], + "description": "The ID of the payee's Stripe account.", + "nullable": true, + "x-expansionResources": { + "oneOf": [ + { + "$ref": "#/components/schemas/account" + } + ] + } + }, + "type": { + "description": "Always `account`.", + "enum": [ + "account" + ], + "type": "string" + } + }, + "required": [ + "account", + "type" + ], + "title": "TaxReportingResourceTaxFormPayee", + "type": "object", + "x-expandableFields": [ + "account" + ], + "x-stripeResource": { + "class_name": "Payee", + "in_class": "tax.form" + } + }, + "tax_reporting_resource_tax_form_us1099_k": { + "description": "", + "properties": { + "reporting_year": { + "description": "Year represented by the information reported on the tax form.", + "type": "integer" + } + }, + "required": [ + "reporting_year" + ], + "title": "TaxReportingResourceTaxFormUS1099K", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "US1099K", + "in_class": "tax.form" + } + }, + "tax_reporting_resource_tax_form_us1099_misc": { + "description": "", + "properties": { + "reporting_year": { + "description": "Year represented by the information reported on the tax form.", + "type": "integer" + } + }, + "required": [ + "reporting_year" + ], + "title": "TaxReportingResourceTaxFormUS1099MISC", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "US1099MISC", + "in_class": "tax.form" + } + }, + "tax_reporting_resource_tax_form_us1099_nec": { + "description": "", + "properties": { + "reporting_year": { + "description": "Year represented by the information reported on the tax form.", + "type": "integer" + } + }, + "required": [ + "reporting_year" + ], + "title": "TaxReportingResourceTaxFormUS1099NEC", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "US1099NEC", + "in_class": "tax.form" + } + }, "terminal.configuration": { "description": "A Configurations object represents how features should be configured for terminal readers.", "properties": { @@ -59561,7 +59919,7 @@ "description": "The Stripe REST API. Please see https://stripe.com/docs/api for more details.", "termsOfService": "https://stripe.com/us/terms/", "title": "Stripe API", - "version": "2022-11-15; embedded_connect_beta=v1; server_side_confirmation_beta=v1; orders_beta=v4; gift_cards_beta=v1; tax_calc_beta=v3; tax_txns_beta=v2; tax_regs_beta=v2; unified_accounts_beta=v1; terminal_collect_inputs_beta=v1; terminal_collect_confirm_beta=v1; financial_connections_transactions_beta=v1; payment_method_configs_api_beta=v1; specify_payment_method_config_beta=v1", + "version": "2022-11-15; embedded_connect_beta=v2; server_side_confirmation_beta=v1; orders_beta=v4; gift_cards_beta=v1; tax_calc_beta=v3; tax_txns_beta=v2; tax_regs_beta=v2; unified_accounts_beta=v1; terminal_collect_inputs_beta=v1; terminal_collect_confirm_beta=v1; retrieve_tax_forms_beta=v1; financial_connections_transactions_beta=v1; payment_method_configs_api_beta=v1; specify_payment_method_config_beta=v1", "x-stripeSpecFilename": "spec3.beta.sdk" }, "openapi": "3.0.0", @@ -59937,7 +60295,7 @@ } }, "post": { - "description": "
With Connect, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform.
\n\nIf you’ve already collected information for your connected accounts, you can pre-fill that information when\ncreating the account. Connect Onboarding won’t ask for the pre-filled information during account onboarding.\nYou can pre-fill any information on the account.
", + "description": "With Connect, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform.
\n\nIf 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": { @@ -60000,6 +60358,25 @@ "maxLength": 4, "type": "string" }, + "monthly_estimated_revenue": { + "description": "An estimate of the monthly revenue of the business. Only accepted for accounts in Brazil and India.", + "properties": { + "amount": { + "description": "A non-negative integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", + "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" + } + }, + "required": [ + "amount", + "currency" + ], + "title": "monthly_estimated_revenue_specs", + "type": "object" + }, "name": { "description": "The customer-facing business name.", "maxLength": 5000, @@ -61806,6 +62183,25 @@ "maxLength": 4, "type": "string" }, + "monthly_estimated_revenue": { + "description": "An estimate of the monthly revenue of the business. Only accepted for accounts in Brazil and India.", + "properties": { + "amount": { + "description": "A non-negative integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", + "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" + } + }, + "required": [ + "amount", + "currency" + ], + "title": "monthly_estimated_revenue_specs", + "type": "object" + }, "name": { "description": "The customer-facing business name.", "maxLength": 5000, @@ -72481,6 +72877,11 @@ ], "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_options": { "description": "Payment-method-specific configuration.", "properties": { @@ -133021,6 +133422,11 @@ "maxLength": 5000, "type": "string" }, + "payment_method_configuration": { + "description": "The ID of the payment method configuration to use with this Setup Intent.", + "maxLength": 100, + "type": "string" + }, "payment_method_data": { "description": "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)\nvalue in the SetupIntent.", "properties": { @@ -134224,6 +134630,11 @@ "maxLength": 5000, "type": "string" }, + "payment_method_configuration": { + "description": "The ID of the payment method configuration to use with this SetupIntent.", + "maxLength": 100, + "type": "string" + }, "payment_method_data": { "description": "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)\nvalue in the SetupIntent.", "properties": { @@ -146760,6 +147171,313 @@ } } }, + "/v1/tax/forms": { + "get": { + "description": "Returns a list of tax forms which were previously created. The tax forms are returned in sorted order, with the oldest tax forms appearing first.
", + "operationId": "GetTaxForms", + "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": "The payee whose volume is represented on the tax form.", + "explode": true, + "in": "query", + "name": "payee", + "required": true, + "schema": { + "properties": { + "account": { + "description": "The ID of the Stripe account whose forms will be retrieved.", + "maxLength": 5000, + "type": "string" + }, + "type": { + "description": "Specifies the payee type. Always `account`.", + "enum": [ + "account" + ], + "type": "string" + } + }, + "required": [ + "type" + ], + "title": "payee_params", + "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" + }, + { + "description": "An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future tax form types. If your integration expects only one type of tax form in the response, make sure to provide a type value in the request.", + "in": "query", + "name": "type", + "required": false, + "schema": { + "enum": [ + "us_1099_k", + "us_1099_misc", + "us_1099_nec" + ], + "type": "string" + }, + "style": "form" + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "encoding": {}, + "schema": { + "additionalProperties": false, + "properties": {}, + "type": "object" + } + } + }, + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "description": "", + "properties": { + "data": { + "description": "Details about each object.", + "items": { + "$ref": "#/components/schemas/tax.form" + }, + "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" + ], + "title": "TaxReportingResourceTaxFormList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/tax/forms/{id}": { + "get": { + "description": "Retrieves the details of a tax form that has previously been created. Supply the unique tax form ID that was returned from your previous request, and Stripe will return the corresponding tax form information.
", + "operationId": "GetTaxFormsId", + "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" + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "encoding": {}, + "schema": { + "additionalProperties": false, + "properties": {}, + "type": "object" + } + } + }, + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/tax.form" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/tax/forms/{id}/pdf": { + "get": { + "description": "Download the PDF for a tax form.
", + "operationId": "GetTaxFormsIdPdf", + "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" + } + ], + "requestBody": { + "content": { + "application/x-www-form-urlencoded": { + "encoding": {}, + "schema": { + "additionalProperties": false, + "properties": {}, + "type": "object" + } + } + }, + "required": false + }, + "responses": { + "200": { + "content": { + "application/pdf": { + "schema": { + "format": "binary", + "type": "string" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, "/v1/tax/registrations": { "get": { "description": "Returns a list of Tax Registration
objects.
With Connect, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform.
\n\nIf you’ve already collected information for your connected accounts, you can pre-fill that information when\ncreating the account. Connect Onboarding won’t ask for the pre-filled information during account onboarding.\nYou can pre-fill any information on the account.
", + "description": "With Connect, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform.
\n\nIf 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": { @@ -42728,6 +42752,22 @@ "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" @@ -44238,6 +44278,22 @@ "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"