Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const fulfillment = await client.orders.fulfillments.fulfill('or_UkLWZg9DAJ', 'ful_UkLWZg9DAJ')spree api patch /orders/{order_id}/fulfillments/{id}/fulfill -d '{ ... }'{
"id": "ful_UkLWZg9DAJ",
"number": "R1001-F1",
"tracking": "U10000",
"tracking_url": null,
"pickup_point_data": null,
"selected_delivery_rate_id": "dr_gbHJdmfrXB",
"unpriced": false,
"cost": "100.0",
"display_cost": "$100.00",
"total": "100.0",
"display_total": "$100.00",
"discount_total": "0.0",
"display_discount_total": "$0.00",
"additional_tax_total": "0.0",
"display_additional_tax_total": "$0.00",
"included_tax_total": "0.0",
"display_included_tax_total": "$0.00",
"tax_total": "0.0",
"display_tax_total": "$0.00",
"status": "fulfilled",
"fulfillment_type": "shipping",
"fulfilled_at": "2026-01-15T12:00:00.000Z",
"delivered_at": null,
"items": [
{
"item_id": "li_UkLWZg9DAJ",
"variant_id": "variant_UkLWZg9DAJ",
"quantity": 1
}
],
"deliveries": [
{
"id": "dlv_UkLWZg9DAJ",
"tracking_number": "U10000",
"carrier": null,
"carrier_name": null,
"service": null,
"status": "pending",
"tracking_url": null,
"estimated_delivery_at": null,
"delivered_at": null,
"details": null,
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z",
"shipping_label_id": null
}
],
"metadata": {},
"adjustment_total": "0.0",
"pre_tax_amount": "100.0",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z",
"order_id": "or_UkLWZg9DAJ",
"stock_location_id": "sloc_UkLWZg9DAJ",
"documents": [],
"labels": [],
"provider_generates_labels": false
}Fulfill a fulfillment
Marks a fulfillment as fulfilled.
Required scope: write_fulfillments (for API-key authentication).
PATCH
/
api
/
v3
/
admin
/
orders
/
{order_id}
/
fulfillments
/
{id}
/
fulfill
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const fulfillment = await client.orders.fulfillments.fulfill('or_UkLWZg9DAJ', 'ful_UkLWZg9DAJ')spree api patch /orders/{order_id}/fulfillments/{id}/fulfill -d '{ ... }'{
"id": "ful_UkLWZg9DAJ",
"number": "R1001-F1",
"tracking": "U10000",
"tracking_url": null,
"pickup_point_data": null,
"selected_delivery_rate_id": "dr_gbHJdmfrXB",
"unpriced": false,
"cost": "100.0",
"display_cost": "$100.00",
"total": "100.0",
"display_total": "$100.00",
"discount_total": "0.0",
"display_discount_total": "$0.00",
"additional_tax_total": "0.0",
"display_additional_tax_total": "$0.00",
"included_tax_total": "0.0",
"display_included_tax_total": "$0.00",
"tax_total": "0.0",
"display_tax_total": "$0.00",
"status": "fulfilled",
"fulfillment_type": "shipping",
"fulfilled_at": "2026-01-15T12:00:00.000Z",
"delivered_at": null,
"items": [
{
"item_id": "li_UkLWZg9DAJ",
"variant_id": "variant_UkLWZg9DAJ",
"quantity": 1
}
],
"deliveries": [
{
"id": "dlv_UkLWZg9DAJ",
"tracking_number": "U10000",
"carrier": null,
"carrier_name": null,
"service": null,
"status": "pending",
"tracking_url": null,
"estimated_delivery_at": null,
"delivered_at": null,
"details": null,
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z",
"shipping_label_id": null
}
],
"metadata": {},
"adjustment_total": "0.0",
"pre_tax_amount": "100.0",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z",
"order_id": "or_UkLWZg9DAJ",
"stock_location_id": "sloc_UkLWZg9DAJ",
"documents": [],
"labels": [],
"provider_generates_labels": false
}Authorizations
Secret API key for admin access
JWT token for admin user authentication
Headers
Bearer token for admin authentication
Response
200 - application/json
fulfillment fulfilled
Was this page helpful?
⌘I

