---
title: "Fulfill a DropShipPurchaseOrder (async)"
method: POST
path: "/drop_ship_purchase_orders/fulfill"
tags: ["Drop Ship Purchase Orders"]
---

# Fulfill a DropShipPurchaseOrder (async)

`POST /drop_ship_purchase_orders/fulfill`

## Request

- Base URL: `https://api.liftforward.com`
- URL: `https://api.liftforward.com/drop_ship_purchase_orders/fulfill`
- Auth: API key in header `Api-Key`

When the merchant fulfills a drop ship purchase order via shipping or in-store, the merchant is
responsible for notifying LiftForward of the fulfillment along with the required data. Fulfillment
marks the corresponding customer's subscription order items as active, captures payment on the existing
credit authorization, and finalized the customer's line of credit. Drop ship purchase orders remain
open until they are fulfilled or canceled. Fulfillment applies only to an existing drop ship purchase
order that LiftForward has created for the merchant.

One of the following 2 unique identifiers for the drop ship purchase order must be provided:
- `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order.
- `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order, as
  sent in the drop ship purchase order notification webhook.

When both are provided, the drop ship purchase order is looked up by `drop_ship_purchase_order_id` only.
A 404 response means none of the merchant's drop ship purchase orders matched the identifier at the time
of the request.

If the `items` parameter is not provided, all items in the drop ship purchase order will be fulfilled.
Some programs require serial numbers to be provided for fulfillment of some items. In these cases merchants
should provide the `serial_number` with the `sku` for each item requiring a serial number. If the item does
not require a serial number, the `serial_number` parameter should be omitted of passed as `null`.

Some programs only support full fulfillment of an order. If the `items` parameter specifies fewer items
than remain to be fulfilled, a 422 error will be returned for those programs.

## Request body

- PostDropShipPurchaseOrdersFulfill: Fulfill a DropShipPurchaseOrder (async)
  - `drop_ship_purchase_order_fulfill` DropShipPurchaseOrderFulfill, required
    - `drop_ship_purchase_order_id` string: LiftForward's drop ship purchase order Id
    - `merchant_drop_ship_purchase_order_id` string: Merchant's drop ship purchase order Id which is customer displayable
    - `merchant_drop_ship_purchase_order_record_id` string: Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`
    - `fulfilled_at` string, date-time, required: Date and time the order was fulfilled by the merchant (not related to when the API call was made)
    - `items` DropShipPurchaseOrderFulfillItem[], required: All items in the order are required
      - `sku` string, required: Merchant's product SKU
      - `quantity` integer, required: Always 1 for Apple programs
      - `serial_number` string: Serial number of the device
      - `carrier` string: Shipping carrier
      - `tracking_number` string: Shipping carrier's tracking number

## Response `201`

Fulfill a DropShipPurchaseOrder (async)

- ApiAsyncResponse: ApiAsyncResponse model
  - `request_id` string, required: LiftForward's unique ID for a single API request
  - `code` string, required: HTTP response status code
  - `status` string, required: A value of 'success' is returned when status code in the 200 range. This action has been successfully completed or queued for processing and should be considered successful.
  - `message` string: Additional information about the status of the API request.
  - `request_url` string: The API endpoint that was called.
  - `request_parameters` object: Parameters submitted by the API call for confirmation.

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `405`: Not Allowed
- `408`: Request Time Out
- `422`: Unprocessable
- `500`: Internal Service Error
- `503`: Service Unavailable

---

[API](https://skmtc.dev/liftforward/apis/device-as-a-service-merchant-apis-lift-daas-service-producti.md) - [All operations](https://skmtc.dev/liftforward/apis/device-as-a-service-merchant-apis-lift-daas-service-producti/llms.txt) - [OpenAPI document](https://skmtc.dev/liftforward/apis/device-as-a-service-merchant-apis-lift-daas-service-producti/revisions/5a1383ffd271?raw)
