Stripe: Create a tax location
Stripe tax.postTaxLocations: arguments, response, policy and SDK examples.
← Tax operations · Get started
Operation stripe.posttaxlocations
Provider route: POST /v1/tax/locations. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/stripe with npm, or alter-sdk-stripe with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { StripeIntegration } from "@alter-ai/stripe";
async function execute(input: Parameters<StripeIntegration["tax"]["postTaxLocations"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new StripeIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.tax.postTaxLocations(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_stripe import StripeIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = StripeIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.tax.post_tax_locations(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
headers | object | Optional | Additional keys: not allowed |
headers.Idempotency-Key | string | Optional | Minimum length: 1 Maximum length: 255 |
body | object | Required within parent | Additional keys: not allowed |
body.address | object | Required within parent | The physical address of the tax location. |
body.address.city | JSON | Optional | |
body.address.city (anyOf 1) | string | Alternative | Maximum length: 5000 |
body.address.city (anyOf 2) | string | Alternative | One of: |
body.address.country | string | Required within parent | Maximum length: 5000 |
body.address.line1 | JSON | Optional | |
body.address.line1 (anyOf 1) | string | Alternative | Maximum length: 5000 |
body.address.line1 (anyOf 2) | string | Alternative | One of: |
body.address.line2 | JSON | Optional | |
body.address.line2 (anyOf 1) | string | Alternative | Maximum length: 5000 |
body.address.line2 (anyOf 2) | string | Alternative | One of: |
body.address.postal_code | JSON | Optional | |
body.address.postal_code (anyOf 1) | string | Alternative | Maximum length: 5000 |
body.address.postal_code (anyOf 2) | string | Alternative | One of: |
body.address.state | JSON | Optional | |
body.address.state (anyOf 1) | string | Alternative | Maximum length: 5000 |
body.address.state (anyOf 2) | string | Alternative | One of: |
body.description | string | Optional | Details to identify the tax location by its venue, types of events held, or available services, such as “A spacious auditorium suitable for large concerts and events.”. Maximum length: 5000 |
body.expand | array | Optional | Specifies which fields in the response should be expanded. |
body.expand[] | string | Each item | Maximum length: 5000 |
body.type | string | Required within parent | The type of tax location. The only supported value is “performance”. One of: performance |
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Create a tax location — response body |
Referenced models: Create a tax location — response body
Schemas
Section titled “Schemas”Create a tax location — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Tax locations represent venues for services, tickets, or other product types. |
address | Model | Required within parent | Expand Create a Location — response body — address |
description | JSON | Optional | |
description (anyOf 1) | string | Alternative | A descriptive text providing additional context about the tax location. This can include information about the venue, types of events held, services available, or any relevant details for better identification (for example, "A spacious auditorium suitable for large concerts and events."). Maximum length: 5000 |
description (anyOf 2) | null | Alternative | |
id | string | Required within parent | Unique identifier for the object. Maximum length: 5000 |
livemode | boolean | Required within parent | If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. |
object | string | Required within parent | String representing the object's type. Objects of the same type share the same value. Known values: tax.location |
type | string | Required within parent | The type of tax location to be defined. Currently the only option is `performance`. Known values: performance |
Referenced models: Create a Location — response body — address
Create a Location — response body — address
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
city | JSON | Optional | |
city (anyOf 1) | string | Alternative | City, district, suburb, town, or village. Maximum length: 5000 |
city (anyOf 2) | null | Alternative | |
country | JSON | Optional | |
country (anyOf 1) | string | Alternative | Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). Maximum length: 5000 |
country (anyOf 2) | null | Alternative | |
line1 | JSON | Optional | |
line1 (anyOf 1) | string | Alternative | Address line 1, such as the street, PO Box, or company name. Maximum length: 5000 |
line1 (anyOf 2) | null | Alternative | |
line2 | JSON | Optional | |
line2 (anyOf 1) | string | Alternative | Address line 2, such as the apartment, suite, unit, or building. Maximum length: 5000 |
line2 (anyOf 2) | null | Alternative | |
postal_code | JSON | Optional | |
postal_code (anyOf 1) | string | Alternative | ZIP or postal code. Maximum length: 5000 |
postal_code (anyOf 2) | null | Alternative | |
state | JSON | Optional | |
state (anyOf 1) | string | Alternative | State, county, province, or region ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)). Maximum length: 5000 |
state (anyOf 2) | null | Alternative |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: stripe.posttaxlocations. Catalog operation: PostTaxLocations. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Pinned headers: {"Stripe-Version": "2026-09-30.endive"}