> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# fulfillmentGroup

> Fetch a fulfillment group by its id. The store that owns the group and the 3PL that ships it can both read it.

**Required scopes:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**Store must have one of:** `OMS`, `WMS`

## Arguments

**id** `ID!` *required*

The id of the fulfillment group.

## Returns

**fulfillmentGroup** `[FulfillmentGroup](/docs/api-reference/v3/reference/shipping/fulfillment-group)`

Items from one or more orders that ship together in one box or set of boxes, with what's needed to ship them.

**fields**

**addressVerification** `[AddressVerification!](/docs/api-reference/v3/reference/shipping/address-verification)` *required*

Whether the group's addresses were verified.

**fields**

**destination** `[ShippingAddress](/docs/api-reference/v3/reference/shipping/shipping-address)`

The corrected destination address the validation service returned, if any.

**fields**

**address1** `String`

The first line of the address (street and number).

**address2** `String`

The second line of the address (apartment, suite, unit, etc.).

**city** `String`

The city, town, or village.

**company** `String`

The recipient's company.

**countryCode** `[CountryCode](/docs/api-reference/v3/reference/common/country-code)`

The country.

**email** `String`

The recipient's email address.

**name** `String`

The recipient's name.

**phone** `String`

The recipient's phone number.

**postalCode** `String`

The postal or ZIP code.

**provinceCode** `String`

The state or province code, e.g. CA. Null when the address stores a full name rather than a code.

**residential** `Boolean`

Whether the address is residential. Null when it hasn't been classified.

**origin** `[ShippingAddress](/docs/api-reference/v3/reference/shipping/shipping-address)`

The corrected origin address the validation service returned, if any.

**fields**

**address1** `String`

The first line of the address (street and number).

**address2** `String`

The second line of the address (apartment, suite, unit, etc.).

**city** `String`

The city, town, or village.

**company** `String`

The recipient's company.

**countryCode** `[CountryCode](/docs/api-reference/v3/reference/common/country-code)`

The country.

**email** `String`

The recipient's email address.

**name** `String`

The recipient's name.

**phone** `String`

The recipient's phone number.

**postalCode** `String`

The postal or ZIP code.

**provinceCode** `String`

The state or province code, e.g. CA. Null when the address stores a full name rather than a code.

**residential** `Boolean`

Whether the address is residential. Null when it hasn't been classified.

**verified** `Boolean!` *required*

Whether the destination address was verified.

**assignee** `[TeamMember](/docs/api-reference/v3/reference/common/team-member)`

The team member the group is assigned to. Null when unassigned, or the member isn't on the caller's team.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**fields**

**email** `String`

Email address. Null when the user has none.

**id** `ID!` *required*

m\_us\_… id, the same id the app and MCP tools use.

**name** `String`

Display name. Null when the user hasn't set one.

**supportShiftStatus** `[SupportShiftStatus!](/docs/api-reference/v3/reference/support/support-shift-status)` *required*

The agent's live shift status, worked out when the request runs.

