Orders & Fulfillments
Orders & Fulfillments
Orders
API endpoints
Orders are retrieved from eBay's Fulfillment API. The single-order endpoint includes the TAX_BREAKDOWN field group for detailed tax information, including any eBay-collected tax (Marketplace Facilitator Tax).
Filtering orders
Use query parameters to filter the order list:
| Parameter | Description | Example |
|---|---|---|
createdAt[from] | Start of creation date range (ISO 8601) | 2024-01-01T00:00:00Z |
createdAt[to] | End of creation date range | 2024-01-31T23:59:59Z |
updatedAt[from] | Start of last-updated range | — |
updatedAt[to] | End of last-updated range | — |
financialStatus | Filter by payment status | PAID |
fulfillmentStatus | Filter by shipment status | NOT_STARTED |
Example:
GET /api/v2/orders?createdAt[from]=2024-01-01T00:00:00Z&createdAt[to]=2024-01-31T23:59:59Z
Key order fields
An order response from eBay contains several fields useful for processing and fulfillment:
| Field | Description |
|---|---|
orderId | eBay's order identifier — used in all order-related API calls |
lineItems[].lineItemId | ID of each individual line item — you will use this when creating a fulfillment |
lineItems[].sku | The SKU of the purchased product |
lineItems[].quantity | Quantity purchased |
buyer.username | eBay username of the buyer |
pricingSummary.total | Total order amount |
Carriers
Before creating a fulfillment, retrieve the list of supported shipping carriers for your marketplace:
GET /api/v2/services/carriers?ecommerce=true
Use the id value from the carrier response as the tracking.companyId field when creating a fulfillment. The list is filtered by the store's configured siteId (marketplace), so available carriers vary by region.
Fulfillments
API endpoints
Creating a fulfillment
The fulfillment payload uses EcartAPI's normalized format. The fields map to eBay's shipping fulfillment API internally.
POST /api/v2/orders/{orderId}/fulfillments
{
"fulfillment": {
"items": [
{ "id": "LINE_ITEM_ID", "quantity": "1" }
],
"shippingDate": "2024-01-15T10:00:00Z",
"tracking": {
"number": "1Z999AA10123456784",
"companyId": "USPS"
}
}
}| Field | Required | Notes |
|---|---|---|
items[].id | Yes | The lineItemId from the order response |
items[].quantity | Yes | Quantity to fulfill (as string) |
shippingDate | Yes | ISO 8601 format. Defaults to the current timestamp if omitted |
tracking.number | Yes | The carrier-assigned tracking number |
tracking.companyId | Yes | Carrier code from GET /api/v2/services/carriers?ecommerce=true (id field in the response) |
A successful response returns a fulfillmentId which you can use to reference or retrieve the fulfillment later.
Always use a valid
tracking.companyIdfrom the carriers endpoint. An invalid carrier code or malformed tracking number returnserrorId: 32300 — "Invalid shipment tracking number or carrier".
Partial fulfillments are supported. If an order has multiple line items, you can create separate fulfillments for each one by including only the relevant
itemsentries per request.
Fulfillment flow
1. GET /api/v2/orders/{orderId} — fetch order to get lineItemIds
2. GET /api/v2/services/carriers?ecommerce=true — get valid carrier codes for your marketplace
3. POST /api/v2/orders/{orderId}/fulfillments — create fulfillment with tracking info
4. GET /api/v2/orders/{orderId}/fulfillments — verify fulfillment was recordedUpdated 2 days ago