---
title: "Get itemized invoice for a delivered shipment"
method: GET
path: "/v1/shipper/shipment/{orderNumber}/invoice"
tags: ["Shipper API"]
---

# Get itemized invoice for a delivered shipment

`GET /v1/shipper/shipment/{orderNumber}/invoice`

## Request

- Base URL: `https://api.oway.io`
- URL: `https://api.oway.io/v1/shipper/shipment/{orderNumber}/invoice`
- Auth: HTTP bearer and API key in header `x-oway-api-key`

Retrieves the itemized invoice for a delivered shipment.
The invoice includes all charges (base freight, accessorials) and line items.

**Note:** This endpoint is only available for shipments in DELIVERED state.
Invoices are finalized when a shipment is delivered.

## Path parameters

- `orderNumber` string, required

## Response `200`

Invoice retrieved successfully

- InvoiceResponse: Itemized invoice for a delivered shipment
  - `orderId` string: Order ID
  - `orderNumber` string: Human-readable order number (PRO number)
  - `invoiceDate` string, date-time: Invoice date (typically same as delivery date)
  - `shipDate` string, date-time: Ship date (when the shipment was picked up)
  - `deliveryDate` string, date-time: Delivery date (when the shipment was delivered)
  - `poNumber` string: Purchase order number (if provided)
  - `refNumber` string: Reference number (BOL number)
  - `lineItems` InvoiceLineItem[]: Line items representing the shipped goods
    - `description` string: Description of the item
    - `freightClass` string: Freight class
    - `nmfcCode` string: NMFC commodity code for this line, when the shipment supplied one. Null when no NMFC was provided; it never falls back to the freight class, which is a different thing.
    - `weight` integer: Weight in pounds
    - `quantity` integer: Number of pieces/pallets
    - `packageType` string: Package type
  - `charges` InvoiceCharge[]: Itemized charges and fees
    - `chargeType` string: Type of charge
    - `description` string: Human-readable description of the charge
    - `amountInCents` integer: Amount in cents (USD)
  - `totalChargesInCents` integer: Total of all charges in cents (USD)
  - `totalWeight` integer: Total weight of the shipment in pounds
  - `totalPieces` integer: Total number of pieces/pallets
  - `shipper` Address: Address information for pickup or delivery locations
    - `name` string, required: Name of the location or business
    - `address1` string, required: Primary street address
    - `address2` string: Secondary address line (suite, unit, etc.)
    - `city` string, required: City name
    - `state` string, required: Two-letter subdivision code. A request must name a US state, territory or DC; a response may name the subdivision of another country, which country names.
    - `zipCode` string, required: 5-digit ZIP code. The placeholders 00000 and 99999 are rejected: neither is an assignable USPS code, and both are what a caller sends when a numeric ZIP field defaults to zero or saturates.
    - `country` string: Two-letter ISO 3166-1 alpha-2 country code, case-insensitive and normalized to upper case. Defaults to US when omitted. Oway currently serves the US and its territories, so US, PR, GU, VI, AS and MP are accepted and any other recognized code is rejected with 400 rather than quoted. A territory may also be addressed the way a carrier would, as country US with the territory in state.
    - `phoneNumber` string, required: Contact phone number in E.164 format
    - `contactPerson` string, required: Name of the contact person at this location
    - `phoneExtension` string: Phone extension, dialled after the main number
    - `email` string, email: Contact email for this location
    - `openTime` string: Opening time for the location in 24-hour format (HH:mm). Defaults to 10:00 if not provided.
    - `closeTime` string: Closing time for the location in 24-hour format (HH:mm). Defaults to 16:00 if not provided.
    - `notes` string: Additional notes or instructions for the driver
    - `liftgateRequired` boolean: Whether a liftgate is required at this location
    - `limitedAccess` boolean: Whether this is a limited access location (residential, construction site, etc.)
    - `appointmentRequired` boolean: Whether an appointment is required for pickup/delivery
    - `callAheadRequired` boolean: Whether a call-ahead notification is required before pickup/delivery. When true, the carrier will call the contact person before arriving at the location.
    - `lumperRequired` boolean: Whether third-party lumper labor loads/unloads at this location (common at large distribution centers where drivers may not handle freight). Informational for quoting: the lumper fee is not priced into the quote and is billed after delivery as a separate charge with proof of payment.
    - `insideRequired` boolean: Whether the driver must bring freight inside the facility rather than to the dock or curb. Adds a flat inside-service fee to the quote.
  - `consignee` Address: Address information for pickup or delivery locations
    - `name` string, required: Name of the location or business
    - `address1` string, required: Primary street address
    - `address2` string: Secondary address line (suite, unit, etc.)
    - `city` string, required: City name
    - `state` string, required: Two-letter subdivision code. A request must name a US state, territory or DC; a response may name the subdivision of another country, which country names.
    - `zipCode` string, required: 5-digit ZIP code. The placeholders 00000 and 99999 are rejected: neither is an assignable USPS code, and both are what a caller sends when a numeric ZIP field defaults to zero or saturates.
    - `country` string: Two-letter ISO 3166-1 alpha-2 country code, case-insensitive and normalized to upper case. Defaults to US when omitted. Oway currently serves the US and its territories, so US, PR, GU, VI, AS and MP are accepted and any other recognized code is rejected with 400 rather than quoted. A territory may also be addressed the way a carrier would, as country US with the territory in state.
    - `phoneNumber` string, required: Contact phone number in E.164 format
    - `contactPerson` string, required: Name of the contact person at this location
    - `phoneExtension` string: Phone extension, dialled after the main number
    - `email` string, email: Contact email for this location
    - `openTime` string: Opening time for the location in 24-hour format (HH:mm). Defaults to 10:00 if not provided.
    - `closeTime` string: Closing time for the location in 24-hour format (HH:mm). Defaults to 16:00 if not provided.
    - `notes` string: Additional notes or instructions for the driver
    - `liftgateRequired` boolean: Whether a liftgate is required at this location
    - `limitedAccess` boolean: Whether this is a limited access location (residential, construction site, etc.)
    - `appointmentRequired` boolean: Whether an appointment is required for pickup/delivery
    - `callAheadRequired` boolean: Whether a call-ahead notification is required before pickup/delivery. When true, the carrier will call the contact person before arriving at the location.
    - `lumperRequired` boolean: Whether third-party lumper labor loads/unloads at this location (common at large distribution centers where drivers may not handle freight). Informational for quoting: the lumper fee is not priced into the quote and is billed after delivery as a separate charge with proof of payment.
    - `insideRequired` boolean: Whether the driver must bring freight inside the facility rather than to the dock or curb. Adds a flat inside-service fee to the quote.
  - `billTo` Address: Address information for pickup or delivery locations
    - `name` string, required: Name of the location or business
    - `address1` string, required: Primary street address
    - `address2` string: Secondary address line (suite, unit, etc.)
    - `city` string, required: City name
    - `state` string, required: Two-letter subdivision code. A request must name a US state, territory or DC; a response may name the subdivision of another country, which country names.
    - `zipCode` string, required: 5-digit ZIP code. The placeholders 00000 and 99999 are rejected: neither is an assignable USPS code, and both are what a caller sends when a numeric ZIP field defaults to zero or saturates.
    - `country` string: Two-letter ISO 3166-1 alpha-2 country code, case-insensitive and normalized to upper case. Defaults to US when omitted. Oway currently serves the US and its territories, so US, PR, GU, VI, AS and MP are accepted and any other recognized code is rejected with 400 rather than quoted. A territory may also be addressed the way a carrier would, as country US with the territory in state.
    - `phoneNumber` string, required: Contact phone number in E.164 format
    - `contactPerson` string, required: Name of the contact person at this location
    - `phoneExtension` string: Phone extension, dialled after the main number
    - `email` string, email: Contact email for this location
    - `openTime` string: Opening time for the location in 24-hour format (HH:mm). Defaults to 10:00 if not provided.
    - `closeTime` string: Closing time for the location in 24-hour format (HH:mm). Defaults to 16:00 if not provided.
    - `notes` string: Additional notes or instructions for the driver
    - `liftgateRequired` boolean: Whether a liftgate is required at this location
    - `limitedAccess` boolean: Whether this is a limited access location (residential, construction site, etc.)
    - `appointmentRequired` boolean: Whether an appointment is required for pickup/delivery
    - `callAheadRequired` boolean: Whether a call-ahead notification is required before pickup/delivery. When true, the carrier will call the contact person before arriving at the location.
    - `lumperRequired` boolean: Whether third-party lumper labor loads/unloads at this location (common at large distribution centers where drivers may not handle freight). Informational for quoting: the lumper fee is not priced into the quote and is billed after delivery as a separate charge with proof of payment.
    - `insideRequired` boolean: Whether the driver must bring freight inside the facility rather than to the dock or curb. Adds a flat inside-service fee to the quote.

## Other responses

- `400`: Invalid request: orderNumber is required, or shipment is not in DELIVERED state
- `401`: Unauthorized: missing or invalid Bearer token (authentication failed)
- `403`: Forbidden: missing/invalid API key, or shipment does not belong to your company
- `404`: Shipment not found

---

[API](https://skmtc.dev/shipoway/apis/oway-shipper-api.md) - [All operations](https://skmtc.dev/shipoway/apis/oway-shipper-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shipoway/apis/oway-shipper-api/revisions/35141ac5fb57?raw)
