> This page is for version API v3 (default).
> For other versions, use one of these documentation indexes:
> - API v3 (default): https://docs.taxcloud.com/api-v-3/llms.txt
> - API v1: https://docs.taxcloud.com/api-v-1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.taxcloud.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.taxcloud.com/_mcp/server.

# Create Order

POST https://api.v3.taxcloud.com/tax/connections/{connectionId}/orders
Content-Type: application/json

Create orders from marketplace transactions, pre-existing systems, or bulk uploads.

Reference: https://docs.taxcloud.com/api-reference/api-reference/sales-tax-api/orders/create-order

## Authentication

- `Authorization` header (bearer token, required) — This authentication type can be used to directly call the service.
- `X-API-KEY` header (required) — This authentication type is supported by using the provided API key for the merchant account.

## Request

### Path parameters

- `connectionId` (string, required) — represents the ID of a connection. It is used as a unique identifier for the connection

### Query parameters

- `addressAutocomplete` (enum, optional, default: none) — The specified addresses (origin, destination, or all) will be overridden with the first result from an address validation search
  - Allowed values: `none`, `origin`, `destination`, `all`

### Body (application/json)

This endpoint expects a CreateOrderRequest.

- `completedDate` (string, required) — The RFC3339 datetime string the order was shipped on, created a tax liability
- `currency` (Currency, required) — represents information about a currency including its code and denomination.
- `customerId` (string, required) — customerId in external system
- `destination` (Address, required) — the destination address of the order
- `lineItems` (list of CartItemWithTax, required)
- `orderId` (string, required) — orderId in external system
- `origin` (Address, required) — the origin address of the order
- `transactionDate` (string, required) — The RFC3339 datetime string the order was purchased on
- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `batchId` (string, optional) — Optional batch ID for grouping orders
- `channel` (string, optional) — what channel did this come from. Pass in one of amazon,ebay,walmart for tax exclusion
- `deliveredBySeller` (boolean, optional) — represents if the seller directly delivered the order.
- `discounts` (Discounts, optional) — Optional discounts to apply. If not provided, prices are consumed as is.
- `excludeFromFiling` (boolean, optional) — When true, the order is recorded but omitted from the filed sales tax return (no tax liability). Defaults to false. Typically for orders whose tax is filed elsewhere, e.g. a marketplace facilitator.
- `exemption` (Exemption, optional) — information about exemption on the order
- `kind` (enum, optional, default: order) — The kind of order, either credit or order. Defaults to order if not provided.
  - Allowed values: `credit`, `order`

## Response

### 201

Created

- `channel` (string, required, nullable) — what channel did this come from
- `connectionId` (string, required) — represents the ID of a connection. It is used as a unique identifier for the connection
- `currency` (CurrencyResponse, required) — represents information about a currency including its code and denomination.
- `customerId` (string, required) — customerId in external system
- `deliveredBySeller` (boolean, required) — represents if the seller directly delivered the order.
- `destination` (AddressResponse, required) — the destination address of the order
- `excludeFromFiling` (boolean, required, default: false) — Whether to exclude from filing
- `exemption` (Exemption, required) — information about exemption on the order
- `kind` (enum, required) — The kind of order, either credit or order. Defaults to order if not provided.
  - Allowed values: `credit`, `order`
- `lineItems` (list of CartItemWithTaxResponse, required)
- `orderId` (string, required) — orderId in external system
- `origin` (AddressResponse, required) — the origin address of the order
- `transactionDate` (string, required) — The RFC3339 datetime string the order was purchased on
- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `batchId` (string, optional) — Batch ID for grouping orders
- `completedDate` (string, optional) — The RFC3339 datetime string the order was shipped on, created a tax liability
- `refunds` (list of RefundTransactionResponse, optional) — refunds associated with this order when expand=refunds is specified

## Errors

### 400 Bad Request Error

Bad Request

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

### 401 Unauthorized Error

Unauthorized

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

### 403 Forbidden Error

Forbidden

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

### 404 Not Found Error

Not Found

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

### 422 Unprocessable Entity Error

Unprocessable Entity

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

### 429 Too Many Requests Error

Too Many Requests

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

### 500 Internal Server Error

Internal Server Error

- `$schema` (string, optional) — A URL to the JSON Schema for this object.
- `detail` (string, optional) — A human-readable explanation specific to this occurrence of the problem.
- `errors` (list of ErrorDetail, optional) — Optional list of individual error details
- `instance` (string, optional) — A URI reference that identifies the specific occurrence of the problem.
- `status` (long, optional) — HTTP status code
- `title` (string, optional) — A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
- `type` (string, optional, default: about:blank) — A URI reference to human-readable documentation for the error.

## Types

### Currency

- `currencyCode` (enum, optional, default: USD) — specifies the currency of the price of a cart item.
  - Allowed values: `USD`, `CAD`

