---
title: "Screen everyone in one shipment, with the destination's measures (one check a party)"
method: POST
path: "/shipments"
---

# Screen everyone in one shipment, with the destination's measures (one check a party)

`POST /shipments`

## Request

- Base URL: `https://api.stratumapis.com/v1/export-screening`
- URL: `https://api.stratumapis.com/v1/export-screening/shipments`
- Auth: API key in header `X-Stratum-Key`

Every party in one order (buyer, consignee, end user, intermediate consignee, forwarder or agent, supplier;
up to 20) screened against the same ten lists: a name (with its country, compared with the listed addresses)
or a UK company by its number with everyone recorded in its ownership and the ownership verdicts of `rules`.
Plus the destination's measures (as `GET /destinations/{country}`) and the fields a UK export licence record
holds (Export Control Order 2008, article 29) as far as you give them: your reference, the goods in your own
words, the licence. Nothing is stored: keep the response as your record.

One check for each party screened (a UK company's ownership is part of its check); the destination is free.
A party not screened (an unknown company number, Companies House not answering, or the call's time limit) is
returned with `notScreened` and not charged, and the shipment's `result` is then `incomplete`, never clear.
This is a screening record, not a licensing decision.

## Request body

- object
  - `destination` string, required: ISO 3166-1 alpha-2
  - `inTransitUK` boolean: The goods pass through the UK on their way
  - `rules` string[]
  - `reference` string
  - `goods` string: In your own words; never classified
  - `licence` object
    - `kind` 'number' | 'none' | 'not_assessed'
    - `number` string: Needed when kind is number
  - `parties` object[], required
    - `role` 'buyer' | 'consignee' | 'end_user' | 'intermediate_consignee' | 'forwarder' | 'supplier', required
    - `name` string
    - `companyNumber` string: A UK company number instead of a name
    - `country` string: ISO 3166-1 alpha-2 (a name party)

## Response `200`

The shipment record

- object
  - `shipmentId` string
  - `screenedAt` string, date-time
  - `reference` string
  - `destination` object: As GET /destinations/{country}
  - `inTransitUK` boolean
  - `goods` string
  - `licence` object
  - `rulesApplied` string[]
  - `result` 'no_match' | 'possible_match' | 'incomplete'
  - `screened` integer: Parties screened (each one check)
  - `parties` object[]
    - `role` string
    - `query` string
    - `companyNumber` string
    - `country` string
    - `screen` object: The party's screen, as /screen (a name) or /ownership (a company) answers it
    - `notScreened` object
      - `code` string
      - `message` string
  - `notice` string

## Other responses

- `400`: A field could not be read (`invalid_destination`, `missing_parties`, `too_many_parties`, `invalid_role`, `invalid_name`, `invalid_company_number`, `invalid_country`, `invalid_licence`, `invalid_goods`, `invalid_reference`, `invalid_rules`)
- `401`: Missing, invalid or revoked API key (`missing_key`, `invalid_key`, `revoked_key`)
- `429`: This month's limit is reached (`monthly_limit_reached`, at twice your plan's allowance) or the free trial's allowance is used (`trial_limit_reached`). Nothing was screened or counted. Treat the names as not screened. Screening resumes on the 1st of next month, on upgrading, or when we raise your limit.

---

[API](https://skmtc.dev/stratumapis/apis/export-controls-screening-api.md) · [All operations](https://skmtc.dev/stratumapis/apis/export-controls-screening-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stratumapis/apis/export-controls-screening-api/revisions/19984f668877?raw)
