> This page is for Developer.

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

# Get Order

GET https://api-b2b.bigcommerce.com/api/v3/io/orders/{bcOrderId}

Retrieves limited information for a specific order based on the `bcOrderId` provided. The response includes the same fields as the Get All Orders endpoint, including B2B extra fields and PO numbers.

The `bcOrderId` parameter must include a valid BigCommerce Order ID (**not** the B2B Edition order ID returned in certain Orders endpoints) for the request to be successful.

Reference: https://docs.bigcommerce.com/developer/api-reference/rest/b2b/management/orders/get-orders-order-id

## Authentication

- `X-Auth-Token` header (required) — | Header | Argument | Description | |:-------|:---------|:------------| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts). | For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
- `X-Store-Hash` header (required) — | Header | Argument | Description | |:-------|:---------|:------------| | `X-Store-Hash` | `store_hash` | The unique store hash associated with a BigCommerce store that has B2B Edition enabled. |

## Request

### Path parameters

- `bcOrderId` (integer, required) — The BigCommerce order ID.

## Response

### 200

OK

- `code` (integer, optional, default: 200) — HTTP Response Code
- `data` (orderData_DETAIL, optional)
- `meta` (OrdersBcOrderIdGetResponsesContentApplicationJsonSchemaMeta, optional)

## Errors

### 404 Not Found Error

Not Found This error occurs when an invalid order ID is provided in the `bcOrderId` parameter.

- `code` (integer, required)
- `data` (OrdersBcOrderIdGetResponsesContentApplicationJsonSchemaData, required)
- `meta` (OrdersBcOrderIdGetResponsesContentApplicationJsonSchemaMeta, optional)

## Types

### orderData_DETAIL