### Address

- `city` (string, required) — City or post-town
- `line1` (string, required) — the first line of the address (e.g., street, PO Box, or building). Values longer than 50 characters will be automatically truncated.
- `state` (string, required) — Two-character state or province code (e.g., MN).
- `zip` (string, required) — Postal or ZIP code. For US addresses this must be a 5-digit ZIP code or ZIP+4 (e.g., 55401 or 55401-2427).
- `countryCode` (enum, optional, default: US) — CountryCode is a string field that represents the ISO 3166-1 alpha-2 code of a country. For example, US for the United States, GB for Great Britain etc. Default value is US.
  - Allowed values: `US`, `CA`
- `line2` (string, optional) — the second line of the address, if there is one (e.g., apartment or suite number). Values longer than 50 characters will be automatically truncated.

### CartItemWithTax

- `index` (long, required) — represents the index of a cart item. It is used to specify the position of the item within the cart.
- `itemId` (string, required) — the ID of a cart item. If the same itemId appears on multiple lines, the line is identified by itemId plus its index. Store both if you may later refund an individual line.
- `price` (double, required) — Price represents the price of a cart item (what tax is calculated on).
- `quantity` (double, required) — Quantity represents the quantity of a cart item. For quantities above the maximum, send a single line with quantity 1 and the extended (total) amount as the price.
- `tax` (Tax, required) — represents the tax information associated with a cart item.
- `productId` (string, optional) — ID of the product from the product catalog. Must match an existing product
- `tic` (long, optional) — Tic (Taxability Information Codes) defaults to 0 if none is sent

### Discounts

- `lineItemDiscounts` (list of LineItemDiscount, optional) — Discounts applied to specific line items. Applied before order-level discounts. Each discount must reference a valid itemId from the lineItems array.
- `orderDiscount` (OrderLevelDiscount, optional) — Discount applied to the entire order. Applied after line-item discounts. Shipping items (TICs 11010-11015) and Colorado retail delivery fees (TIC 11098) are excluded from order-level discount calculations. Prices in lineItems are pre-discount (original prices).

### Exemption

- `exemptionId` (string, optional, nullable) — represents the id of an exemption certificate used for a customer
- `isExempt` (boolean, optional, nullable) — is the customer exempt, if exemptionID is given isExempt is assumed true

### CurrencyResponse

- `currencyCode` (string, required) — specifies the currency of the price of a cart item.

### AddressResponse

- `city` (string, required) — City or post-town
- `countryCode` (string, required, default: US) — CountryCode is a string field that represents the ISO 3166-1 alpha-2 code of a country. For example, US for the United States, GB for Great Britain etc. Default and only currently accepted value is US.
- `line1` (string, required) — the first line of the address (e.g., street, PO Box, or building). Values longer than 50 characters will be automatically truncated.
- `state` (string, required) — State, province, county or other large territorial division.
- `zip` (string, required) — Postal or ZIP code.
- `line2` (string, optional) — the second line of the address, if there is one (e.g., apartment or suite number). Values longer than 50 characters will be automatically truncated.

### CartItemWithTaxResponse

- `index` (long, required) — represents the index of a cart item. It is used to specify the position of the item within the cart.
- `itemId` (string, required) — represents the ID of a cart item. With index, forms the key (itemId, index) that uniquely identifies this line within the cart.
- `originalPrice` (double, required) — Original price before discounts applied.
- `price` (double, required) — Price represents the discounted unit price of a cart item, if applicable (what tax is calculated on).
- `quantity` (double, required) — Quantity represents the quantity of a cart item.
- `tax` (Tax, required) — represents the tax information associated with a cart item.
- `tic` (long, required, nullable) — Tic (Taxability Information Codes) defaults to 0 if none is sent
- `productId` (string, optional, nullable) — ID of the product from the product catalog (e.g. SKU). Null if the line item has no associated product.

### RefundTransactionResponse

- `connectionId` (string, required) — represents the ID of a connection. It is used as a unique identifier for the connection
- `items` (list of CartItemRefundWithTaxResponse, required)
- `batchId` (string, optional) — Batch ID for grouping refunds
- `createdDate` (string, optional) — represents the time when the refund was created.
- `idempotencyKey` (string, optional) — Echoed back when the refund was created with an idempotency key.
- `returnedDate` (string, optional) — represents the time when the refund took effect.

### ErrorDetail

- `location` (string, optional) — Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'
- `message` (string, optional) — Error message text
- `value` (any, optional) — The value at the given location

### Tax

- `amount` (double, required) — represents the amount associated with a cart item.
- `rate` (double, required) — represents the tax rate of a cart item.

### LineItemDiscount

