# EDI 300 Ocean Booking Request: Spec and Sample

> EDI 300 explained: the ocean booking request, its B1, Y1, Y2, R4 and L0 segments, a live sample, and how it leads to the 301, 304, 310 and 315.

<QuickAnswer>
The EDI 300 Reservation (Booking Request) (Ocean) is the X12 transaction a shipper, importer, forwarder or NVOCC sends an ocean carrier to ask for space on a sailing. It carries the requested sailing date, the number and type of containers, the service, the shipper and consignee, the origin and destination points, and a description of the cargo.
</QuickAnswer>

**The EDI 300 is where an ocean shipment starts.** Before a container is released, loaded or billed, someone has to ask the carrier for space. The 300 is that request in electronic form: how many boxes, what size, from where, to where, around which date, and what is going in them. The carrier answers with a [301 confirmation](/guides/edi/301-confirmation-ocean) and a booking number, and every later ocean document hangs off that number.

This guide covers what the 300 carries, where it sits in the ocean flow, every segment you will map, a live sample for two 40-foot high cube containers from Shanghai to Southern California, how it differs from the 301 and the motor-carrier 204, and the errors that turn into rolled bookings and wrong equipment.

<EDIGuideCTA
  transactionType="300"
  headline="The PO on your booking starts with a clean order"
  body="OrderSync reads inbound purchase orders in any format, from EDI 850s to PDFs, emails and spreadsheets, matches customers, items and units to your catalog, and sends clean data to your ERP. The PO numbers you book against start there."
/>

## What Is an EDI 300?

