Skip to content

Drop Ship (6.0)

The Drop Shipping API enables customers to fulfill orders for available units and lots that are in stock in the Optoro RMS.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://developer.optoro.com/_mock/openapi/drop_ship/openapi
Production
https://drop-ship.optiturn.com
Sandbox
https://drop-ship.sandbox.optiturn.com

Listings

Operations

Orders

Operations

List orders

Request

Results from the orders endpoint are paginated and the subset of orders that are returned are based on the page and per_page parameters supplied in the request.

Query
updated_atstring(date-time)required

Last updated time in ISO 8601 format, UTC. updated_at value should not be older than 3 months.

Example: updated_at=2023-01-01T17:27:46
channelstring

Filter orders by Inventory channel name.

Example: channel=rts_drop_ship
statusstringrequired

Filter orders by status

Enum"accepted""rejected""cancelled""pending_payment""partially_shipped""shipped"
pageinteger(int32)

The page of results to retrieve; If page number is above maximum an empty result set will be returned.

Default 1
Headers
api-versionstringrequired

The version of the API to use.

Example: 6
curl -i -X GET \
  'https://developer.optoro.com/_mock/openapi/drop_ship/openapi/orders?updated_at=2023-01-01T17%3A27%3A46&channel=rts_drop_ship&status=accepted&page=1' \
  -H 'api-version: 6'

Responses

A list of orders of units and lots. The total number of records in the set will be in the response header record_count.

Bodyapplication/json
ordersArray of objects(order)
Response
application/json
{ "orders": [ { … } ] }

Create an order

Request

Used to notify Optoro of purchases of individual units or lots. Units or lots are assigned as an order item on the order.

Headers
api-versionstringrequired

The version of the API to use.

Example: 6
Bodyapplication/jsonrequired
orderobject(order-2)

Order attributes

curl -i -X POST \
  https://developer.optoro.com/_mock/openapi/drop_ship/openapi/orders \
  -H 'Content-Type: application/json' \
  -H 'api-version: 6' \
  -d '{
    "order": {
      "client_identifier": "3fda4c37-6830-469f-b343-9d1a482a97fd",
      "channel": "rts_drop_ship",
      "billing_address": {
        "name": "Lacy Macejkovic",
        "company": "Bayer-Abernathy",
        "telephone_number": "252-948-6723 12345",
        "street": "315 5th Ave",
        "street2": "Suite 2112",
        "city": "New York",
        "state": "NY",
        "zip_code": "10016",
        "country": "US"
      },
      "shipping_address": {
        "name": "Lacy Macejkovic",
        "company": "Bayer-Abernathy",
        "telephone_number": "252-948-6723 12345",
        "street": "315 5th Ave",
        "street2": "Suite 2112",
        "city": "New York",
        "state": "NY",
        "zip_code": "10016",
        "country": "US",
        "loading_dock": true
      },
      "brand": "acme",
      "shipping_method": "STANDARD",
      "price_cents": 10000,
      "processing_fee_cents": 0,
      "tax_cents": 1000,
      "shipping_cost_cents": 500,
      "shipping_tax_cents": 0,
      "comments": "Gift wrap required",
      "expected_delivery_date": "2019-08-24",
      "signature_required": true,
      "packing_slip_identifier": "1497064",
      "order_items": [
        {
          "client_identifier": "296f0b98-7bc5-4750-8cb9-2e36db1ff766",
          "sku": "PTBQ121308",
          "brand": "acme",
          "condition": "N",
          "quantity": 1,
          "price_cents": 10000,
          "tax_cents": 1000,
          "shipping_cost_cents": 500,
          "shipping_tax_cents": 0,
          "comments": ""
        }
      ]
    }
  }'

Responses

Order rejected response

Bodyapplication/json
messagestring

Optoro response will be 200 code with message “rejected” if the order was rejected for some reason.

Example: "rejected"
reasonstring

This is an example of the response for insufficient inventory. Only available in Version 5+.

Example: "Insufficient inventory to fill order"
orderobject

Order details with insufficient items when order is rejected due to insifficient quantity.

Response
application/json
{ "message": "rejected", "reason": "Insufficient Quantity for: <order item #1 client_identifier> - <order item #1 sku>(condition), <order item #2 client_identifier> - <order item #2 sku> (condition)", "order": { "client_identifier": "3573390128", "order_items": [ … ] } }

Create orders in batches

Request

This request creates orders in batches. Batches can contain a maximum of 25 orders per request.

Headers
api-versionstringrequired

The version of the API to use.