- `itemId` (string, required) — The ID of the line item this discount applies to. Must match an itemId in the lineItems array. When the order reuses this itemId across multiple lines, pair it with cartItemIndex to identify the line.
- `type` (enum, required) — The type of discount: 'percentage' or 'amount'
  - Allowed values: `percentage`, `amount`
- `value` (double, required) — The discount value (percentage as decimal 0-1, or dollar amount). IMPORTANT: When providing discounts, prices in lineItems should be pre-discount (original prices). If prices are already discounted, do not provide the discounts field.
- `cartItemIndex` (long, optional) — Optional. Disambiguates which cart line item to apply the discount to when the order has multiple line items sharing the same itemId. If omitted and the order has exactly one matching itemId, that line is used. If omitted and multiple lines share the itemId, the request is rejected.

### OrderLevelDiscount

- `type` (enum, required) — The type of discount: 'percentage' or 'amount'
  - Allowed values: `percentage`, `amount`
- `value` (double, required) — The discount value (percentage as decimal 0-1, or dollar amount). IMPORTANT: When providing discounts, prices in lineItems should be pre-discount (original prices). If prices are already discounted, do not provide the discounts field.

### CartItemRefundWithTaxResponse

- `index` (long, required) — represents the index of a cart item. It is used to specify the position of the item within the cart.
- `itemId` (string, required) — represents the ID of a cart item. Together with index it identifies the line: (itemId, index).
- `price` (double, required) — Price represents the unit price refunded. This is automatically calculated from the order. If the order had discounts applied, this price reflects the discounted amount (the actual amount paid by the customer).
- `quantity` (double, required) — Quantity represents the quantity refunded.
- `tax` (RefundTax, optional) — Tax amount refunded. This is automatically calculated proportionally from the order's tax. If the order had discounts, this reflects tax on the discounted price.
- `tic` (long, optional, default: 0) — Tic (Taxability Information Codes) are For more information visit \<\<doc link>>

### RefundTax

- `amount` (double, required) — represents the calculated tax amount for the refunded item.

## Examples

**Request**

```json
{
  "completedDate": "2024-01-15T09:30:00Z",
  "customerId": "customer-453",
  "destination": {
    "city": "Minneapolis",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427"
  },
  "lineItems": [
    {
      "index": 0,
      "itemId": "item-1",
      "price": 10.75,
      "quantity": 1.5,
      "tax": {
        "amount": 1.31,
        "rate": 0.08125
      }
    }
  ],
  "orderId": "my-order-1",
  "origin": {
    "city": "Minneapolis",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427"
  },
  "transactionDate": "2024-01-15T09:30:00Z"
}
```

**Response**