**An EDI 300 is the Reservation (Booking Request) (Ocean) transaction set defined by [ASC X12](https://x12.org/products/transaction-sets), used to request space on an ocean carrier's vessel for a shipment.** It names the cargo, the equipment wanted, the places of receipt, loading, discharge and delivery, and the dates the shipper is working to. The 300 travels in functional group `RO` (the `GS01` value), which it shares with the 301 confirmation and the 303 booking cancellation.

Authoritative references for 300 work:

- The [X12 transaction set catalog](https://x12.org/products/transaction-sets) defines the 300 structure, segment order and loops
- [Stedi's X12 004010 reference for the 300](https://www.stedi.com/edi/x12-004010/300) lists the segments, elements and code values for release 004010
- The UN/LOCODE list maintained by UNECE supplies the five-character location codes (such as `CNSHA` and `USLAX`) most carriers expect in the `R4` segments
- Each ocean carrier publishes its own 300 implementation guide, which sets the references, equipment codes and service codes it accepts

**Who sends it?** Whoever controls the booking: an exporter shipping on its own contract, an importer booking freight on a buyer-controlled move, or a forwarder or NVOCC booking on behalf of either.

**Who receives it?** The ocean carrier, directly or through a booking portal or network that passes the 300 on.

**When is it sent?** Days or weeks before the sailing, once the cargo and the ready date are known. A changed request goes as another 300 with a change action, and a cancellation usually goes as a 303.

**Why does it matter?** The booking reserves the space and the equipment. If the container type, count or origin is wrong on the 300, the carrier confirms the wrong thing, the wrong empties are released, or the cargo misses its vessel.

## The Ocean Document Flow: 300, 301, 304, 310, 315 and 322

| Set | X12 name | Usually sent by | What it does |
|---|---|---|---|
| **300** | Reservation (Booking Request) (Ocean) | Shipper, importer, forwarder or NVOCC | Asks the carrier for space |
| **[301](/guides/edi/301-confirmation-ocean)** | Confirmation (Ocean) | Ocean carrier | Confirms, changes or declines the booking and returns the booking number |
| **303** | Booking Cancellation (Ocean) | Shipper, importer, forwarder or NVOCC | Cancels a booking |
| **[304](/guides/edi/304-shipping-instructions)** | Shipping Instructions | Shipper, importer, forwarder or NVOCC | Gives the details for the bill of lading |
| **[310](/guides/edi/310-freight-receipt-and-invoice-ocean)** | Freight Receipt and Invoice (Ocean) | Ocean carrier | Returns the bill of lading data and the freight charges |
| **[315](/guides/edi/315-status-details-ocean)** | Status Details (Ocean) | Ocean carrier | Reports container events to the shipper or consignee |
| **[322](/guides/edi/322-terminal-operations-intermodal-ramp-activity)** | Terminal Operations and Intermodal Ramp Activity | Marine terminal or rail ramp | Reports container events at the terminal to the carrier or railroad |

A typical full-container-load move runs: 300 booking request, 301 confirmation with the booking number and empty release, empty pickup and gate-in, 304 shipping instructions before the documentation cutoff, 310 bill of lading and charges, then 315 events through to empty return. Terminals report their own gate and vessel moves to the carrier on 322s, and those events often feed the carrier's 315s. Carriers differ in which sets they support, so treat the sequence as typical rather than fixed.

## Interactive Example: 300 for Two 40-Foot High Cubes, Shanghai to Ontario, California

A US importer, Cascade Home Imports, books two 40-foot high cube containers of wooden furniture parts with an ocean carrier (SCAC `BLUQ`). The supplier in Shanghai is the shipper. `B1` carries the importer's shipment reference and a new-request action code. `G61` gives the booking desk to call. `Y1` asks for a sailing around 3 November and names the carrier and mode. `Y2` requests two `45G1` containers without chassis on pier-to-house service. `N9` carries the purchase order. The `R4` loops give the place of receipt, the port of loading with the requested departure, the port of discharge and the place of delivery. `L0` and `L5` describe 1,240 cartons, 18,420 kg and 58.4 cubic meters. All names, numbers and codes for the parties, carrier and cargo are fictional, and the same shipment runs through the [301](/guides/edi/301-confirmation-ocean), [304](/guides/edi/304-shipping-instructions), [310](/guides/edi/310-freight-receipt-and-invoice-ocean) and [315](/guides/edi/315-status-details-ocean) samples on this site.

Use the **Plain English** tab for a readable summary, or click any segment to break it down element by element.

<EDISample id="300-ocean-booking-request" />

## 300 Structure at a Glance

The table follows X12 release 004010 and lists the segments most bookings use. The standard has more, including authentication (`Y6`), priority (`Y7`), route preferences (`R2A`), equipment attributes (`EA`), hazardous material (`H1`, `H2`) and remarks (`K1`).

| Area | Segment | Name | Usage in the standard | Notes |
|---|---|---|---|---|
| Heading | **ST** | Transaction Set Header | Mandatory | `ST01` = `300` |
| Heading | **B1** | Beginning Segment for Booking or Pick-up/Delivery | Mandatory | Shipment reference and reservation action |
| Heading | **G61** | Contact | Optional, up to 3 | Booking contact |
| Heading | **Y1** | Space Reservation Request | Mandatory | Requested sailing date, carrier, mode |
| Heading loop | **Y2 / W09** | Container Details, Equipment and Temperature | Mandatory, up to 10 | Container count, type, service; reefer settings in `W09` |
| Heading | **N9** | Reference Identification | Optional, up to 100 | PO and other references |
| Heading loop | **N1 / N2 / N3 / N4 / G61** | Name and address | Mandatory, up to 10 | Shipper, consignee and other parties |
| Heading loop | **R4 / DTM** | Port or Terminal, Date/Time | Mandatory, up to 20 | Receipt, loading, discharge and delivery points |
| Heading | **H3** | Special Handling Instructions | Optional, up to 6 | Handling requirements |
| Detail loop | **LX** | Assigned Number | Repeats up to 999 | One loop per cargo line |
| Detail loop | **N7** | Equipment Details | Optional | Specific equipment, when known |
| Detail loop | **L0 / L5 / L4** | Quantity and Weight, Description, Measurement | Optional | The cargo |
| Detail | **V1** | Vessel Identification | Optional, up to 2 | A requested vessel, when the shipper has one in mind |
| Summary | **SE** | Transaction Set Trailer | Mandatory | Segment count and control number |

"Optional" in the standard is often "required" in a carrier's guide. Many carriers insist on a contact, the commodity and the weight on every booking.

## Key Segments Explained

### B1: Beginning Segment for Booking or Pick-up/Delivery

```
B1**CHI2610160412**N~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **B101** | Standard Carrier Alpha Code | | A SCAC; the standard describes it as the carrier sending the transmission, so it is often empty on a 300 sent by a shipper |
| **B102** | Shipment Identification Number | `CHI2610160412` | The sender's reference for this shipment. The standard says it must not contain blanks or special characters |
| **B103** | Date | | The booking date; carriers fill it on the 301 |
| **B104** | Reservation Action Code | `N` | `N` new, `U` change, `R` delete. The carrier uses `A`, `B`, `C` and `D` on the 301 |

Keep `B102` unique per booking request. The carrier echoes it on the 301, and it is the only key you have until the booking number comes back.

### Y1: Space Reservation Request

```
Y1*20261103**BLUQ*O~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **Y101** | Sailing/Flight Date Estimated | `20261103` | The sailing date you are asking for |
| **Y102** | Date | | The date the shipment is available at origin, qualified by `Y109`. The two travel together |
| **Y103** | Standard Carrier Alpha Code | `BLUQ` | The carrier you are booking with |
| **Y104** | Transportation Method/Type Code | `O` | `O` containerized ocean |
| **Y108** | Tariff Service Code | | A rating service code, when the carrier's guide asks for one |

The requested sailing is a request. The carrier's 301 tells you the vessel and date it actually gave you, and the two often differ.

### Y2: Container Details

```
Y2*2*R*PH*45G1~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **Y201** | Number of Containers | `2` | How many containers of this type |
| **Y202** | Container Type Request Code | `R` | `R` containers only, `C` containers with chassis, `W` chassis only, `S` shipper to provide |
| **Y203** | Type of Service Code | `PH` | The extent of service: `PH` pier-to-house, `PP` pier-to-pier, `HH` house-to-house, `CY` container yard, `DD` door to door and others |
| **Y204** | Equipment Type | `45G1` | A four-character equipment type; `45G1` is the ISO 6346 size-type code for a 40-foot high cube general-purpose container |
| **Y205** | Transportation Method/Type Code | | Mode, when different from `Y1` |

Send one `Y2` per container type, so a booking for two 40-foot high cubes and one 20-foot standard carries two `Y2` loops. Which equipment type codes a carrier accepts in `Y204` (ISO size-type codes or older four-digit codes) and how it reads the `Y203` service codes against its own CY and door terms is set by its guide. For refrigerated cargo, a `W09` follows the `Y2` with the minimum and maximum temperature and the unit.

### N9: Reference Identification

```
N9*PO*4500918832~
```

| Qualifier | Meaning | Why you need it |
|---|---|---|
| `PO` | Purchase order number | Ties the booking to the order the goods are on |
| `CR` | Customer reference number | Your own booking or shipment reference |
| `CT` | Contract number | The service contract the booking moves under, when the carrier asks for it |

Which `N9` qualifiers the carrier stores and returns differs by carrier. Send the purchase order on the booking anyway: when it comes back on the 301, 310 and 315, matching gets much easier.

### N1 Loop: Parties

```
N1*SH*LINHAI WOODCRAFT CO LTD~
N4*SHANGHAI**201800*CN~
N1*CN*CASCADE HOME IMPORTS LLC~
N4*ONTARIO*CA*91761*US~
```

`N101` gives the role: `SH` shipper, `CN` consignee, and in many guides a booking party, forwarder or notify party as well. The 300 only needs enough to book the space. The full names and addresses that will print on the bill of lading go on the [304 shipping instructions](/guides/edi/304-shipping-instructions).

### R4 Loop: Port or Terminal

```
R4*R*UN*CNSHA*SHANGHAI*CN~
R4*L*UN*CNSHA*SHANGHAI*CN~
DTM*369*20261103~
R4*D*UN*USLAX*LOS ANGELES*US~
R4*E*UN*USONT*ONTARIO*US~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **R401** | Port or Terminal Function Code | `L` | `R` place of receipt, `L` port of loading, `D` port of discharge, `E` place of delivery |
| **R402** | Location Qualifier | `UN` | `UN` means `R403` is a UN/LOCODE |
| **R403** | Location Identifier | `CNSHA` | The location code |
| **R404** | Port Name | `SHANGHAI` | Name |
| **R405** | Country Code | `CN` | Country |

The standard requires at least one `R4`. The `DTM` after an `R4` dates the request at that point: here `369`, estimated departure date. The place of receipt and place of delivery decide how much inland moving the carrier does, so they must agree with the service code in `Y203`.

### L0 and L5: Cargo

```
L0*1***18420*G*58.4*X*1240*CTN**K~
L5*1*WOODEN FURNITURE PARTS~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **L001** | Lading Line Item Number | `1` | Line number, shared with `L5` |
| **L004 / L005** | Weight, Weight Qualifier | `18420` / `G` | Gross weight |
| **L006 / L007** | Volume, Volume Unit Qualifier | `58.4` / `X` | `X` cubic meters, `E` cubic feet |
| **L008 / L009** | Lading Quantity, Packaging Form Code | `1240` / `CTN` | 1,240 cartons |
| **L011** | Weight Unit Code | `K` | Kilograms |
| **L502** | Lading Description | `WOODEN FURNITURE PARTS` | The commodity |

The weight on a booking is an estimate. Carriers use it to plan the vessel, and the final figure comes later on the 304.

## EDI 300 vs 301, 303, 304 and 204

| Document | Mode | Sent by | Purpose |
|---|---|---|---|
| **300 Reservation (Booking Request) (Ocean)** | Ocean | Shipper, importer, forwarder or NVOCC | Requests space and equipment |
| **[301 Confirmation (Ocean)](/guides/edi/301-confirmation-ocean)** | Ocean | Ocean carrier | Confirms the booking and releases empties |
| **303 Booking Cancellation (Ocean)** | Ocean | Booking party | Cancels a booking |
| **[304 Shipping Instructions](/guides/edi/304-shipping-instructions)** | Ocean | Booking party | Bill of lading details, after the booking |
| **[204 Motor Carrier Load Tender](/guides/edi/204-motor-carrier-load-tender)** | Truck | Shipper | Offers a truck load to a carrier |

The 300 and the 204 do a similar job: one party asks a carrier to take a shipment. The 204 tenders a specific load with stops and appointments and is answered by a [990](/guides/edi/990-response-to-load-tender). The 300 reserves space on a sailing and equipment at origin, and is answered by a 301 with a booking number. Neither one is a bill of lading. On ocean moves the bill of lading data goes on the 304 and comes back on the 310.

## Common 300 Errors and How to Prevent Them

| Error | What happens | Prevention |
|---|---|---|
| **Wrong equipment type code** | The carrier rejects the booking or releases the wrong containers | Load the carrier's accepted `Y204` codes and validate before sending |
| **Duplicate shipment references** | A second request overwrites or is confused with the first | Generate a unique `B102` per request and keep it for the life of the booking |
| **Changes sent as new requests** | Two bookings for the same cargo | Send changes with `B104` = `U` against the same `B102`, or as the carrier's guide says |
| **Location codes missing or in the wrong scheme** | Booking falls out to manual handling | Use the qualifier and code type the carrier expects in `R402` and `R403`, usually UN/LOCODE |
| **Service code disagrees with the route** | Carrier quotes or plans the wrong inland legs | Check that `Y203` matches the place of receipt and place of delivery you sent |
| **No 301 back** | You assume space you do not have | Alert when a 300 has no 301 within the time your carrier normally answers |
| **No PO on the booking** | Containers cannot be traced to orders later | Send the PO in `N9` and keep it on the 304 |

## 300 Implementation Checklist

Before your first live 300 to an ocean carrier:

- Get the carrier's 300 implementation guide and confirm the X12 version in `GS08` (004010 is common) and the `RO` functional group
- Confirm how it wants changes and cancellations: a 300 with a change code, a 303, or both
- Load its accepted equipment type codes and service codes
- Agree which location code scheme it uses in `R4`
- Decide which references you send in `N9`, and check which ones it echoes on the 301
- Send the 300 from the same system that holds your purchase orders, so the PO numbers are right
- Confirm the 997 the carrier returns for each 300, and the 301 you expect back
- Test a new booking, a change, a cancellation, a mixed-equipment booking and a reefer booking if you ship refrigerated cargo

Our [EDI document types reference](/edi-document-types) shows where ocean sets sit beside the [850 purchase order](/guides/edi/850-purchase-order) and the [856 ASN](/guides/edi/856-ship-notice). The [SCAC code glossary entry](/glossary/scac-code) explains the carrier codes in `Y1` and the envelope.

## Where OrderSync Fits

A booking is only as good as the order behind it. The quantities, weights and purchase order numbers on a 300 come from the orders your customers sent you, or the orders you placed with your suppliers, and those arrive as EDI 850s, PDFs, emails and spreadsheets.

OrderSync reads inbound orders in any format, matches customers, items and units to your catalog, and outputs clean ERP data or valid X12, so the PO numbers on your bookings point at accurate orders. Paste any 300 into the [free EDI inspector](/edi-inspector) to see it parsed segment by segment with a plain-English summary and any structural errors explained, or [book a 15-minute walkthrough](/book-call) to see your own orders processed.

## Frequently Asked Questions

<div className="not-prose">

### What is an EDI 300?

The EDI 300 Reservation (Booking Request) (Ocean) is the X12 transaction used to ask an ocean carrier for space on a sailing. It carries the requested sailing date, the number and type of containers, the service, the parties, the origin and destination points, and the cargo description and weight.

### What is the difference between EDI 300 and EDI 301?

The 300 is the booking request sent to the carrier. The 301 is the carrier's answer: it accepts, conditionally accepts, counters or declines the request, and when space is given it returns the booking number, the sailing and the empty container release.

### Who sends the EDI 300?

Whoever controls the booking: an exporter on its own freight contract, an importer on a buyer-controlled move, or a forwarder or NVOCC booking for a customer. It goes to the ocean carrier, directly or through a booking portal or network.

### Which segment holds the container count and type in a 300?

The Y2 segment. Y201 is the number of containers, Y202 says whether containers, chassis or both are wanted, Y203 is the type of service and Y204 is the four-character equipment type code. A booking with more than one container type sends one Y2 per type.

### How do I change or cancel an EDI 300 booking?

Changes usually go as another 300 with the reservation action code in B104 set to U, using the same shipment reference. Cancellations go as a 303 Booking Cancellation, or with the delete code R where the carrier allows it. The carrier's guide says which it accepts.

### What functional group and version does the 300 use?

The 300 travels in functional group RO, the value in GS01, shared with the 301 and 303. Many carrier guides use X12 release 004010, and the version for a given carrier is named in GS08.

### What happens after the 300?

The carrier sends a 301 with the booking number. The shipper picks up the empties, loads them and sends a 304 with the shipping instructions. The carrier returns a 310 with the bill of lading data and charges, and 315 status messages follow the containers to delivery.

</div>
