diff --git a/embedded/openapi/spec3.beta.sdk.json b/embedded/openapi/spec3.beta.sdk.json index 8c6f13cd..978de728 100644 --- a/embedded/openapi/spec3.beta.sdk.json +++ b/embedded/openapi/spec3.beta.sdk.json @@ -8403,6 +8403,660 @@ "in_package": "" } }, + "climate.order": { + "description": "Orders represent your intent to purchase a particular Climate product. When you create an order, the\npayment is deducted from your merchant balance.", + "properties": { + "amount_fees": { + "description": "Total amount of [Frontier](https://frontierclimate.com/)'s service fees in the currency's smallest unit.", + "type": "integer" + }, + "amount_subtotal": { + "description": "Total amount of the carbon removal in the currency's smallest unit.", + "type": "integer" + }, + "amount_total": { + "description": "Total amount of the order including fees in the currency's smallest unit.", + "type": "integer" + }, + "beneficiary": { + "$ref": "#/components/schemas/climate_removals_beneficiary" + }, + "canceled_at": { + "description": "Time at which the order was canceled. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "cancellation_reason": { + "description": "Reason for the cancellation of this order.", + "enum": [ + "expired", + "product_unavailable", + "requested" + ], + "nullable": true, + "type": "string", + "x-stripeBypassValidation": true + }, + "certificate": { + "description": "For delivered orders, a URL to a delivery certificate for the order.", + "maxLength": 5000, + "nullable": true, + "type": "string" + }, + "confirmed_at": { + "description": "Time at which the order was confirmed. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "created": { + "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "currency": { + "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase, representing the currency for this order.", + "maxLength": 5000, + "type": "string" + }, + "delayed_at": { + "description": "Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "delivered_at": { + "description": "Time at which the order was delivered. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "delivery_details": { + "description": "Details about the delivery of carbon removal for this order.", + "items": { + "$ref": "#/components/schemas/climate_removals_order_deliveries" + }, + "type": "array" + }, + "expected_delivery_year": { + "description": "The year this order is expected to be delivered.", + "nullable": true, + "type": "integer" + }, + "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" + }, + "metadata": { + "additionalProperties": { + "maxLength": 500, + "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.", + "type": "object" + }, + "metric_tons": { + "description": "Quantity of carbon removal that is included in this order.", + "format": "decimal", + "type": "string" + }, + "object": { + "description": "String representing the object's type. Objects of the same type share the same value.", + "enum": [ + "climate.order" + ], + "type": "string" + }, + "product": { + "anyOf": [ + { + "maxLength": 5000, + "type": "string" + }, + { + "$ref": "#/components/schemas/climate.product" + } + ], + "description": "Unique ID for the Climate `Product` this order is purchasing.", + "x-expansionResources": { + "oneOf": [ + { + "$ref": "#/components/schemas/climate.product" + } + ] + } + }, + "product_substituted_at": { + "description": "Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "status": { + "description": "The current status of this order.", + "enum": [ + "awaiting_funds", + "canceled", + "confirmed", + "delivered", + "open" + ], + "type": "string" + } + }, + "required": [ + "amount_fees", + "amount_subtotal", + "amount_total", + "canceled_at", + "cancellation_reason", + "certificate", + "confirmed_at", + "created", + "currency", + "delayed_at", + "delivered_at", + "delivery_details", + "expected_delivery_year", + "id", + "livemode", + "metadata", + "metric_tons", + "object", + "product", + "product_substituted_at", + "status" + ], + "title": "ClimateRemovalsOrders", + "type": "object", + "x-expandableFields": [ + "beneficiary", + "delivery_details", + "product" + ], + "x-resourceId": "climate.order", + "x-stripeOperations": [ + { + "method_name": "retrieve", + "method_on": "service", + "method_type": "retrieve", + "operation": "get", + "path": "/v1/climate/orders/{order}" + }, + { + "method_name": "list", + "method_on": "service", + "method_type": "list", + "operation": "get", + "path": "/v1/climate/orders" + }, + { + "method_name": "create", + "method_on": "service", + "method_type": "create", + "operation": "post", + "path": "/v1/climate/orders" + }, + { + "method_name": "update", + "method_on": "service", + "method_type": "update", + "operation": "post", + "path": "/v1/climate/orders/{order}" + }, + { + "method_name": "cancel", + "method_on": "service", + "method_type": "custom", + "operation": "post", + "path": "/v1/climate/orders/{order}/cancel" + } + ], + "x-stripeResource": { + "class_name": "Order", + "has_collection_class": true, + "in_package": "Climate" + } + }, + "climate.order.canceled": { + "description": "Occurs when a Climate order is canceled.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.order" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.order.canceled" + } + }, + "climate.order.created": { + "description": "Occurs when a Climate order is created.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.order" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.order.created" + } + }, + "climate.order.delayed": { + "description": "Occurs when a Climate order is delayed.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.order" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.order.delayed" + } + }, + "climate.order.delivered": { + "description": "Occurs when a Climate order is delivered.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.order" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.order.delivered" + } + }, + "climate.order.product_substituted": { + "description": "Occurs when a Climate order's product is substituted for another.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.order" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.order.product_substituted" + } + }, + "climate.product": { + "description": "A Climate product represents a type of carbon removal unit available for reservation.\nYou can retrieve it to see the current price and availability.", + "properties": { + "created": { + "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "current_prices_per_metric_ton": { + "additionalProperties": { + "$ref": "#/components/schemas/climate_removals_products_price" + }, + "description": "Current prices for a metric ton of carbon removal in a currency's smallest unit.", + "type": "object" + }, + "delivery_year": { + "description": "The year in which the carbon removal is expected to be delivered.", + "nullable": true, + "type": "integer" + }, + "id": { + "description": "Unique identifier for the object. For convenience, Climate product IDs are human-readable strings\nthat start with `climsku_`. See [carbon removal inventory](https://stripe.com/docs/climate/orders/carbon-removal-inventory)\nfor a list of available carbon removal products.", + "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" + }, + "metric_tons_available": { + "description": "The quantity of metric tons available for reservation.", + "format": "decimal", + "type": "string" + }, + "name": { + "description": "The Climate product's name.", + "maxLength": 5000, + "type": "string" + }, + "object": { + "description": "String representing the object's type. Objects of the same type share the same value.", + "enum": [ + "climate.product" + ], + "type": "string" + }, + "suppliers": { + "description": "The carbon removal suppliers that fulfill orders for this Climate product.", + "items": { + "$ref": "#/components/schemas/climate.supplier" + }, + "type": "array" + } + }, + "required": [ + "created", + "current_prices_per_metric_ton", + "delivery_year", + "id", + "livemode", + "name", + "object", + "suppliers" + ], + "title": "ClimateRemovalsProducts", + "type": "object", + "x-expandableFields": [ + "current_prices_per_metric_ton", + "suppliers" + ], + "x-resourceId": "climate.product", + "x-stripeOperations": [ + { + "method_name": "retrieve", + "method_on": "service", + "method_type": "retrieve", + "operation": "get", + "path": "/v1/climate/products/{product}" + }, + { + "method_name": "list", + "method_on": "service", + "method_type": "list", + "operation": "get", + "path": "/v1/climate/products" + } + ], + "x-stripeResource": { + "class_name": "Product", + "has_collection_class": true, + "in_package": "Climate" + } + }, + "climate.product.created": { + "description": "Occurs when a Climate product is created.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.product" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.product.created" + } + }, + "climate.product.pricing_updated": { + "description": "Occurs when a Climate product is updated.", + "properties": { + "object": { + "$ref": "#/components/schemas/climate.product" + } + }, + "required": [ + "object" + ], + "type": "object", + "x-expandableFields": [], + "x-stripeEvent": { + "type": "climate.product.pricing_updated" + } + }, + "climate.supplier": { + "description": "A supplier of carbon removal.", + "properties": { + "id": { + "description": "Unique identifier for the object.", + "maxLength": 5000, + "type": "string" + }, + "info_url": { + "description": "Link to a webpage to learn more about the supplier.", + "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" + }, + "locations": { + "description": "The locations in which this supplier operates.", + "items": { + "$ref": "#/components/schemas/climate_removals_location" + }, + "type": "array" + }, + "name": { + "description": "Name of this carbon removal supplier.", + "maxLength": 5000, + "type": "string" + }, + "object": { + "description": "String representing the object’s type. Objects of the same type share the same value.", + "enum": [ + "climate.supplier" + ], + "type": "string" + }, + "removal_pathway": { + "description": "The scientific pathway used for carbon removal.", + "enum": [ + "biomass_carbon_removal_and_storage", + "direct_air_capture", + "various" + ], + "type": "string" + } + }, + "required": [ + "id", + "info_url", + "livemode", + "locations", + "name", + "object", + "removal_pathway" + ], + "title": "ClimateRemovalsSuppliers", + "type": "object", + "x-expandableFields": [ + "locations" + ], + "x-resourceId": "climate.supplier", + "x-stripeOperations": [ + { + "method_name": "retrieve", + "method_on": "service", + "method_type": "retrieve", + "operation": "get", + "path": "/v1/climate/suppliers/{supplier}" + }, + { + "method_name": "list", + "method_on": "service", + "method_type": "list", + "operation": "get", + "path": "/v1/climate/suppliers" + } + ], + "x-stripeResource": { + "class_name": "Supplier", + "has_collection_class": true, + "in_package": "Climate" + } + }, + "climate_removals_beneficiary": { + "description": "", + "properties": { + "public_name": { + "description": "Publicly displayable name for the end beneficiary of carbon removal.", + "maxLength": 5000, + "type": "string" + } + }, + "required": [ + "public_name" + ], + "title": "ClimateRemovalsBeneficiary", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "Beneficiary", + "in_package": "" + } + }, + "climate_removals_location": { + "description": "", + "properties": { + "city": { + "description": "The city where the supplier is located.", + "maxLength": 5000, + "nullable": true, + "type": "string" + }, + "country": { + "description": "Two-letter ISO code representing the country where the supplier is located.", + "maxLength": 5000, + "type": "string" + }, + "latitude": { + "description": "The geographic latitude where the supplier is located.", + "nullable": true, + "type": "number" + }, + "longitude": { + "description": "The geographic longitude where the supplier is located.", + "nullable": true, + "type": "number" + }, + "region": { + "description": "The state/county/province/region where the supplier is located.", + "maxLength": 5000, + "nullable": true, + "type": "string" + } + }, + "required": [ + "city", + "country", + "latitude", + "longitude", + "region" + ], + "title": "ClimateRemovalsLocation", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "Location", + "in_package": "" + } + }, + "climate_removals_order_deliveries": { + "description": "The delivery of a specified quantity of carbon for an order.", + "properties": { + "delivered_at": { + "description": "Time at which the delivery occurred. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "location": { + "anyOf": [ + { + "$ref": "#/components/schemas/climate_removals_location" + } + ], + "description": "Specific location of this delivery.", + "nullable": true + }, + "metric_tons": { + "description": "Quantity of carbon removal supplied by this delivery.", + "maxLength": 5000, + "type": "string" + }, + "registry_url": { + "description": "Once retired, a URL to the registry entry for the tons from this delivery.", + "maxLength": 5000, + "nullable": true, + "type": "string" + }, + "supplier": { + "$ref": "#/components/schemas/climate.supplier" + } + }, + "required": [ + "delivered_at", + "location", + "metric_tons", + "registry_url", + "supplier" + ], + "title": "ClimateRemovalsOrderDeliveries", + "type": "object", + "x-expandableFields": [ + "location", + "supplier" + ], + "x-stripeResource": { + "class_name": "OrderDelivery", + "in_package": "climate" + } + }, + "climate_removals_products_price": { + "description": "", + "properties": { + "amount_fees": { + "description": "Fees for one metric ton of carbon removal in the currency's smallest unit.", + "type": "integer" + }, + "amount_subtotal": { + "description": "Subtotal for one metric ton of carbon removal (excluding fees) in the currency's smallest unit.", + "type": "integer" + }, + "amount_total": { + "description": "Total for one metric ton of carbon removal (including fees) in the currency's smallest unit.", + "type": "integer" + } + }, + "required": [ + "amount_fees", + "amount_subtotal", + "amount_total" + ], + "title": "ClimateRemovalsProductsPrice", + "type": "object", + "x-expandableFields": [], + "x-stripeResource": { + "class_name": "ProductPrice", + "in_package": "climate" + } + }, "confirmation_token": { "description": "ConfirmationTokens help transport client side data collected by Stripe JS over\nto your server for confirming a PaymentIntent or SetupIntent. If the confirmation\nis successful, values present on the ConfirmationToken are written onto the Intent.", "properties": { @@ -85843,6 +86497,878 @@ } } }, + "/v1/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.

", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsOrdersList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + }, + "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.

", + "operationId": "PostClimateOrders", + "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": { + "description": "Publicly displayable name for the end beneficiary of carbon removal.", + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/orders/{order}": { + "get": { + "description": "

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

", + "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" + } + ], + "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/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + }, + "post": { + "description": "

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

", + "operationId": "PostClimateOrdersOrder", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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" + } + ], + "description": "Publicly displayable name for the end beneficiary of carbon removal." + } + }, + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/orders/{order}/cancel": { + "post": { + "description": "

Cancels a Climate order. You can cancel an order within 30 days of creation. Stripe refunds the\nreservation amount_subtotal, but not the amount_fees 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.

", + "operationId": "PostClimateOrdersOrderCancel", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/products": { + "get": { + "description": "

Lists all available Climate product objects.

", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsProductsList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/products/{product}": { + "get": { + "description": "

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

", + "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" + } + ], + "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/climate.product" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/suppliers": { + "get": { + "description": "

Lists all available Climate supplier objects.

", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsSuppliersList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/suppliers/{supplier}": { + "get": { + "description": "

Retrieves a Climate supplier object.

", + "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" + } + ], + "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/climate.supplier" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, "/v1/confirmation_tokens/{confirmation_token}": { "get": { "description": "

Retrieves an existing ConfirmationToken object

", @@ -88823,6 +90349,14 @@ } ], "description": "A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes." + }, + "validate_location": { + "description": "A flag that indicates whether Stripe should validate the customer tax location.", + "enum": [ + "deferred", + "immediately" + ], + "type": "string" } }, "title": "tax_param", @@ -89598,6 +91132,14 @@ } ], "description": "A recent IP address of the customer used for tax reporting and tax location inference. Stripe recommends updating the IP address when a new PaymentMethod is attached or the address field on the customer is updated. We recommend against updating this field more frequently since it could result in unexpected tax location/reporting outcomes." + }, + "validate_location": { + "description": "A flag that indicates whether Stripe should validate the customer tax location.", + "enum": [ + "deferred", + "immediately" + ], + "type": "string" } }, "title": "tax_param", diff --git a/embedded/openapi/spec3.json b/embedded/openapi/spec3.json index 21ec465b..ef88aeaa 100644 --- a/embedded/openapi/spec3.json +++ b/embedded/openapi/spec3.json @@ -5515,6 +5515,433 @@ "financial_connections" ] }, + "climate.order": { + "description": "Orders represent your intent to purchase a particular Climate product. When you create an order, the\npayment is deducted from your merchant balance.", + "properties": { + "amount_fees": { + "description": "Total amount of [Frontier](https://frontierclimate.com/)'s service fees in the currency's smallest unit.", + "type": "integer" + }, + "amount_subtotal": { + "description": "Total amount of the carbon removal in the currency's smallest unit.", + "type": "integer" + }, + "amount_total": { + "description": "Total amount of the order including fees in the currency's smallest unit.", + "type": "integer" + }, + "beneficiary": { + "$ref": "#/components/schemas/climate_removals_beneficiary" + }, + "canceled_at": { + "description": "Time at which the order was canceled. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "cancellation_reason": { + "description": "Reason for the cancellation of this order.", + "enum": [ + "expired", + "product_unavailable", + "requested" + ], + "nullable": true, + "type": "string", + "x-stripeBypassValidation": true + }, + "certificate": { + "description": "For delivered orders, a URL to a delivery certificate for the order.", + "maxLength": 5000, + "nullable": true, + "type": "string" + }, + "confirmed_at": { + "description": "Time at which the order was confirmed. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "created": { + "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "currency": { + "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase, representing the currency for this order.", + "maxLength": 5000, + "type": "string" + }, + "delayed_at": { + "description": "Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "delivered_at": { + "description": "Time at which the order was delivered. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "delivery_details": { + "description": "Details about the delivery of carbon removal for this order.", + "items": { + "$ref": "#/components/schemas/climate_removals_order_deliveries" + }, + "type": "array" + }, + "expected_delivery_year": { + "description": "The year this order is expected to be delivered.", + "nullable": true, + "type": "integer" + }, + "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" + }, + "metadata": { + "additionalProperties": { + "maxLength": 500, + "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.", + "type": "object" + }, + "metric_tons": { + "description": "Quantity of carbon removal that is included in this order.", + "format": "decimal", + "type": "string" + }, + "object": { + "description": "String representing the object's type. Objects of the same type share the same value.", + "enum": [ + "climate.order" + ], + "type": "string" + }, + "product": { + "anyOf": [ + { + "maxLength": 5000, + "type": "string" + }, + { + "$ref": "#/components/schemas/climate.product" + } + ], + "description": "Unique ID for the Climate `Product` this order is purchasing.", + "x-expansionResources": { + "oneOf": [ + { + "$ref": "#/components/schemas/climate.product" + } + ] + } + }, + "product_substituted_at": { + "description": "Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "nullable": true, + "type": "integer" + }, + "status": { + "description": "The current status of this order.", + "enum": [ + "awaiting_funds", + "canceled", + "confirmed", + "delivered", + "open" + ], + "type": "string" + } + }, + "required": [ + "amount_fees", + "amount_subtotal", + "amount_total", + "created", + "currency", + "delivery_details", + "id", + "livemode", + "metadata", + "metric_tons", + "object", + "product", + "status" + ], + "title": "ClimateRemovalsOrders", + "type": "object", + "x-expandableFields": [ + "beneficiary", + "delivery_details", + "product" + ], + "x-resourceId": "climate.order" + }, + "climate.product": { + "description": "A Climate product represents a type of carbon removal unit available for reservation.\nYou can retrieve it to see the current price and availability.", + "properties": { + "created": { + "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "current_prices_per_metric_ton": { + "additionalProperties": { + "$ref": "#/components/schemas/climate_removals_products_price" + }, + "description": "Current prices for a metric ton of carbon removal in a currency's smallest unit.", + "type": "object" + }, + "delivery_year": { + "description": "The year in which the carbon removal is expected to be delivered.", + "nullable": true, + "type": "integer" + }, + "id": { + "description": "Unique identifier for the object. For convenience, Climate product IDs are human-readable strings\nthat start with `climsku_`. See [carbon removal inventory](https://stripe.com/docs/climate/orders/carbon-removal-inventory)\nfor a list of available carbon removal products.", + "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" + }, + "metric_tons_available": { + "description": "The quantity of metric tons available for reservation.", + "format": "decimal", + "type": "string" + }, + "name": { + "description": "The Climate product's name.", + "maxLength": 5000, + "type": "string" + }, + "object": { + "description": "String representing the object's type. Objects of the same type share the same value.", + "enum": [ + "climate.product" + ], + "type": "string" + }, + "suppliers": { + "description": "The carbon removal suppliers that fulfill orders for this Climate product.", + "items": { + "$ref": "#/components/schemas/climate.supplier" + }, + "type": "array" + } + }, + "required": [ + "created", + "current_prices_per_metric_ton", + "id", + "livemode", + "name", + "object", + "suppliers" + ], + "title": "ClimateRemovalsProducts", + "type": "object", + "x-expandableFields": [ + "current_prices_per_metric_ton", + "suppliers" + ], + "x-resourceId": "climate.product" + }, + "climate.supplier": { + "description": "A supplier of carbon removal.", + "properties": { + "id": { + "description": "Unique identifier for the object.", + "maxLength": 5000, + "type": "string" + }, + "info_url": { + "description": "Link to a webpage to learn more about the supplier.", + "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" + }, + "locations": { + "description": "The locations in which this supplier operates.", + "items": { + "$ref": "#/components/schemas/climate_removals_location" + }, + "type": "array" + }, + "name": { + "description": "Name of this carbon removal supplier.", + "maxLength": 5000, + "type": "string" + }, + "object": { + "description": "String representing the object’s type. Objects of the same type share the same value.", + "enum": [ + "climate.supplier" + ], + "type": "string" + }, + "removal_pathway": { + "description": "The scientific pathway used for carbon removal.", + "enum": [ + "biomass_carbon_removal_and_storage", + "direct_air_capture", + "various" + ], + "type": "string" + } + }, + "required": [ + "id", + "info_url", + "livemode", + "locations", + "name", + "object", + "removal_pathway" + ], + "title": "ClimateRemovalsSuppliers", + "type": "object", + "x-expandableFields": [ + "locations" + ], + "x-resourceId": "climate.supplier" + }, + "climate_removals_beneficiary": { + "description": "", + "properties": { + "public_name": { + "description": "Publicly displayable name for the end beneficiary of carbon removal.", + "maxLength": 5000, + "type": "string" + } + }, + "required": [ + "public_name" + ], + "title": "ClimateRemovalsBeneficiary", + "type": "object", + "x-expandableFields": [] + }, + "climate_removals_location": { + "description": "", + "properties": { + "city": { + "description": "The city where the supplier is located.", + "maxLength": 5000, + "nullable": true, + "type": "string" + }, + "country": { + "description": "Two-letter ISO code representing the country where the supplier is located.", + "maxLength": 5000, + "type": "string" + }, + "latitude": { + "description": "The geographic latitude where the supplier is located.", + "nullable": true, + "type": "number" + }, + "longitude": { + "description": "The geographic longitude where the supplier is located.", + "nullable": true, + "type": "number" + }, + "region": { + "description": "The state/county/province/region where the supplier is located.", + "maxLength": 5000, + "nullable": true, + "type": "string" + } + }, + "required": [ + "country" + ], + "title": "ClimateRemovalsLocation", + "type": "object", + "x-expandableFields": [] + }, + "climate_removals_order_deliveries": { + "description": "The delivery of a specified quantity of carbon for an order.", + "properties": { + "delivered_at": { + "description": "Time at which the delivery occurred. Measured in seconds since the Unix epoch.", + "format": "unix-time", + "type": "integer" + }, + "location": { + "anyOf": [ + { + "$ref": "#/components/schemas/climate_removals_location" + } + ], + "description": "Specific location of this delivery.", + "nullable": true + }, + "metric_tons": { + "description": "Quantity of carbon removal supplied by this delivery.", + "maxLength": 5000, + "type": "string" + }, + "registry_url": { + "description": "Once retired, a URL to the registry entry for the tons from this delivery.", + "maxLength": 5000, + "nullable": true, + "type": "string" + }, + "supplier": { + "$ref": "#/components/schemas/climate.supplier" + } + }, + "required": [ + "delivered_at", + "metric_tons", + "supplier" + ], + "title": "ClimateRemovalsOrderDeliveries", + "type": "object", + "x-expandableFields": [ + "location", + "supplier" + ] + }, + "climate_removals_products_price": { + "description": "", + "properties": { + "amount_fees": { + "description": "Fees for one metric ton of carbon removal in the currency's smallest unit.", + "type": "integer" + }, + "amount_subtotal": { + "description": "Subtotal for one metric ton of carbon removal (excluding fees) in the currency's smallest unit.", + "type": "integer" + }, + "amount_total": { + "description": "Total for one metric ton of carbon removal (including fees) in the currency's smallest unit.", + "type": "integer" + } + }, + "required": [ + "amount_fees", + "amount_subtotal", + "amount_total" + ], + "title": "ClimateRemovalsProductsPrice", + "type": "object", + "x-expandableFields": [] + }, "connect_collection_transfer": { "description": "", "properties": { @@ -60477,6 +60904,1426 @@ } } }, + "/v1/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.

", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsOrdersList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + }, + "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.

", + "operationId": "PostClimateOrders", + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/orders/{order}": { + "get": { + "description": "

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

", + "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" + } + ], + "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/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + }, + "post": { + "description": "

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

", + "operationId": "PostClimateOrdersOrder", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/orders/{order}/cancel": { + "post": { + "description": "

Cancels a Climate order. You can cancel an order within 30 days of creation. Stripe refunds the\nreservation amount_subtotal, but not the amount_fees 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.

", + "operationId": "PostClimateOrdersOrderCancel", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/products": { + "get": { + "description": "

Lists all available Climate product objects.

", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsProductsList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/products/{product}": { + "get": { + "description": "

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

", + "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" + } + ], + "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/climate.product" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/reservations": { + "get": { + "description": "

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

", + "operationId": "GetClimateReservations", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsOrdersList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + }, + "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.

", + "operationId": "PostClimateReservations", + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/reservations/{order}": { + "get": { + "description": "

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

", + "operationId": "GetClimateReservationsOrder", + "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" + } + ], + "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/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + }, + "post": { + "description": "

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

", + "operationId": "PostClimateReservationsOrder", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/reservations/{order}/cancel": { + "post": { + "description": "

Cancels a Climate order. You can cancel an order within 30 days of creation. Stripe refunds the\nreservation amount_subtotal, but not the amount_fees 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.

", + "operationId": "PostClimateReservationsOrderCancel", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/reservations/{order}/confirm": { + "post": { + "description": "

Confirms a Climate order. When you confirm your order, we immediately deduct the funds from your\nStripe balance.

", + "operationId": "PostClimateReservationsOrderConfirm", + "parameters": [ + { + "description": "Unique identifier of the order.", + "in": "path", + "name": "order", + "required": true, + "schema": { + "maxLength": 5000, + "type": "string" + }, + "style": "simple" + } + ], + "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": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/climate.order" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/suppliers": { + "get": { + "description": "

Lists all available Climate supplier objects.

", + "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" + } + ], + "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": { + "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" + ], + "title": "ClimateRemovalsSuppliersList", + "type": "object", + "x-expandableFields": [ + "data" + ] + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, + "/v1/climate/suppliers/{supplier}": { + "get": { + "description": "

Retrieves a Climate supplier object.

", + "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" + } + ], + "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/climate.supplier" + } + } + }, + "description": "Successful response." + }, + "default": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/error" + } + } + }, + "description": "Error response." + } + } + } + }, "/v1/country_specs": { "get": { "description": "

Lists all Country Spec objects available in the API.

", @@ -63099,6 +64946,13 @@ "type": "string" } ] + }, + "validate_location": { + "enum": [ + "deferred", + "immediately" + ], + "type": "string" } }, "title": "tax_param", @@ -63995,6 +65849,13 @@ "type": "string" } ] + }, + "validate_location": { + "enum": [ + "deferred", + "immediately" + ], + "type": "string" } }, "title": "tax_param",