```json
{
  "channel": "amazon",
  "connectionId": "25eb9b97-5acb-492d-b720-c03e79cf715a",
  "currency": {
    "currencyCode": "string"
  },
  "customerId": "string",
  "deliveredBySeller": true,
  "destination": {
    "city": "Minneapolis",
    "countryCode": "US",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427",
    "line2": "string"
  },
  "excludeFromFiling": false,
  "exemption": {
    "exemptionId": "string",
    "isExempt": true
  },
  "kind": "credit",
  "lineItems": [
    {
      "index": 0,
      "itemId": "item-1",
      "originalPrice": 12,
      "price": 10.75,
      "quantity": 1.5,
      "tax": {
        "amount": 1.31,
        "rate": 0.08125
      },
      "tic": 0,
      "productId": "string"
    }
  ],
  "orderId": "string",
  "origin": {
    "city": "Minneapolis",
    "countryCode": "US",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427",
    "line2": "string"
  },
  "transactionDate": "2024-01-15T09:30:00Z",
  "$schema": "https://example.com/tax/schemas/OrderResponse.json",
  "batchId": "string",
  "completedDate": "2024-01-15T09:30:00Z",
  "refunds": [
    {
      "connectionId": "25eb9b97-5acb-492d-b720-c03e79cf715a",
      "items": [
        {
          "index": 1,
          "itemId": "string",
          "price": 1.1,
          "quantity": 1.1,
          "tax": {
            "amount": 1.1
          },
          "tic": 0
        }
      ],
      "batchId": "string",
      "createdDate": "2024-01-15T09:30:00Z",
      "idempotencyKey": "string",
      "returnedDate": "2024-01-15T09:30:00Z"
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders"

querystring = {"addressAutocomplete":"destination"}

payload = {
    "completedDate": "2024-01-15T09:30:00Z",
    "customerId": "customer-453",
    "destination": {
        "city": "Minneapolis",
        "line1": "323 Washington Ave N",
        "state": "MN",
        "zip": "55401-2427"
    },
    "lineItems": [
        {
            "index": 0,
            "itemId": "item-1",
            "price": 10.75,
            "quantity": 1.5,
            "tax": {
                "amount": 1.31,
                "rate": 0.08125
            }
        }
    ],
    "orderId": "my-order-1",
    "origin": {
        "city": "Minneapolis",
        "line1": "323 Washington Ave N",
        "state": "MN",
        "zip": "55401-2427"
    },
    "transactionDate": "2024-01-15T09:30:00Z"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"completedDate":"2024-01-15T09:30:00Z","customerId":"customer-453","destination":{"city":"Minneapolis","line1":"323 Washington Ave N","state":"MN","zip":"55401-2427"},"lineItems":[{"index":0,"itemId":"item-1","price":10.75,"quantity":1.5,"tax":{"amount":1.31,"rate":0.08125}}],"orderId":"my-order-1","origin":{"city":"Minneapolis","line1":"323 Washington Ave N","state":"MN","zip":"55401-2427"},"transactionDate":"2024-01-15T09:30:00Z"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination"

	payload := strings.NewReader("{\n  \"completedDate\": \"2024-01-15T09:30:00Z\",\n  \"customerId\": \"customer-453\",\n  \"destination\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"lineItems\": [\n    {\n      \"index\": 0,\n      \"itemId\": \"item-1\",\n      \"price\": 10.75,\n      \"quantity\": 1.5,\n      \"tax\": {\n        \"amount\": 1.31,\n        \"rate\": 0.08125\n      }\n    }\n  ],\n  \"orderId\": \"my-order-1\",\n  \"origin\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"transactionDate\": \"2024-01-15T09:30:00Z\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"completedDate\": \"2024-01-15T09:30:00Z\",\n  \"customerId\": \"customer-453\",\n  \"destination\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"lineItems\": [\n    {\n      \"index\": 0,\n      \"itemId\": \"item-1\",\n      \"price\": 10.75,\n      \"quantity\": 1.5,\n      \"tax\": {\n        \"amount\": 1.31,\n        \"rate\": 0.08125\n      }\n    }\n  ],\n  \"orderId\": \"my-order-1\",\n  \"origin\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"transactionDate\": \"2024-01-15T09:30:00Z\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"completedDate\": \"2024-01-15T09:30:00Z\",\n  \"customerId\": \"customer-453\",\n  \"destination\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"lineItems\": [\n    {\n      \"index\": 0,\n      \"itemId\": \"item-1\",\n      \"price\": 10.75,\n      \"quantity\": 1.5,\n      \"tax\": {\n        \"amount\": 1.31,\n        \"rate\": 0.08125\n      }\n    }\n  ],\n  \"orderId\": \"my-order-1\",\n  \"origin\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"transactionDate\": \"2024-01-15T09:30:00Z\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination', [
  'body' => '{
  "completedDate": "2024-01-15T09:30:00Z",
  "customerId": "customer-453",
  "destination": {
    "city": "Minneapolis",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427"
  },
  "lineItems": [
    {
      "index": 0,
      "itemId": "item-1",
      "price": 10.75,
      "quantity": 1.5,
      "tax": {
        "amount": 1.31,
        "rate": 0.08125
      }
    }
  ],
  "orderId": "my-order-1",
  "origin": {
    "city": "Minneapolis",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427"
  },
  "transactionDate": "2024-01-15T09:30:00Z"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"completedDate\": \"2024-01-15T09:30:00Z\",\n  \"customerId\": \"customer-453\",\n  \"destination\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"lineItems\": [\n    {\n      \"index\": 0,\n      \"itemId\": \"item-1\",\n      \"price\": 10.75,\n      \"quantity\": 1.5,\n      \"tax\": {\n        \"amount\": 1.31,\n        \"rate\": 0.08125\n      }\n    }\n  ],\n  \"orderId\": \"my-order-1\",\n  \"origin\": {\n    \"city\": \"Minneapolis\",\n    \"line1\": \"323 Washington Ave N\",\n    \"state\": \"MN\",\n    \"zip\": \"55401-2427\"\n  },\n  \"transactionDate\": \"2024-01-15T09:30:00Z\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "completedDate": "2024-01-15T09:30:00Z",
  "customerId": "customer-453",
  "destination": [
    "city": "Minneapolis",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427"
  ],
  "lineItems": [
    [
      "index": 0,
      "itemId": "item-1",
      "price": 10.75,
      "quantity": 1.5,
      "tax": [
        "amount": 1.31,
        "rate": 0.08125
      ]
    ]
  ],
  "orderId": "my-order-1",
  "origin": [
    "city": "Minneapolis",
    "line1": "323 Washington Ave N",
    "state": "MN",
    "zip": "55401-2427"
  ],
  "transactionDate": "2024-01-15T09:30:00Z"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.v3.taxcloud.com/tax/connections/25eb9b97-5acb-492d-b720-c03e79cf715a/orders?addressAutocomplete=destination")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```