# Sales Blanket Orders _(Realtime-enabled)_

`GET` `POST` `PATCH` `DELETE` _(Table: Sales Header)_

```
eOne/core/v1.0/salesBlanketOrders
```

Read and write Sales Blanket Orders, long-term sales agreements. Microsoft **excluded** blanket orders from the standard v2 API (its v2 sales entities are built on aggregate buffer tables that were never created for blanket orders); this endpoint can expose them because it binds directly to `Sales Header` / `Sales Line` filtered to `Document Type = Blanket Order`.

> **Caution:** Quantity semantics differ from a normal order. On a blanket line, `quantity` is the agreed **total**, and `quantityToShip` controls how much actually lands on the Sales Order produced by `makeOrder`.

## Resolve the customer

The sell-to customer can be set three ways: `customerNumber`, the Business Central `customerId`, or `customerIntegrationId`. The last is a [resolver field](https://eonesolutions.github.io/eone-bc-integration/resolvers.md), supplying it looks up the Customer whose `EONE Integration Id` matches and stamps `Sell-to Customer No.` for you. See [integrationId](https://eonesolutions.github.io/eone-bc-integration/integration-id.md) for how the store's own key round-trips on the header.

## Deep insert (header + lines in one call)

POST a full blanket order with its lines nested under `salesBlanketOrderLines` in a single request. Business Central stamps `Document Type` and `Document No.` onto each child line automatically via the SubPageLink.

`POST` `/salesBlanketOrders`

```
{
  "customerIntegrationId": "CUST-1001",
  "externalDocumentNumber": "BLKT-2026-07",
  "salesBlanketOrderLines": [
    { "itemNumber": "1000", "quantity": 500, "quantityToShip": 100 }
  ]
}
```

> **Note:** `currencyCode` translates between the ISO code (e.g. "USD") and the empty Business Central Currency Code that represents the local currency (LCY). Send the operating currency's ISO code and it is treated as LCY rather than being rejected as an unknown currency.

## The work description

`workDescription` is the free-text note on the document, the same text the Work Description box shows on the blanket sales order in Business Central. Send it on create or update and SmartConnect replaces the whole note, send an empty string to clear it, and leave it out to keep what is already there. Every read returns it.

## Bound actions

**release** / **reopen**. POST `/salesBlanketOrders({id})/Microsoft.NAV.release` to release the document, or `…/Microsoft.NAV.reopen` to return a released blanket order to Open.

**makeOrder.** Converts the blanket order into a Sales Order (via codeunit `Blanket Sales Order to Order`), shipping `quantityToShip` from each line onto the new order. The response **redirects** to the resulting record on the [salesOrders](https://eonesolutions.github.io/eone-bc-integration/posted-documents.md) entity set, not back to the blanket order.

`POST` `/salesBlanketOrders({id})/Microsoft.NAV.makeOrder`

**archive** / **cancel**. Snapshot a version and keep the blanket order open, or archive then delete it (soft delete). See [Archiving & cancelling](https://eonesolutions.github.io/eone-bc-integration/archive.md).

> **Note:** Per-line and per-header dimension overrides are settable through the flat `shortcutDimension1Code`..`shortcutDimension8Code` columns. See [dimensions](https://eonesolutions.github.io/eone-bc-integration/dimensions.md).

## Sales Blanket Orders fields

_API column → BC field._

**Legend**

- _(req)_ required on create
- _(res)_ resolver
- _(cur)_ currency-translated
- _(ro)_ read-only
- _(ext)_ added to this endpoint by another extension (BC field name shown; its API column name is not known here)

| API | BC field | Notes |
| --- | --- | --- |
| `id` | SystemId | BC record GUID. _(ro)_ |
| `bcCompanyId` | bcCompanyId | The company this row belongs to - the same GUID that appears in the request URL. Present on every endpoint so a store pooling several companies can keep them apart without relying on which URL it called. _(ro)_ |
| `bcCompanyName` | bcCompanyName | The name of the company this row belongs to. _(ro)_ |
| `number` | No. | Document number; assigned by the number series if omitted. |
| `integrationId` | EONE Integration Id | Your external key for the header. |
| `externalDocumentNumber` | External Document No. |  |
| `yourReference` | Your Reference |  |
| `workDescription` | workDescription | The document's free-text work description. Sending it replaces the whole note, an empty string clears it, and omitting it leaves what is already there. |
| `customerNumber` | Sell-to Customer No. | Sell-to customer; the resolver target. |
| `customerName` | Sell-to Customer Name | _(ro)_ |
| `customerIntegrationId` | customerIntegrationId | Resolves the sell-to customer by Customer."EONE Integration Id". _(res)_ |
| `contactNumber` | Sell-to Contact No. |  |
| `billToCustomerNumber` | Bill-to Customer No. |  |
| `orderDate` | Order Date |  |
| `postingDate` | Posting Date |  |
| `documentDate` | Document Date |  |
| `requestedDeliveryDate` | Requested Delivery Date |  |
| `promisedDeliveryDate` | Promised Delivery Date |  |
| `currencyCode` | currencyCode | ISO code; empty maps to LCY. _(cur)_ |
| `paymentTermsCode` | Payment Terms Code |  |
| `reasonCode` | Reason Code | Supplementary source code used to trace this document. |
| `paymentMethodCode` | Payment Method Code |  |
| `shipmentMethodCode` | Shipment Method Code |  |
| `pricesIncludeTax` | Prices Including VAT |  |
| `salespersonCode` | Salesperson Code |  |
| `locationCode` | Location Code |  |
| `shippingAgentCode` | Shipping Agent Code |  |
| `shippingAgentServiceCode` | Shipping Agent Service Code |  |
| `sellToAddressLine1` | Sell-to Address |  |
| `sellToAddressLine2` | Sell-to Address 2 |  |
| `sellToCity` | Sell-to City |  |
| `sellToCounty` | Sell-to County |  |
| `sellToCountryRegionCode` | Sell-to Country/Region Code |  |
| `sellToPostCode` | Sell-to Post Code |  |
| `phoneNumber` | Sell-to Phone No. |  |
| `email` | Sell-to E-Mail |  |
| `billToName` | Bill-to Name |  |
| `billToAddressLine1` | Bill-to Address |  |
| `billToAddressLine2` | Bill-to Address 2 |  |
| `billToCity` | Bill-to City |  |
| `billToCounty` | Bill-to County |  |
| `billToCountryRegionCode` | Bill-to Country/Region Code |  |
| `billToPostCode` | Bill-to Post Code |  |
| `shipToName` | Ship-to Name |  |
| `shipToAddressLine1` | Ship-to Address |  |
| `shipToAddressLine2` | Ship-to Address 2 |  |
| `shipToCity` | Ship-to City |  |
| `shipToCounty` | Ship-to County |  |
| `shipToCountryRegionCode` | Ship-to Country/Region Code |  |
| `shipToPostCode` | Ship-to Post Code |  |
| `shipToContact` | Ship-to Contact |  |
| `shipToCode` | Ship-to Code | Saved ship-to address code. Setting it (the Alternate option) copies that customer ship-to address onto the document. |
| `shipToOptions` | shipToOptions | Write-only control: Default, Alternate, or Custom. Default copies the sell-to (customer) address into ship-to; Custom clears Ship-to Code so you can write ship-to fields freely; Alternate leaves the current ship-to in place so you can set a shipToCode. Reads back blank. _(res)_ |
| `billToOptions` | billToOptions | Write-only control: set to Customer to copy the sell-to (customer) address into the bill-to fields. Reads back blank. |
| `vatRegistrationNumber` | VAT Registration No. |  |
| `taxLiable` | Tax Liable |  |
| `taxAreaCode` | Tax Area Code |  |
| `genBusPostingGroup` | Gen. Bus. Posting Group | General business posting group. Defaults from the sell-to customer when the customer is resolved; set it only to override the customer's configured posting setup for this document. |
| `vatBusPostingGroup` | VAT Bus. Posting Group |  |
| `shortcutDimension1Code` | Shortcut Dimension 1 Code | Shortcut dimension 1. See Dimensions. |
| `shortcutDimension2Code` | Shortcut Dimension 2 Code | Shortcut dimension 2. See Dimensions. |
| `shortcutDimension3Code` | EONE Shortcut Dim 3 Code | Shortcut dimension 3. See Dimensions. |
| `shortcutDimension4Code` | EONE Shortcut Dim 4 Code | Shortcut dimension 4. See Dimensions. |
| `shortcutDimension5Code` | EONE Shortcut Dim 5 Code | Shortcut dimension 5. See Dimensions. |
| `shortcutDimension6Code` | EONE Shortcut Dim 6 Code | Shortcut dimension 6. See Dimensions. |
| `shortcutDimension7Code` | EONE Shortcut Dim 7 Code | Shortcut dimension 7. See Dimensions. |
| `shortcutDimension8Code` | EONE Shortcut Dim 8 Code | Shortcut dimension 8. See Dimensions. |
| `dimensionSetId` | Dimension Set ID | The dimension set this record carries. Join it to the dimensionSetEntries endpoint to resolve the full set of dimension codes and values, including any beyond the eight shortcut dimension columns. _(ro)_ |
| `status` | Status | _(ro)_ |
| `totalAmountExcludingTax` | totalAmountExcludingTax | Calculated from the lines. _(ro)_ |
| `totalTaxAmount` | totalTaxAmount | Calculated from the lines. _(ro)_ |
| `totalAmountIncludingTax` | totalAmountIncludingTax | Calculated from the lines. _(ro)_ |
| `lastModifiedDateTime` | SystemModifiedAt | _(ro)_ |

## Related pages

Collections nested under this endpoint:

- [Sales Blanket Order Lines](https://eonesolutions.github.io/eone-bc-integration/core-salesBlanketOrderLines.md)