**Requires:** [`support_config_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_config_read)

**fields**

**manualOverride** `[SupportShiftOverride](/docs/api-reference/v3/reference/support/support-shift-override)`

The agent's manual on/off toggle. Null when they follow their schedule.

**nextChange** `[SupportShiftChange!](/docs/api-reference/v3/reference/support/support-shift-change)` *required*

The next time the schedule alone flips onShift. Ignores any manual override. Always in the future, or the next local midnight when nothing changes within 14 days.

**onShift** `Boolean!` *required*

True when auto-assignment can give the agent tickets now.

**reason** `[SupportShiftStatusReason!](/docs/api-reference/v3/reference/support/support-shift-status-reason)` *required*

Which layer decided onShift.

**supportWorkSchedule** `[SupportWorkSchedule!](/docs/api-reference/v3/reference/support/support-work-schedule)` *required*

The agent's support working hours. An agent with no saved schedule returns enabled false.

**Requires:** [`team_members_manage`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-team_members_manage)

**fields**

**assignableChannels** `[\[SupportChannel!\]](/docs/api-reference/v3/reference/support/support-channel)`

Channels the agent takes auto-assigned tickets on. Null means every channel.

**dateOverrides** `[\[SupportWorkScheduleDateOverride!\]!](/docs/api-reference/v3/reference/support/support-work-schedule-date-override)` *required*

Dates whose hours replace that day's weekly hours, earliest first.

**enabled** `Boolean!` *required*

Whether the schedule is on. When false, the agent counts as on shift at all times.

**timeZone** `String!` *required*

IANA time zone the hours are in, such as America/New\_York. The store's time zone when the agent has never saved a schedule.

**weeklyHours** `[\[SupportWorkScheduleDay!\]!](/docs/api-reference/v3/reference/support/support-work-schedule-day)` *required*

Recurring hours. Always seven entries, Monday through Sunday.

**batch** `[FulfillmentBatch](/docs/api-reference/v3/reference/shipping/fulfillment-batch)`

The batch the group's label was bought in. Null before a label is bought, or when the batch isn't the caller's.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**fields**

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the batch was created.

**id** `ID!` *required*

The id of this batch.

**name** `String!` *required*

The batch number shown in the Redo app, e.g. "0030".

**status** `[FulfillmentBatchStatus!](/docs/api-reference/v3/reference/shipping/fulfillment-batch-status)` *required*

Where the batch is in its lifecycle.

**billingAddress** `[ShippingAddress](/docs/api-reference/v3/reference/shipping/shipping-address)`

The order's billing address, if any.

**fields**

**address1** `String`

The first line of the address (street and number).

**address2** `String`

The second line of the address (apartment, suite, unit, etc.).

**city** `String`

The city, town, or village.

**company** `String`

The recipient's company.

**countryCode** `[CountryCode](/docs/api-reference/v3/reference/common/country-code)`

The country.

**email** `String`

The recipient's email address.

**name** `String`

The recipient's name.

**phone** `String`

The recipient's phone number.

**postalCode** `String`

The postal or ZIP code.

**provinceCode** `String`

The state or province code, e.g. CA. Null when the address stores a full name rather than a code.

**residential** `Boolean`

Whether the address is residential. Null when it hasn't been classified.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the group was created.

**customer** `[OrderCustomer](/docs/api-reference/v3/reference/orders/order-customer)`

The customer the group ships to, if known.

**fields**

**email** `String`

The customer's email address.

**firstName** `String`

The customer's first (given) name.

**id** `String`

The customer's id in the source platform.

**lastName** `String`

The customer's last (family) name.

**name** `String`

The customer's full name, when both name parts are set.

**phoneNumber** `String`

The customer's phone number.

**customs** `[FulfillmentGroupCustoms](/docs/api-reference/v3/reference/shipping/fulfillment-group-customs)`

The customs details. Null when the group ships within one country.

**fields**

**comments** `String`

Extra comments for customs.

**contentsExplanation** `String`

A description of the contents, when the type needs one.

**contentsType** `[CustomsContentsType](/docs/api-reference/v3/reference/shipping/customs-contents-type)`

What kind of contents the shipment holds.

**declarations** `[\[CustomsDeclaration!\]!](/docs/api-reference/v3/reference/shipping/customs-declaration)` *required*

The declared items.

**fields**

**countryOfOrigin** `[CountryCode](/docs/api-reference/v3/reference/common/country-code)`

Where the item was made.

**description** `String!` *required*

What the item is.

**hsCode** `String`

The Harmonized System tariff code.

**quantity** `Int!` *required*

Units declared.

**value** `[Money](/docs/api-reference/v3/reference/common/money)`

The declared value of one unit.

**weight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The weight of one unit.

**exportFiling** `[ExportFiling](/docs/api-reference/v3/reference/shipping/export-filing)`

The US export filing, when one applies.

**fields**

**exemptionCode** `[AesExemptionCode](/docs/api-reference/v3/reference/shipping/aes-exemption-code)`

Why no export filing is needed, e.g. NOEEI 30.37(a).

**itn** `String`

The AES internal transaction number, when one was filed.

**incoterm** `[Incoterm!](/docs/api-reference/v3/reference/shipping/incoterm)` *required*

Who pays duties and import taxes.

**nonDeliveryOption** `[CustomsNonDeliveryOption](/docs/api-reference/v3/reference/shipping/customs-non-delivery-option)`

What happens to the shipment if it can't be delivered.

**deliveryMethod** `[DeliveryMethodKind](/docs/api-reference/v3/reference/shipping/delivery-method-kind)`

How the customer chose to receive the order.

**destinationAddress** `[ShippingAddress](/docs/api-reference/v3/reference/shipping/shipping-address)`

Where the group ships to.

**fields**

**address1** `String`

The first line of the address (street and number).

**address2** `String`

The second line of the address (apartment, suite, unit, etc.).

**city** `String`

The city, town, or village.

**company** `String`

The recipient's company.

**countryCode** `[CountryCode](/docs/api-reference/v3/reference/common/country-code)`

The country.

**email** `String`

The recipient's email address.

**name** `String`

The recipient's name.

**phone** `String`

The recipient's phone number.

**postalCode** `String`

The postal or ZIP code.

**provinceCode** `String`

The state or province code, e.g. CA. Null when the address stores a full name rather than a code.

**residential** `Boolean`

Whether the address is residential. Null when it hasn't been classified.

**events** `[\[FulfillmentGroupEvent!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-group-event)` *required*

What happened to the group, newest first.

**fields**

**actor** `[TeamMember](/docs/api-reference/v3/reference/common/team-member)`

The team member who did it. Null for system events, and when the member isn't on the caller's team.

**fields**

**email** `String`

Email address. Null when the user has none.

**id** `ID!` *required*

m\_us\_… id, the same id the app and MCP tools use.

**name** `String`

Display name. Null when the user hasn't set one.

**supportShiftStatus** `[SupportShiftStatus!](/docs/api-reference/v3/reference/support/support-shift-status)` *required*

The agent's live shift status, worked out when the request runs.

**Requires:** [`support_config_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-support_config_read)

**supportWorkSchedule** `[SupportWorkSchedule!](/docs/api-reference/v3/reference/support/support-work-schedule)` *required*

The agent's support working hours. An agent with no saved schedule returns enabled false.

**Requires:** [`team_members_manage`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-team_members_manage)

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When it happened.

**type** `[FulfillmentGroupEventType!](/docs/api-reference/v3/reference/shipping/fulfillment-group-event-type)` *required*

What happened.

**fulfillBy** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the group must ship by: the merchant's override, else the service-level date.

**fulfillerAccountId** `ID`

The account that ships the group: a 3PL, or the merchant itself, when it equals `merchantAccountId`.

**fulfillmentOrders** `[\[FulfillmentGroupFulfillmentOrder!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-group-fulfillment-order)` *required*

The fulfillment orders the group ships. A merged group spans several orders.

**fields**

**externalId** `String!` *required*

The fulfillment order's id in the sales channel.

**lineItems** `[\[FulfillmentOrderLineItem!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item)` *required*

This group's share of the fulfillment order's items.

**fields**

**billOfMaterials** `[\[FulfillmentOrderLineItemBillOfMaterials!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item-bill-of-materials)` *required*

How the item is built from components. Empty unless it is built from components.

**customAttributes** `[\[LineItemAttribute!\]!](/docs/api-reference/v3/reference/shipping/line-item-attribute)` *required*

Custom keys and values attached to the item.

**id** `ID!` *required*

The line item's id on the fulfillment order, unique across the store.

**imageUrl** `String`

A URL to the item's image at order time.

**inventoryProduct** `[InventoryProduct](/docs/api-reference/v3/reference/inventory/inventory-product)`

What a fulfillment partner needs to identify and ship this item: identity only, no pricing. Readable by the store and the 3PL that ships the group. Null when it never matched a catalog product.

**product** `[Product](/docs/api-reference/v3/reference/catalog/product)`

The store's catalog product for this item, when it matched one. Null when it never matched, the product was deleted, or the caller can't read the store's products (e.g. a 3PL). Requires `products_read`.

**quantity** `Int!` *required*

Units of this item in the fulfillment group.

**selectedOptions** `[\[LineItemOption!\]!](/docs/api-reference/v3/reference/shipping/line-item-option)` *required*

The product options the customer chose.

**sku** `String`

The SKU at order time.

**title** `String!` *required*

The product title at order time.

**totalDiscountedPrice** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

The price of every unit in the group after discounts.

**totalPrice** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

The price of every unit in the group before discounts.

**totalTax** `[Money](/docs/api-reference/v3/reference/common/money)`

The tax on every unit in the group, if known.

**unitDiscountedPrice** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

The price of one unit after discounts.

**unitPrice** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

The price of one unit before discounts.

**variantTitle** `String`

The variant title at order time.

**order** `[Order](/docs/api-reference/v3/reference/orders/order)`

The Redo order. Null when there is no Redo order, or the caller can't read it, e.g. a 3PL reading its client's group.

**Requires:** [`orders_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-orders_read)

**fields**

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the order was placed (the ecommerce provider's creation time, falling back to Redo's ingestion time).

**currencyCode** `String`

The ISO 4217 currency code the order was placed in.

**customer** `[OrderCustomer](/docs/api-reference/v3/reference/orders/order-customer)`

The customer who placed the order, if known.

**externalId** `String!` *required*

The order's id in the source ecommerce platform.

**fulfillments** `[\[OrderFulfillment!\]!](/docs/api-reference/v3/reference/orders/order-fulfillment)` *required*

The shipments fulfilling this order's items.

**id** `ID!` *required*

The id of this order.

**legacyId** `String!` *required*

The order's legacy Mongo ObjectId (24-char hex) from before the CockroachDB migration.

**lineItems** `[\[OrderLineItem!\]!](/docs/api-reference/v3/reference/orders/order-line-item)` *required*

The items purchased on this order.

**protection** `[OrderProtection!](/docs/api-reference/v3/reference/orders/order-protection)` *required*

The Redo coverage the customer bought on this order.

**shipping** `[OrderShipping](/docs/api-reference/v3/reference/orders/order-shipping)`

The order's shipping method, cost, and destination.

**subtotalPrice** `[Money](/docs/api-reference/v3/reference/common/money)`

The order subtotal, excluding tax and shipping, if known.

**tags** `[String!]!` *required*

Free-form tags applied to the order.

**totalPrice** `[Money](/docs/api-reference/v3/reference/common/money)`

The order total, including tax and shipping, if known.

**totalTax** `[Money](/docs/api-reference/v3/reference/common/money)`

The total tax charged on the order, if known.

**orderSummary** `[FulfillmentOrderOrderSummary](/docs/api-reference/v3/reference/shipping/fulfillment-order-order-summary)`

The order as it was when it came in, whether or not a Redo order exists. Null when the sales channel sent no order.

**fields**

**createdAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the order was placed.

**customAttributes** `[\[LineItemAttribute!\]!](/docs/api-reference/v3/reference/shipping/line-item-attribute)` *required*

Custom keys and values attached to the order.

**externalId** `String!` *required*

The order's id in the sales channel.

**name** `String!` *required*

The order's name in the sales channel, e.g. #1001.

**note** `String`

The customer's note on the order.

**salesChannel** `String`

The sales channel the order was placed on, e.g. "Online Store".

**shippingPaid** `[Money](/docs/api-reference/v3/reference/common/money)`

What the customer paid for shipping on the whole order. An order split across several groups carries the same amount on each.

**tags** `[String!]!` *required*

The order's tags.

**provider** `[CommerceProvider](/docs/api-reference/v3/reference/shipping/commerce-provider)`

The platform the order came from.

**id** `ID!` *required*

The id of this fulfillment group.

**labelPurchase** `[FulfillmentGroupLabelPurchase!](/docs/api-reference/v3/reference/shipping/fulfillment-group-label-purchase)` *required*

Where buying the group's label stands.

**fields**

**errors** `[\[LabelPurchaseError!\]!](/docs/api-reference/v3/reference/shipping/label-purchase-error)` *required*

Why the last purchase failed. Empty unless it failed.

**fields**

**message** `String!` *required*

The error from the carrier or from Redo.

**occurredAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the purchase failed.

**status** `[LabelPurchaseStatus!](/docs/api-reference/v3/reference/shipping/label-purchase-status)` *required*

Where the purchase stands.

**linkedGroup** `[FulfillmentGroupLink](/docs/api-reference/v3/reference/shipping/fulfillment-group-link)`

The group this one was merged into, was replaced by, or was copied from. Null when there is none.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**fields**

**group** `[FulfillmentGroup](/docs/api-reference/v3/reference/shipping/fulfillment-group)`

The related group. Null when the caller can't read it.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**reason** `[FulfillmentGroupLinkReason!](/docs/api-reference/v3/reference/shipping/fulfillment-group-link-reason)` *required*

How this group relates to the linked group.

**merchantAccountId** `ID`

The account of the store that owns the group.

**notes** `[FulfillmentGroupNotes!](/docs/api-reference/v3/reference/shipping/fulfillment-group-notes)` *required*

Notes on the group.

**fields**

**fromBuyer** `String`

The note the customer left at checkout.

**internal** `String`

The merchant's internal note, never shown to the customer.

**toBuyer** `String`

The note to the customer, printed on the packing slip.

**orderCreatedAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the group's order was placed.

**originAddress** `[ShippingAddress](/docs/api-reference/v3/reference/shipping/shipping-address)`

Where the group ships from.

**fields**

**address1** `String`

The first line of the address (street and number).

**address2** `String`

The second line of the address (apartment, suite, unit, etc.).

**city** `String`

The city, town, or village.

**company** `String`

The recipient's company.

**countryCode** `[CountryCode](/docs/api-reference/v3/reference/common/country-code)`

The country.

**email** `String`

The recipient's email address.

**name** `String`

The recipient's name.

**phone** `String`

The recipient's phone number.

**postalCode** `String`

The postal or ZIP code.

**provinceCode** `String`

The state or province code, e.g. CA. Null when the address stores a full name rather than a code.

**residential** `Boolean`

Whether the address is residential. Null when it hasn't been classified.

**packages** `[OutboundShipmentPackageConnection!](/docs/api-reference/v3/pagination)` *required*

The labels bought for the group, each with its tracking number and tracker. Readable by the store and by the 3PL that ships the group, without pricing.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns packages after it.

**before** `String`

Backward pagination cursor — returns packages before it.

**first** `Int`

Forward pagination: returns the first N packages (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N packages (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**Fields**

**edges** `[\[OutboundShipmentPackageEdge!\]!](/docs/api-reference/v3/pagination)` *required*

The list of edges (each a node plus its pagination `cursor`).

**fields**

**cursor** `String!` *required*

Opaque cursor for this item; pass to `after`/`before` to page from here.

**node** `[OutboundShipmentPackage!](/docs/api-reference/v3/reference/shipping/outbound-shipment-package)` *required*

The item at this edge.

**nodes** `[\[OutboundShipmentPackage!\]!](/docs/api-reference/v3/reference/shipping/outbound-shipment-package)` *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**fields**

**labelUrl** `String!` *required*

URL of the printable label.

**tracker** `[Tracker](/docs/api-reference/v3/reference/orders/tracker)`

The tracker following this package. Readable by the store and by the 3PL that ships the group. Null until tracking starts.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**trackingNumber** `String!` *required*

Carrier tracking number for this package.

**pageInfo** `[PageInfo!](/docs/api-reference/v3/pagination)` *required*

Pagination metadata for the current page.

**fields**

**endCursor** `String`

Cursor of the last edge in this page; pass to `after` to page forward.

**hasNextPage** `Boolean!` *required*

Whether more items exist after this page (drives forward pagination with `first`/`after`).

**hasPreviousPage** `Boolean!` *required*

Whether more items exist before this page (drives backward pagination with `last`/`before`).

**startCursor** `String`

Cursor of the first edge in this page; pass to `before` to page backward.

**parcels** `[\[FulfillmentGroupParcel!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-group-parcel)` *required*

The parcels the group ships in. Empty for pickup, or before packaging is chosen.

**fields**

**dimensions** `[Dimensions](/docs/api-reference/v3/reference/catalog/dimensions)`

The outside dimensions. Null for carrier packaging, which the carrier defines.

**fields**

**height** `Float`

The height, in `unit`.

**length** `Float`

The length, in `unit`.

**unit** `[DimensionUnit!](/docs/api-reference/v3/reference/catalog/dimension-unit)` *required*

The unit all three measurements are expressed in.

**width** `Float`

The width, in `unit`.

**dryIceWeight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The weight of dry ice in the parcel, if any.

**fields**

**unit** `[WeightUnit!](/docs/api-reference/v3/reference/catalog/weight-unit)` *required*

The unit the value is expressed in.

**value** `Float!` *required*

The numeric magnitude of the weight.

**hazmat** `[HazmatType](/docs/api-reference/v3/reference/shipping/hazmat-type)`

The dangerous goods class, when the parcel has one.

**insurance** `[Money](/docs/api-reference/v3/reference/common/money)`

The amount the parcel is insured for. Null when uninsured.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**lineItems** `[\[FulfillmentGroupParcelLineItem!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-group-parcel-line-item)` *required*

What's packed in the parcel. Empty when the items haven't been assigned to parcels, which means everything ships in one box.

**fields**

**lineItem** `[FulfillmentOrderLineItem!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item)` *required*

The line item.

**quantity** `Int!` *required*

Units of the line item in this parcel.

**name** `String!` *required*

The packaging's name.

**packagingWeight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The weight of the empty packaging.

**fields**

**unit** `[WeightUnit!](/docs/api-reference/v3/reference/catalog/weight-unit)` *required*

The unit the value is expressed in.

**value** `Float!` *required*

The numeric magnitude of the weight.

**totalWeight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The weight the parcel is rated and labeled at: packaging plus contents.

**fields**

**unit** `[WeightUnit!](/docs/api-reference/v3/reference/catalog/weight-unit)` *required*

The unit the value is expressed in.

**value** `Float!` *required*

The numeric magnitude of the weight.

**type** `[ParcelType!](/docs/api-reference/v3/reference/shipping/parcel-type)` *required*

The kind of packaging.

**weightOverridden** `Boolean!` *required*

Whether a team member set `totalWeight` by hand.

**rates** `[FulfillmentGroupRates!](/docs/api-reference/v3/reference/shipping/fulfillment-group-rates)` *required*

The rates quoted for the group. The store gets no quotes when its 3PL ships the group.

**fields**

**calculatedAt** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

When the rates were last calculated.

**errorMessage** `String`

Why rating failed, when `status` is ERROR.

**messages** `[\[OutboundRateMessage!\]!](/docs/api-reference/v3/reference/shipping/outbound-rate-message)` *required*

Carrier messages from rating, e.g. why an account returned no rate.

**fields**

**carrier** `String!` *required*

Carrier the message is about.

**carrierAccountId** `String!` *required*

Carrier account the message is about.

**message** `String!` *required*

The carrier's message.

**quotes** `[\[OutboundRateQuote!\]!](/docs/api-reference/v3/reference/shipping/outbound-rate-quote)` *required*

The purchasable rates. Select or buy one by sending back its carrier, service and `carrierAccountId`.

**fields**

**carrier** `String!` *required*

Carrier offering this rate.

**carrierAccountId** `String!` *required*

Carrier account this rate was quoted on.

**deliveryDays** `Int`

Carrier's estimated days in transit, when provided.

**estimatedDeliveryDate** `[DateTime](/docs/api-reference/v3/reference/common/date-time)`

Carrier's estimated delivery date, when provided.

**landedCost** `[LandedCostQuote](/docs/api-reference/v3/reference/shipping/landed-cost-quote)`

Guaranteed duties, taxes and fees, when the quote asked for `landedCost`. Billed with the label, on top of `rate`.

**merchantCarrierAccount** `Boolean`

Whether the rate is on the merchant's own carrier account rather than Redo's. Null when it wasn't recorded.

**rate** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

Price charged for this rate. Carriage only — duties, import taxes, and customs fees are not included.

**service** `String!` *required*

Carrier service level of this rate.

**status** `[FulfillmentGroupRatesStatus!](/docs/api-reference/v3/reference/shipping/fulfillment-group-rates-status)` *required*

Whether the rates are ready to use.

**requestedShipping** `[FulfillmentGroupRequestedShipping](/docs/api-reference/v3/reference/shipping/fulfillment-group-requested-shipping)`

The shipping method the customer chose, from the group's first fulfillment order.

**fields**

**name** `String!` *required*

The method's name, as the packing slip shows it, e.g. "Standard".

**selectedRate** `[FulfillmentGroupSelectedRate](/docs/api-reference/v3/reference/shipping/fulfillment-group-selected-rate)`

The rate chosen for the label. Null when none is chosen, and for the store when its 3PL ships the group.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**fields**

**carrier** `String!` *required*

The carrier.

**carrierAccountId** `String`

The carrier account the rate is on.

**merchantCarrierAccount** `Boolean`

Whether the rate is on the merchant's own carrier account rather than Redo's, from the group's current quote for it. Null when no quote matches.

**rate** `[Money](/docs/api-reference/v3/reference/common/money)`

The price of the rate, from the group's current quote for the same carrier, service and account. Null when no quote matches.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**selectedBy** `[RateSelection](/docs/api-reference/v3/reference/shipping/rate-selection)`

What chose the rate, when recorded.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**fields**

**automationName** `String`

The name of the fulfillment automation that picked the rate, when `source` is AUTOMATION.

**source** `[RateSelectionSource!](/docs/api-reference/v3/reference/shipping/rate-selection-source)` *required*

What chose the rate.

**teamMember** `[TeamMember](/docs/api-reference/v3/reference/common/team-member)`

The team member who picked the rate, when `source` is USER and they're on the caller's team.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**service** `String!` *required*

The carrier service level.

**shipments** `[\[CarrierShipment!\]!](/docs/api-reference/v3/reference/shipping/carrier-shipment)` *required*

The carrier shipments bought for the group. Usually one; a group of several parcels on a carrier that labels each parcel separately (e.g. USPS) has one per parcel. Each caller sees the shipments its own team bought, so the store sees none on a group its 3PL ships.

**fields**

**carrier** `String!` *required*

Carrier the label was bought from.

**landedCost** `[LandedCostQuote](/docs/api-reference/v3/reference/shipping/landed-cost-quote)`

Guaranteed duties, taxes and fees locked for this shipment when it was bought with `landedCost`. Charged with the label, on top of `rate`.

**fields**

**duties** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

Guaranteed import duties.

**fees** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

Customs and guarantee fees, including Redo's fee.

**guaranteeCode** `String`

How the landed cost is guaranteed (e.g. POSTAL\_DDP).

**taxes** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

Guaranteed import taxes (e.g. VAT or GST).

**total** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

Duties plus taxes plus fees.

**merchantCarrierAccount** `Boolean`

Whether the label was bought on the merchant's own carrier account rather than Redo's. Null when it wasn't recorded.

**rate** `[Money!](/docs/api-reference/v3/reference/common/money)` *required*

Total price charged for the whole shipment. Carriage only — duties, import taxes, and customs fees are not included.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**service** `String!` *required*

Carrier service level bought.

**shipmentId** `ID!` *required*

The id of this shipment.

**shipmentPackages** `[\[OutboundShipmentPackage!\]!](/docs/api-reference/v3/reference/shipping/outbound-shipment-package)` *required*

The packages and their labels.

**fields**

**labelUrl** `String!` *required*

URL of the printable label.

**tracker** `[Tracker](/docs/api-reference/v3/reference/orders/tracker)`

The tracker following this package. Readable by the store and by the 3PL that ships the group. Null until tracking starts.

**Requires:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

**trackingNumber** `String!` *required*

Carrier tracking number for this package.

**shippingOptions** `[FulfillmentGroupShippingOptions!](/docs/api-reference/v3/reference/shipping/fulfillment-group-shipping-options)` *required*

Options on buying and delivering the label.

**fields**

**billing** `[ShipmentBilling!](/docs/api-reference/v3/reference/shipping/shipment-billing)` *required*

Who pays the carrier.

**fields**

**carrier** `String`

The carrier billed, when someone other than the shipper pays.

**type** `[ShipmentBillingType!](/docs/api-reference/v3/reference/shipping/shipment-billing-type)` *required*

Who pays.

**notifyCustomer** `Boolean`

Whether the customer is notified when the label is bought. Null uses the store's setting.

**notifyMarketplace** `Boolean`

Whether the sales channel is sent tracking when the label is bought. Null uses the store's setting.

**residentialOverride** `Boolean`

Forces the destination to be rated as residential (true) or commercial (false). Null uses the address's classification.

**returnLabel** `Boolean!` *required*

Whether a return label is bought with the label.

**saturdayDelivery** `Boolean!` *required*

Whether Saturday delivery was requested.

**signature** `[SignatureRequirement!](/docs/api-reference/v3/reference/shipping/signature-requirement)` *required*

Whether a signature is required on delivery.

**specialRates** `[\[SpecialRate!\]!](/docs/api-reference/v3/reference/shipping/special-rate)` *required*

Discounted rate classes the contents qualify for.

**status** `[FulfillmentGroupStatus!](/docs/api-reference/v3/reference/shipping/fulfillment-group-status)` *required*

Where the group is in its lifecycle.

**tags** `[\[FulfillmentGroupTag!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-group-tag)` *required*

The group's tags.

**fields**

**color** `[TagColor!](/docs/api-reference/v3/reference/shipping/tag-color)` *required*

The color the tag is shown in.

**name** `String!` *required*

The tag's name.

**source** `[TagSource!](/docs/api-reference/v3/reference/shipping/tag-source)` *required*

Who added the tag.

**totals** `[FulfillmentGroupTotals!](/docs/api-reference/v3/reference/shipping/fulfillment-group-totals)` *required*

What the group's items cost the customer.

**fields**

**discountedPrice** `[Money](/docs/api-reference/v3/reference/common/money)`

The items' price after discounts.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**price** `[Money](/docs/api-reference/v3/reference/common/money)`

The items' price before discounts.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**tax** `[Money](/docs/api-reference/v3/reference/common/money)`

The tax on the items.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**total** `[Money](/docs/api-reference/v3/reference/common/money)`

What the customer paid for the group, including shipping and tax.

**fields**

**amount** `[Decimal!](/docs/api-reference/v3/reference/common/decimal)` *required*

The exact amount as a decimal string (e.g. "19.99").

**currency** `String!` *required*

ISO 4217 currency code (e.g. USD).

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the group last changed.

## Example

```graphql theme={null}
query {
  fulfillmentGroup(id: "...") {
    createdAt
    deliveryMethod
    fulfillBy
    fulfillerAccountId
    id
    merchantAccountId
    orderCreatedAt
    packages {
      nodes {
        labelUrl
        trackingNumber
      }
      pageInfo { hasNextPage endCursor }
    }
    # ...
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.