Example: 6
Bodyapplication/jsonrequired
ordersArray of objects(order-2)
curl -i -X POST \
  https://developer.optoro.com/_mock/openapi/drop_ship/openapi/batch/orders \
  -H 'Content-Type: application/json' \
  -H 'api-version: 6' \
  -d '{
    "orders": [
      {
        "client_identifier": "3fda4c37-6830-469f-b343-9d1a482a97fd",
        "channel": "rts_drop_ship",
        "billing_address": {
          "name": "Lacy Macejkovic",
          "company": "Bayer-Abernathy",
          "telephone_number": "252-948-6723 12345",
          "street": "315 5th Ave",
          "street2": "Suite 2112",
          "city": "New York",
          "state": "NY",
          "zip_code": "10016",
          "country": "US"
        },
        "shipping_address": {
          "name": "Lacy Macejkovic",
          "company": "Bayer-Abernathy",
          "telephone_number": "252-948-6723 12345",
          "street": "315 5th Ave",
          "street2": "Suite 2112",
          "city": "New York",
          "state": "NY",
          "zip_code": "10016",
          "country": "US",
          "loading_dock": true
        },
        "brand": "acme",
        "shipping_method": "STANDARD",
        "price_cents": 10000,
        "processing_fee_cents": 0,
        "tax_cents": 1000,
        "shipping_cost_cents": 500,
        "shipping_tax_cents": 0,
        "comments": "Gift wrap required",
        "expected_delivery_date": "2019-08-24",
        "signature_required": true,
        "packing_slip_identifier": "1497064",
        "order_items": [
          {
            "client_identifier": "296f0b98-7bc5-4750-8cb9-2e36db1ff766",
            "sku": "PTBQ121308",
            "brand": "acme",
            "condition": "N",
            "quantity": 1,
            "price_cents": 10000,
            "tax_cents": 1000,
            "shipping_cost_cents": 500,
            "shipping_tax_cents": 0,
            "comments": ""
          }
        ]
      }
    ]
  }'

Responses

Batch order creation response

Bodyapplication/jsonArray [
client_identifierstring

Client identifier of the order.

Example: "3fda4c37-6830-469f-b343-9d1a482a97fd"
statusstring

Status of the order

Enum"created""invalid"
messagestring or null

Success or error message

Example: "created"
]
Response
application/json
[ { "client_identifier": "3fda4c37-6830-469f-b343-9d1a482a97fd", "status": "created", "message": null } ]

Show an order by identifier

Request

Returns the order details for the order that matches the identifier that is included in the url path.

Path
idstringrequired

The client identifier for the desired order

Example: 3573390128
Headers
api-versionstringrequired

The version of the API to use.

Example: 6
curl -i -X GET \
  https://developer.optoro.com/_mock/openapi/drop_ship/openapi/orders/3573390128 \
  -H 'api-version: 6'

Responses

Success response will return HTTP status code 200

Bodyapplication/json
orderobject(order)

Order attributes

Response
application/json
{ "order": { "id": 1, "client_identifier": "3fda4c37-6830-469f-b343-9d1a482a97fd", "billing_address": { … }, "shipping_address": { … }, "brand": "acme", "shipping_method": "STANDARD", "status": "accepted", "price_cents": 10000, "processing_fee_cents": 0, "tax_cents": 1000, "shipping_cost_cents": 500, "shipping_tax_cents": 0, "comments": "Sample order instructions", "expected_delivery_date": "2019-08-24", "signature_required": true, "packing_slip_identifier": "1497064", "reject_reason": "", "order_items": [ … ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } }

Update an order by identifier

Request

Marks the lot order that matches the identifier that is included in the url path as accepted from pending_payment.

Path
idstringrequired

The client identifier for the desired order

Example: 3573390128
Headers
api-versionstringrequired

The version of the API to use.

Example: 6
Bodyapplication/jsonrequired
orderobject

Order attributes

curl -i -X PUT \
  https://developer.optoro.com/_mock/openapi/drop_ship/openapi/orders/3573390128 \
  -H 'Content-Type: application/json' \
  -H 'api-version: 6' \
  -d '{
    "order": {
      "payment_status": "complete"
    }
  }'

Responses

Success response will return HTTP status code 204 with no content

Response
No content

Cancel an order by identifier

Request

Cancels the lot order that matches the identifier that is included in the url path from pending_payment status.

Path
idstringrequired

The client identifier for the desired order

Example: 3573390128
Headers
api-versionstringrequired

The version of the API to use.

Example: 6
curl -i -X DELETE \
  https://developer.optoro.com/_mock/openapi/drop_ship/openapi/orders/3573390128 \
  -H 'api-version: 6'

Responses

Success response will return HTTP status code 204 with no content

Response
No content

Shipments

Operations