- `id` (integer, optional) — The unique identifier of the order in B2B Edition.
- `bcOrderId` (integer, optional) — The BigCommerce order ID.
- `totalIncTax` (float, optional) — The order's total value including tax.
- `poNumber` (string, optional) — The order's Purchase Order (PO), if used.
- `status` (string, optional) — The default name of the order status. See [Order Statuses](/developer/api-reference/rest/admin/management/orders/order-status) for a complete list of accepted status names. -
- `customStatus` (string, optional) — The customized name of the order status.
- `cartId` (integer, optional) — The unique identifier of the cart generated for the order.
- `items` (integer, optional) — The total quantity of products in the order.
- `usdIncTax` (float, optional) — The order's total value in USD, including tax.
- `companyId` (integer, optional) — The unique numeric ID of a Company account.
- `currencyCode` (string, optional) — The three-letter code corresponding to the order’s currency.
- `money` (list of MoneyItems, optional) — Contains detailed information regarding the order's currency.
- `statusCode` (integer, optional) — The numeric code associated with the order status. See [Order Statuses](/developer/api-reference/rest/admin/management/orders/order-status) for a complete list of accepted status names.
- `isArchived` (boolean, optional) — Indicates whether the order is archived.
- `channelId` (integer, optional) — The storefront channel ID where the order was placed.
- `channelName` (string, optional) — The name of the storefront channel where the order was placed.
- `isInvoiceOrder` (integer, optional) — Indicates whether or not the order is an invoice payment. Standard orders are `0`, while invoice payment orders are `1`.
- `invoiceId` (integer, optional) — The unique identifier for the invoice associated with an invoice payment order, if applicable.
- `invoiceNumber` (integer, optional) — The invoice number associated with an invoice payment order, if applicable.
- `invoiceStatus` (integer, optional) — The status code of the invoice associated with an invoice payment order, if applicable. The numeric codes correspond to the following statuses: - 0 - Open - 1 - Partially Paid - 2 - Paid
- `extraInt1` (integer, optional) — A legacy integer extra field configuration that does not return data in newer stores.
- `extraInt2` (integer, optional) — A legacy integer extra field configuration that does not return data in newer stores.
- `extraInt3` (integer, optional) — A legacy integer extra field configuration that does not return data in newer stores.
- `extraInt4` (integer, optional) — A legacy integer extra field configuration that does not return data in newer stores.
- `extraInt5` (integer, optional) — A legacy integer extra field configuration that does not return data in newer stores.
- `extraStr1` (string, optional) — A legacy string extra field configuration that does not return data in newer stores.
- `extraStr2` (string, optional) — A legacy string extra field configuration that does not return data in newer stores.
- `extraStr3` (string, optional) — A legacy string extra field configuration that does not return data in newer stores.
- `extraStr4` (string, optional) — A legacy string extra field configuration that does not return data in newer stores.
- `extraStr5` (string, optional) — A legacy string extra field configuration that does not return data in newer stores.
- `extraText` (string, optional) — A legacy text extra field configuration that does not return data in newer stores.
- `extraInfo` (list of ExtraInfoItems, optional) — Contains billing and shipping address identifiers.
- `extraFields` (list of any, optional) — Contains extra field information associated with the order.
- `createdAt` (integer, optional) — The [Unix timestamp](https://www.unixtimestamp.com/) for when the order was created. This is a read-only field.
- `updatedAt` (integer, optional) — The [Unix timestamp](https://www.unixtimestamp.com/) for when the order was last updated. This is a read-only field.

### OrdersBcOrderIdGetResponsesContentApplicationJsonSchemaMeta

- `message` (string, optional) — Error message of this response

### OrdersBcOrderIdGetResponsesContentApplicationJsonSchemaData

### MoneyItems

- `currencyLocation` (enum, optional) — Determines whether the currency symbol is added to the left or the right of order pricing.
  - Allowed values: `left`, `right`
- `currencyToken` (string, optional) — The currency symbol.
- `decimalToken` (string, optional) — The character used to separate the whole number from the decimal in order pricing.
- `decimalPlaces` (integer, optional) — The number of decimal places used in order pricing.
- `thousandsToken` (string, optional) — The character used to separate the hundredths and thousandths places in order pricing."

### ExtraInfoItems

- `billingAddressId` (integer, optional) — The unique identifier for billing address in the Company account.
- `shippingAddressId` (integer, optional) — The unique identifier for shipping address in the Company account.

## Examples

**Response**

```json
{
  "code": 200,
  "data": {
    "id": 12345,
    "bcOrderId": 123,
    "totalIncTax": 2210.47,
    "poNumber": "04152025-0002",
    "status": "Awaiting Payment",
    "customStatus": "Invoice Sent",
    "cartId": "095a15a6-8a27-4c20-b357-36b82e9d5929",
    "items": 50,
    "usdIncTax": 2210.47,
    "companyId": 12345,
    "currencyCode": "USD",
    "money": [
      {
        "currencyLocation": "left",
        "currencyToken": "$",
        "decimalToken": ".",
        "decimalPlaces": 2,
        "thousandsToken": ","
      }
    ],
    "statusCode": 7,
    "isArchived": false,
    "channelId": 1,
    "channelName": "B2B Store",
    "isInvoiceOrder": 0,
    "invoiceId": 12345,
    "invoiceNumber": 12345678,
    "invoiceStatus": 2,
    "extraInt1": 12345,
    "extraInt2": 12345,
    "extraInt3": 12345,
    "extraInt4": 12345,
    "extraInt5": 12345,
    "extraStr1": "Great Buys Incorporated",
    "extraStr2": "Great Buys Incorporated",
    "extraStr3": "Great Buys Incorporated",
    "extraStr4": "Great Buys Incorporated",
    "extraStr5": "Great Buys Incorporated",
    "extraText": "Great Buys Incorporated",
    "extraInfo": [
      {
        "billingAddressId": 12345,
        "shippingAddressId": 12345
      }
    ],
    "extraFields": [
      {
        "fieldName": "Fintech ID",
        "fieldValue": "1234567890"
      }
    ],
    "createdAt": 1744735719,
    "updatedAt": 1744735734
  },
  "meta": {
    "message": "SUCCESS"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api-b2b.bigcommerce.com/api/v3/io/orders/123"

headers = {"X-Auth-Token": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api-b2b.bigcommerce.com/api/v3/io/orders/123';
const options = {method: 'GET', headers: {'X-Auth-Token': '<apiKey>'}};

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"
	"net/http"
	"io"
)

func main() {

	url := "https://api-b2b.bigcommerce.com/api/v3/io/orders/123"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("X-Auth-Token", "<apiKey>")

	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-b2b.bigcommerce.com/api/v3/io/orders/123")

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

request = Net::HTTP::Get.new(url)
request["X-Auth-Token"] = '<apiKey>'

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.get("https://api-b2b.bigcommerce.com/api/v3/io/orders/123")
  .header("X-Auth-Token", "<apiKey>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api-b2b.bigcommerce.com/api/v3/io/orders/123', [
  'headers' => [
    'X-Auth-Token' => '<apiKey>',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api-b2b.bigcommerce.com/api/v3/io/orders/123");
var request = new RestRequest(Method.GET);
request.AddHeader("X-Auth-Token", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["X-Auth-Token": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-b2b.bigcommerce.com/api/v3/io/orders/123")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

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()
```