Orders

Working with orders.

List Despatched Goodsouts

GET /v1/orders/despatched

List order goodsouts. Please note that all expands will be applied automatically.

Return Type

array<DespatchedOrders>

Filters

FieldOperatorsValue List URL
searchLIKEfuzzy search across selected attributes
idEQUALS
order.referenceIN
order.channel.short_codeIN, NOT_IN/v1/orders/channels
order.channel.idIN, NOT_IN
despatch_dateLESS_THAN, ON_DATE, MORE_THAN
order.currency.codeIN, NOT_IN
attributes.nameIN, NOT_IN

Sortings

Results can be sorted by the following keys: bid, despatch_date, order.channel.name, order.status, placed_date, status, warehouse.name.

Available expands

FieldReturn TypeDescription
attributesarray<CachedAttribute>An attribute.
courierCachedCourierA courier.
courier.serviceCachedShippingServiceHolds data about a shipping service.
courier.trackingarray<CachedCourierTracking>Tracking details.
orderCachedOrderAn order.
order.currencySummarisedCurrencyA currency.

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/despatched?expand=*", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/despatched?expand=*', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/despatched?expand=*",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/despatched?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86",
        "paging": {
            "page": 1,
            "records": 1,
            "per_page": 250,
            "total_records": 1,
            "total_pages": 1
        }
    },
    "data": [
        {
            "id": 1049789,
            "status": "despatched",
            "bid": "1049789-1049789",
            "despatch_date": null,
            "courier": {
                "name": "Royal Mail",
                "code": "RM",
                "service": {
                    "name": "CRL - Packet (24 Hr)",
                    "code": "1ST",
                    "tracked": false,
                    "signed": false
                },
                "tracking": [
                    {
                        "courier": "Royal Mail",
                        "code": "RMTN1134905823GB",
                        "url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
                    }
                ]
            },
            "attributes": [
                {
                    "name": "Marketplace",
                    "value": "202-9999999-9995900"
                }
            ],
            "order": {
                "id": 1234567,
                "reference": "CustomerReference #154254",
                "status": "open",
                "currency": {
                    "code": "GBP",
                    "name": "British Pound",
                    "symbol": "£"
                }
            }
        }
    ]
}

List Goodsouts

GET /v1/orders/goodsouts

List order goodsouts. Please note that all expands will be applied automatically. The warehouse ID filter accepts warehouse shortcodes as well as IDs.

Return Type

array<CachedGoodsout>

Filters

FieldOperatorsValue List URL
searchLIKEfuzzy search across selected attributes
idEQUALS
statusIN, NOT_IN
order.referenceIN
order.channel.short_codeIN, NOT_IN/v1/orders/channels
order.channel.idIN, NOT_IN
shipping_address.country.iso_2IN, NOT_IN
date_placedLESS_THAN, ON_DATE, MORE_THAN
despatch_dateLESS_THAN, ON_DATE, MORE_THAN
order.currency.codeIN, NOT_IN
tags.shortcodeIN, NOT_IN
warehouse.idIN, NOT_IN
attributes.nameIN, NOT_IN

Sortings

Results can be sorted by the following keys: bid, despatch_date, order.channel.name, order.status, placed_date, status, warehouse.name.

Available expands

FieldReturn TypeDescription
attributesarray<CachedAttribute>An attribute.
courierCachedCourierA courier.
courier.serviceCachedShippingServiceHolds data about a shipping service.
courier.trackingarray<CachedCourierTracking>Tracking details.
linesarray<CachedGoodsoutLine>An order goodsout line summary.
orderCachedOrderAn order.
order.brandCachedBrandA brand.
order.channelCachedOrderChannelAn order channel.
order.currencySummarisedCurrencyA currency.
shipping_addressCachedAddressAn address.
shipping_address.contactCachedAddressContactA BladePRO contact.
shipping_address.countrySummarisedCountryA country.
tagsarray<SummarisedTag>A tag.
warehouseSummarisedWarehouseA warehouse.
warehouse.countrySummarisedCountryA country.

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86",
        "paging": {
            "page": 1,
            "records": 1,
            "per_page": 250,
            "total_records": 1,
            "total_pages": 1
        }
    },
    "data": [
        {
            "id": 1049789,
            "bid": "1234567-1049789",
            "creator": "Support Team",
            "status": "awaiting_despatch",
            "date_placed": "2019-11-25T14:52:56.000Z",
            "despatch_date": null,
            "despatch_on_date": null,
            "type": "consumer",
            "retailer_id": null,
            "warehouse": "CHR",
            "courier": {
                "name": "Royal Mail",
                "code": "RM",
                "service": {
                    "name": "CRL - Packet (24 Hr)",
                    "code": "1ST",
                    "tracked": false,
                    "signed": false
                },
                "tracking": [
                    {
                        "courier": "Royal Mail",
                        "code": "RMTN1134905823GB",
                        "url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
                    }
                ]
            },
            "tags": [
                {
                    "name": "Processed",
                    "shortcode": "processed",
                    "description": "Processed by a 3rd party system"
                }
            ],
            "attributes": [
                {
                    "name": "Marketplace",
                    "value": "202-9999999-9995900"
                }
            ],
            "shipping_address": {
                "first_name": "Support",
                "last_name": "Team",
                "company": null,
                "address_one": "Unit 4",
                "address_two": "Radar Way",
                "address_three": null,
                "town": "Christchurch",
                "county": "Dorset",
                "postcode": "BH234FL",
                "email": "support.team@i-fulfilment.co.uk",
                "mobile": null,
                "telephone": null,
                "secondary_telephone": null,
                "contact": {
                    "name": "Support Team",
                    "group": "I-Fulfilment"
                },
                "country": {
                    "name": "United Kingdom",
                    "iso_2": "GB",
                    "iso_3": "GBR"
                }
            },
            "order": {
                "id": 1234567,
                "reference": "CustomerReference #154254",
                "status": "open",
                "channel": {
                    "id": 342,
                    "short_code": "DEMO",
                    "name": "Demo Channel"
                },
                "currency": {
                    "code": "GBP",
                    "name": "British Pound",
                    "symbol": "£"
                },
                "brand": {
                    "name": "Demo Brand"
                }
            },
            "lines": {
                "id": 3450345,
                "product_variation_id": 1,
                "sku": "DEMO-SKU-01",
                "name": "Example product",
                "quantity": 1
            }
        }
    ]
}

Create Order

POST /v1/orders

Creates an order.

Request Body

CreateOrder

Return Type

Orders

Types for the Request Body

CreateOrder (root level)

KeyDescriptionTypesRestrictions
channelChannel’s unique short code or ID.string
or integer
required
not null
if type is string, then min length is 3
if type is integer, then min is 1
referenceOrder specific reference.stringrequired
not null
min length is 1
currencyCurrency ISO code.stringrequired
not null
min length is 3
goodsoutsList of goodsouts to create on the order.array<Goodsout>required
not null
min count is 1

Address

KeyDescriptionTypesRestrictions
titleTitle.stringnot null
first_nameFirst name.stringrequired
not null
last_nameLast name.stringrequired
not null
companyCompany name.stringnot null
address_oneFirst line of address.stringrequired
not null
address_twoSecond line of address.stringnot null
address_threeThird line of address.stringnot null
townTown.stringrequired
not null
country_idCountry ISO 2 or ISO 3 code.stringrequired
not null
min length is 2
max length is 3
countyCounty.stringnot null
postcodePostcode.stringrequired
not null
emailEmail.stringnot null
mobileMobile number.stringnot null
telephoneLandline number.stringnot null
secondary_telephoneSecondary telephone number.stringnot null
vat_numberVAT number.stringnot null

Attribute

KeyDescriptionTypesRestrictions
nameName of the attributestringrequired
not null
min length is 1
valueValue of the attributestringrequired
not null

BulkOptions

KeyDescriptionTypesRestrictions
requires_palletisationWhether the goodsout needs palletisation.boolean
single_sku_cartons_onlyAre packed boxes only allowed to have a single SKU in them?boolean
distribution_branch_idDistribution branch ID.string
department_numberDepartment number.string
store_location_numberStore location number.string
distribution_centreDistribution centre.string
purchase_order_referencePurchase order reference.string
carton_labelCarton label details.CartonLabel

CartonLabel

KeyDescriptionTypesRestrictions
type_idCarton label type’s ID.integerrequired
not null
min is 1
referencesReferences required by the label type. Use their ‘code’ field as keys in this map.objectrequired
not null

CreateOrderGoodsoutLinePackingRequirements

KeyDescriptionTypesRestrictions
pack_together_referenceThe reference used to group items together that must be packed in the same box.string

Goodsout

KeyDescriptionTypesRestrictions
warehouseWarehouse short code.stringrequired
not null
min length is 3
typeType.enum(consumer, trade, retail)not null
retailerRetailerintegernot null
min is 1
date_placedCustomer placed date.daterequired
not null
shipping_addressCustomer shipping address.Addressrequired
not null
linesThe list of products.array<Line>required
not null
min count is 1
attributesList of attributes.array<Attribute>not null
picking_instructionsPicking instructions.stringnot null
despatch_instructionsDespatch instructions.stringnot null
delivery_instructionsDelivery instructions.stringnot null
gift_messageGift message. If presented, gift_message_template_shortcode is required.stringoptionally required
not null
gift_message_template_shortcodeShortcode for the gift message template to be used. If presented, gift_message is required.stringoptionally required
not null
shippingShipping data.Shippingnot null
bulk_optionsOptions for bulk goodsouts.BulkOptions
tagsList of tags to be applied to the goodsout.array<string>

Line

KeyDescriptionTypesRestrictions
variationProduct descriptionVariationrequired
not null
net_unit_principalThe net amount paid for a single one of these items.numberrequired
not null
min is 0
principal_taxThe ID of the tax that should be applied to the line principal value.integerrequired
not null
min is 1
discountThe amount of discount to be applied to the line principal value.numbernot null
min is 0
discount_typeThe type of discount to apply.enum(percentage, value)not null
quantityThe quantity ordered.integerrequired
not null
min is 1
expiry_dateThe required expiry date that must be picked.datenot null
batch_codeThe required batch code that must be picked.stringnot null
min length is 1
packing_requirementsPacking RequirementsCreateOrderGoodsoutLinePackingRequirements

Shipping

KeyDescriptionTypesRestrictions
customer_principalThe net amount the customer paid for shipping.numberrequired
not null
min is 0
shipping_codeShipping code.stringnot null
min length is 2
duty_paidDuty paid.booleannot null

Variation

KeyDescriptionTypesRestrictions
skuThe product’s stock keeping unit (SKU).stringrequired
not null
min length is 1
channelThe product channel’s ID.integerrequired
not null
min is 1

Available expands

FieldReturn TypeDescription
goodsoutsarray<OrderGoodsouts>Customer order shipments.
goodsouts.attributesarray<CachedAttribute>An attribute.
goodsouts.linesarray<OrderGoodsoutLines>An order for a product.
goodsouts.shipmentsarray<Shipments>Data related to a shipment.
goodsouts.shipments.shipping_serviceShippingServicesCustomer order shipments.
goodsouts.shipments.shipping_service.courier_accountShippingCourierAccountsShipping courier account data.
goodsouts.shipments.shipping_service.courier_account.courierCachedNameAndCodeHolds a name and a code field.

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders?expand=*", [
    "body" => json_encode([
        "channel" => "DEMO",
        "reference" => "#154254",
        "currency" => "GBP",
        "goodsouts" => [
            [
                "warehouse" => "CHR",
                "type" => "consumer",
                "retailer" => 1,
                "date_placed" => "2020-03-31",
                "shipping_address" => [
                    "title" => "Mr",
                    "first_name" => "Support",
                    "last_name" => "Team",
                    "company" => "ACME LTD",
                    "address_one" => "Unit 4",
                    "address_two" => "Radar Way",
                    "address_three" => "Ind Est",
                    "town" => "Christchurch",
                    "country_id" => "GB",
                    "county" => "Dorset",
                    "postcode" => "BH23 4FL",
                    "email" => "support.team@i-fulfilment.co.uk",
                    "mobile" => "00000000000",
                    "telephone" => "00000000000",
                    "secondary_telephone" => "0000000000000",
                    "vat_number" => "GB999 9999 73",
                ],
                "lines" => [
                    [
                        "variation" => [
                            "sku" => "GREEN-BALL",
                            "channel" => 1,
                        ],
                        "net_unit_principal" => 12.55,
                        "principal_tax" => 12,
                        "discount" => 0,
                        "discount_type" => "value",
                        "quantity" => 4,
                        "expiry_date" => "2025-03-31",
                        "batch_code" => "ABC154254",
                        "packing_requirements" => [
                            "pack_together_reference" => "ABC1234",
                        ],
                    ],
                ],
                "attributes" => [
                    [
                        "name" => "my-attribute",
                        "value" => "LoremIpsum",
                    ],
                ],
                "picking_instructions" => null,
                "delivery_instructions" => "When not home put in shed.",
                "gift_message" => null,
                "shipping" => [
                    "customer_principal" => 0.99,
                    "shipping_code" => null,
                    "duty_paid" => true,
                ],
                "bulk_options" => [
                    "requires_palletisation" => true,
                    "single_sku_cartons_only" => true,
                    "distribution_branch_id" => "BRANCH_01",
                    "department_number" => "DEP01",
                    "store_location_number" => "41440",
                    "distribution_centre" => "DC49004",
                    "purchase_order_reference" => "PO6548967-46531",
                    "carton_label" => [
                        "type_id" => 1,
                        "references" => [
                            "dc" => "ABC",
                            "store" => "ABC",
                        ],
                    ],
                ],
                "tags" => [
                    "JIT",
                    "MyTag",
                ],
            ],
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders?expand=*', {
  channel: "DEMO",
  reference: "#154254",
  currency: "GBP",
  goodsouts: [
    {
      warehouse: "CHR",
      type: "consumer",
      retailer: 1,
      date_placed: "2020-03-31",
      shipping_address: {
        title: "Mr",
        first_name: "Support",
        last_name: "Team",
        company: "ACME LTD",
        address_one: "Unit 4",
        address_two: "Radar Way",
        address_three: "Ind Est",
        town: "Christchurch",
        country_id: "GB",
        county: "Dorset",
        postcode: "BH23 4FL",
        email: "support.team@i-fulfilment.co.uk",
        mobile: "00000000000",
        telephone: "00000000000",
        secondary_telephone: "0000000000000",
        vat_number: "GB999 9999 73",
      },
      lines: [
        {
          variation: {
            sku: "GREEN-BALL",
            channel: 1,
          },
          net_unit_principal: 12.55,
          principal_tax: 12,
          discount: 0,
          discount_type: "value",
          quantity: 4,
          expiry_date: "2025-03-31",
          batch_code: "ABC154254",
          packing_requirements: {
            pack_together_reference: "ABC1234",
          },
        },
      ],
      attributes: [
        {
          name: "my-attribute",
          value: "LoremIpsum",
        },
      ],
      picking_instructions: nil,
      delivery_instructions: "When not home put in shed.",
      gift_message: nil,
      shipping: {
        customer_principal: 0.99,
        shipping_code: nil,
        duty_paid: true,
      },
      bulk_options: {
        requires_palletisation: true,
        single_sku_cartons_only: true,
        distribution_branch_id: "BRANCH_01",
        department_number: "DEP01",
        store_location_number: "41440",
        distribution_centre: "DC49004",
        purchase_order_reference: "PO6548967-46531",
        carton_label: {
          type_id: 1,
          references: {
            dc: "ABC",
            store: "ABC",
          },
        },
      },
      tags: [
        "JIT",
        "MyTag",
      ],
    },
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders?expand=*",
    body: {
        "channel": "DEMO",
        "reference": "#154254",
        "currency": "GBP",
        "goodsouts": [
            {
                "warehouse": "CHR",
                "type": "consumer",
                "retailer": 1,
                "date_placed": "2020-03-31",
                "shipping_address": {
                    "title": "Mr",
                    "first_name": "Support",
                    "last_name": "Team",
                    "company": "ACME LTD",
                    "address_one": "Unit 4",
                    "address_two": "Radar Way",
                    "address_three": "Ind Est",
                    "town": "Christchurch",
                    "country_id": "GB",
                    "county": "Dorset",
                    "postcode": "BH23 4FL",
                    "email": "support.team@i-fulfilment.co.uk",
                    "mobile": "00000000000",
                    "telephone": "00000000000",
                    "secondary_telephone": "0000000000000",
                    "vat_number": "GB999 9999 73"
                },
                "lines": [
                    {
                        "variation": {
                            "sku": "GREEN-BALL",
                            "channel": 1
                        },
                        "net_unit_principal": 12.55,
                        "principal_tax": 12,
                        "discount": 0,
                        "discount_type": "value",
                        "quantity": 4,
                        "expiry_date": "2025-03-31",
                        "batch_code": "ABC154254",
                        "packing_requirements": {
                            "pack_together_reference": "ABC1234"
                        }
                    }
                ],
                "attributes": [
                    {
                        "name": "my-attribute",
                        "value": "LoremIpsum"
                    }
                ],
                "picking_instructions": null,
                "delivery_instructions": "When not home put in shed.",
                "gift_message": null,
                "shipping": {
                    "customer_principal": 0.99,
                    "shipping_code": null,
                    "duty_paid": false
                },
                "bulk_options": {
                    "requires_palletisation": true,
                    "single_sku_cartons_only": true,
                    "distribution_branch_id": "BRANCH_01",
                    "department_number": "DEP01",
                    "store_location_number": "41440",
                    "distribution_centre": "DC49004",
                    "purchase_order_reference": "PO6548967-46531",
                    "carton_label": {
                        "type_id": 1,
                        "references": {
                            "dc": "ABC",
                            "store": "ABC"
                        }
                    }
                },
                "tags": [
                    "JIT",
                    "MyTag"
                ]
            }
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "channel": "DEMO",
    "reference": "#154254",
    "currency": "GBP",
    "goodsouts": [
        {
            "warehouse": "CHR",
            "type": "consumer",
            "retailer": 1,
            "date_placed": "2020-03-31",
            "shipping_address": {
                "title": "Mr",
                "first_name": "Support",
                "last_name": "Team",
                "company": "ACME LTD",
                "address_one": "Unit 4",
                "address_two": "Radar Way",
                "address_three": "Ind Est",
                "town": "Christchurch",
                "country_id": "GB",
                "county": "Dorset",
                "postcode": "BH23 4FL",
                "email": "support.team@i-fulfilment.co.uk",
                "mobile": "00000000000",
                "telephone": "00000000000",
                "secondary_telephone": "0000000000000",
                "vat_number": "GB999 9999 73"
            },
            "lines": [
                {
                    "variation": {
                        "sku": "GREEN-BALL",
                        "channel": 1
                    },
                    "net_unit_principal": 12.55,
                    "principal_tax": 12,
                    "discount": 0,
                    "discount_type": "value",
                    "quantity": 4,
                    "expiry_date": "2025-03-31",
                    "batch_code": "ABC154254",
                    "packing_requirements": {
                        "pack_together_reference": "ABC1234"
                    }
                }
            ],
            "attributes": [
                {
                    "name": "my-attribute",
                    "value": "LoremIpsum"
                }
            ],
            "picking_instructions": null,
            "delivery_instructions": "When not home put in shed.",
            "gift_message": null,
            "shipping": {
                "customer_principal": 0.99,
                "shipping_code": null,
                "duty_paid": false
            },
            "bulk_options": {
                "requires_palletisation": true,
                "single_sku_cartons_only": true,
                "distribution_branch_id": "BRANCH_01",
                "department_number": "DEP01",
                "store_location_number": "41440",
                "distribution_centre": "DC49004",
                "purchase_order_reference": "PO6548967-46531",
                "carton_label": {
                    "type_id": 1,
                    "references": {
                        "dc": "ABC",
                        "store": "ABC"
                    }
                }
            },
            "tags": [
                "JIT",
                "MyTag"
            ]
        }
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1234567,
        "reference": "#154254",
        "status": "open",
        "goodsouts": {
            "id": 1049789,
            "status": "awaiting_despatch",
            "date_placed": "2019-11-25T14:52:56.000Z",
            "despatch_date": null,
            "cancellation_date": "2019-11-25T14:52:56.000Z",
            "despatch_on_date": null,
            "type": "consumer",
            "retailer_id": null,
            "source": "How the order was created.",
            "delivery_instructions": "When not home put in shed.",
            "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
            "attributes": [
                {
                    "name": "Marketplace",
                    "value": "202-9999999-9995900"
                }
            ],
            "shipments": [
                {
                    "shipping_service": [
                        {
                            "name": "CRL - Packet (24 Hr)",
                            "code": "1ST",
                            "courier_account": [
                                {
                                    "name": "Royal Mail",
                                    "courier": {
                                        "name": "Royal Mail",
                                        "code": "RM"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "lines": [
                {
                    "id": 3450345,
                    "transaction_sku": "GREEN-BALL",
                    "quantity": 4,
                    "discount_type": "percentage",
                    "discount": 1.5,
                    "net_unit_principal": 12,
                    "status": "active",
                    "variation": {
                        "id": 1,
                        "product_id": 1,
                        "status": "active",
                        "sku": "DEMO-SKU-01",
                        "barcode": "0123456789012",
                        "product_variation_type_id": 1,
                        "discontinued_date": "2019-11-25T14:52:56.000Z",
                        "despatch_instructions": "Always pack facing upwards.",
                        "created": "2019-11-25T14:52:56.000Z",
                        "modified": "2019-11-25T14:52:56.000Z",
                        "type": {
                            "id": 1,
                            "name": "Standard Product",
                            "type": "product",
                            "created": "2019-11-25T14:52:56.000Z",
                            "modified": "2019-11-25T14:52:56.000Z"
                        },
                        "descriptions": [
                            {
                                "id": 1,
                                "product_variation_id": 1,
                                "locale_id": 1,
                                "name": "Example product",
                                "full_description": "Example product description",
                                "created": "2019-11-25T14:52:56.000Z",
                                "modified": "2019-11-25T14:52:56.000Z",
                                "locale": {
                                    "id": 1,
                                    "name": "English",
                                    "code": "en",
                                    "created": "2019-11-25T14:52:56.000Z",
                                    "modified": "2019-11-25T14:52:56.000Z"
                                }
                            }
                        ]
                    }
                }
            ],
            "tags": [
                {
                    "id": 1,
                    "name": "Processed",
                    "shortcode": "PROCESSED",
                    "description": "Marked a as processed by XYZ system",
                    "created": "2019-11-25T14:52:56.000Z"
                }
            ],
            "warehouse": [
                {
                    "id": 1,
                    "short_code": "CHR",
                    "name": "Christchurch"
                }
            ],
            "order": {
                "id": 1234567,
                "reference": "#154254",
                "status": "open",
                "channel": {
                    "id": 321,
                    "organisation_id": 321,
                    "name": "Demo Channel",
                    "short_code": "DEMO",
                    "status": "active",
                    "created": "2019-11-25T14:52:56.000Z",
                    "modified": "2019-11-25T14:52:56.000Z",
                    "organisation": {
                        "id": 1,
                        "name": "Demo",
                        "active": true,
                        "vat_number": "GB999 9999 73",
                        "notes": "Demo account...",
                        "contact_name": "Mr Joe Bloggs",
                        "contact_phone": "+44 01425 000 000",
                        "contact_mobile": "+44 00000000",
                        "contact_email": "joe.bloggs@example.com",
                        "created": "2019-11-25T14:52:56.000Z",
                        "modified": "2019-11-25T14:52:56.000Z"
                    }
                }
            },
            "shipping_address": {
                "title": "Mr",
                "first_name": "Support",
                "last_name": "Team",
                "company": "ACME LTD",
                "address_one": "Unit 4",
                "address_two": "Radar Way",
                "address_three": null,
                "town": "Christchurch",
                "county": "Dorset",
                "postcode": "BH23 4FL",
                "country_id": 1,
                "email": "support.team@i-fulfilment.co.uk",
                "mobile": "00000000000",
                "telephone": "00000000000",
                "secondary_telephone": "0000000000000",
                "vat_number": "GB999 9999 73",
                "country": {
                    "id": 1,
                    "name": "United Kingdom",
                    "iso_2": "GB",
                    "iso_3": "GBR",
                    "region_id": 1,
                    "currency_id": 1,
                    "block": "EU",
                    "region": {}
                }
            }
        }
    }
}

Create Goodsout

POST /v1/orders/goodsouts

Creates an order goodsout.

Request Body

CreateGoodsout

Return Type

OrderGoodsouts

Types for the Request Body

CreateGoodsout (root level)

KeyDescriptionTypesRestrictions
warehouseWarehouse short code.stringrequired
not null
min length is 3
orderOrder.Orderrequired
not null
typeType.enum(consumer, trade, retail)not null
retailerRetailerintegernot null
min is 1
date_placedCustomer placed date.daterequired
not null
shipping_addressCustomer shipping address.Addressrequired
not null
linesThe list of products.array<Line>required
not null
min count is 1
attributesList of attributes.array<Attribute>not null
picking_instructionsPicking instructions.stringnot null
despatch_instructionsDespatch instructions.stringnot null
delivery_instructionsDelivery instructions.stringnot null
gift_messageGift message. If presented, gift_message_template_shortcode is required.stringoptionally required
not null
gift_message_template_shortcodeShortcode for the gift message template to be used. If presented, gift_message is required.stringoptionally required
not null
shippingShipping data.Shippingnot null
import_optionsImport options.ImportOptions
metadataGoodsout metadata.array<OrderResourceMetadata>
bulk_optionsOptions for bulk goodsouts.BulkOptions
tagsList of tags to be applied to the goodsout.array<string>

Address

KeyDescriptionTypesRestrictions
titleTitle.string
first_nameFirst name.string
last_nameLast name.string
companyCompany name.string
address_oneFirst line of address.string
address_twoSecond line of address.string
address_threeThird line of address.string
townTown.string
country_idCountry ISO 2 or ISO 3 code.stringmin length is 0
max length is 3
countyCounty.string
postcodePostcode.string
emailEmail.string
mobileMobile number.string
telephoneLandline number.string
secondary_telephoneSecondary telephone number.string
vat_numberVAT number.string
location_idLocation ID.string

Attribute

KeyDescriptionTypesRestrictions
nameName of the attributestringrequired
not null
min length is 1
valueValue of the attributestringrequired
not null

BulkOptions

KeyDescriptionTypesRestrictions
requires_palletisationWhether the goodsout needs palletisation.boolean
single_sku_cartons_onlyAre packed boxes only allowed to have a single SKU in them?boolean
distribution_branch_idDistribution branch ID.string
department_numberDepartment number.string
store_location_numberStore location number.string
distribution_centreDistribution centre.string
purchase_order_referencePurchase order reference.string
carton_labelCarton label details.CartonLabel

CartonLabel

KeyDescriptionTypesRestrictions
type_idCarton label type’s ID.integerrequired
not null
min is 1
referencesReferences required by the label type. Use their ‘code’ field as keys in this map.objectrequired
not null

CreateOrderGoodsoutLinePackingRequirements

KeyDescriptionTypesRestrictions
pack_together_referenceThe reference used to group items together that must be packed in the same box.string

ImportOptions

KeyDescriptionTypesRestrictions
fraudIf the order came in as a possible fraud order, set this to true. The order will be put on hold.boolean

Line

KeyDescriptionTypesRestrictions
variationProduct descriptionVariationrequired
not null
net_unit_principalThe net amount paid for a single one of these items.numberrequired
not null
min is 0
principal_taxThe ID of the tax that should be applied to the line principal value.integerrequired
not null
min is 1
discountThe amount of discount to be applied to the line principal value.numbernot null
min is 0
discount_typeThe type of discount to apply.enum(percentage, value)not null
quantityThe quantity ordered.integerrequired
not null
min is 1
packing_requirementsPacking RequirementsCreateOrderGoodsoutLinePackingRequirements
expiry_dateThe required expiry date that must be picked.datenot null
batch_codeThe required batch code that must be picked.stringnot null
min length is 1

Order

KeyDescriptionTypesRestrictions
channelChannel’s unique short code or ID.string
or integer
required
not null
if type is string, then min length is 3
if type is integer, then min is 1
referenceOrder specific reference.stringrequired
not null
min length is 1
currencyCurrency ISO code.stringrequired
not null
min length is 3

OrderResourceMetadata

KeyDescriptionTypesRestrictions
keyMetadata key.stringrequired
not null
valueMetadata value.stringrequired
not null

Shipping

KeyDescriptionTypesRestrictions
customer_principalThe net amount the customer paid for shipping.numberrequired
not null
min is 0
shipping_codeShipping code.stringnot null
min length is 2
duty_paidDuty paid.booleannot null

Variation

KeyDescriptionTypesRestrictions
skuThe product’s stock keeping unit (SKU).stringrequired
not null
min length is 1
channelThe product channel’s ID.integerrequired
not null
min is 1

Available expands

FieldReturn TypeDescription
attributesarray<CachedAttribute>An attribute.
linesarray<OrderGoodsoutLines>An order for a product.
lines.variationProductVariationsMarketplace listable products’ data.
lines.variation.descriptionsarray<ProductVariationDescriptions>Variation descriptions.
lines.variation.descriptions.localeLocalesLocale data.
lines.variation.typeProductVariationTypesProduct variation type data.
orderOrdersCustomer order groups.
order.channelOrderChannelsCustomer order groups.
order.channel.organisationOrganisationsOrganisation data.
shipmentsarray<Shipments>Data related to a shipment.
shipments.shipping_serviceShippingServicesCustomer order shipments.
shipments.shipping_service.courier_accountShippingCourierAccountsShipping courier account data.
shipments.shipping_service.courier_account.courierCachedNameAndCodeHolds a name and a code field.
shipping_addressOrderGoodsoutAddressesData related to an address.
shipping_address.countryCountriesA country.
shipping_address.country.regionRegionsGeographical region data.
tagsarray<Tags>A tag.
warehouseSummarisedWarehouseA warehouse.

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*", [
    "body" => json_encode([
        "warehouse" => "CHR",
        "order" => [
            "channel" => "DEMO",
            "reference" => "#154254",
            "currency" => "GBP",
        ],
        "type" => "consumer",
        "retailer" => 1,
        "date_placed" => "2020-03-31",
        "shipping_address" => [
            "title" => "Mr",
            "first_name" => "Support",
            "last_name" => "Team",
            "company" => "ACME LTD",
            "address_one" => "Unit 4",
            "address_two" => "Radar Way",
            "address_three" => "Ind Est",
            "town" => "Christchurch",
            "country_id" => "GB",
            "county" => "Dorset",
            "postcode" => "BH23 4FL",
            "email" => "support.team@i-fulfilment.co.uk",
            "mobile" => "00000000000",
            "telephone" => "00000000000",
            "secondary_telephone" => "0000000000000",
            "vat_number" => "GB999 9999 73",
            "location_id" => "00000000",
        ],
        "lines" => [
            [
                "variation" => [
                    "sku" => "GREEN-BALL",
                    "channel" => 1,
                ],
                "net_unit_principal" => 12.55,
                "principal_tax" => 12,
                "discount" => 0,
                "discount_type" => "value",
                "quantity" => 4,
                "packing_requirements" => [
                    "pack_together_reference" => "ABC1234",
                ],
                "expiry_date" => "2025-03-31",
                "batch_code" => "ABC154254",
            ],
        ],
        "attributes" => [
            [
                "name" => "my-attribute",
                "value" => "LoremIpsum",
            ],
        ],
        "delivery_instructions" => "When not home put in shed.",
        "shipping" => [
            "customer_principal" => 0.99,
            "duty_paid" => true,
        ],
        "import_options" => [
            "fraud" => true,
        ],
        "bulk_options" => [
            "requires_palletisation" => true,
            "single_sku_cartons_only" => true,
            "distribution_branch_id" => "BRANCH_01",
            "department_number" => "DEP01",
            "store_location_number" => "41440",
            "distribution_centre" => "DC49004",
            "purchase_order_reference" => "PO6548967-46531",
            "carton_label" => [
                "type_id" => 1,
                "references" => [
                    "dc" => "ABC",
                    "store" => "ABC",
                ],
            ],
        ],
        "tags" => [
            "JIT",
            "MyTag",
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*', {
  warehouse: "CHR",
  order: {
    channel: "DEMO",
    reference: "#154254",
    currency: "GBP",
  },
  type: "consumer",
  retailer: 1,
  date_placed: "2020-03-31",
  shipping_address: {
    title: "Mr",
    first_name: "Support",
    last_name: "Team",
    company: "ACME LTD",
    address_one: "Unit 4",
    address_two: "Radar Way",
    address_three: "Ind Est",
    town: "Christchurch",
    country_id: "GB",
    county: "Dorset",
    postcode: "BH23 4FL",
    email: "support.team@i-fulfilment.co.uk",
    mobile: "00000000000",
    telephone: "00000000000",
    secondary_telephone: "0000000000000",
    vat_number: "GB999 9999 73",
    location_id: "00000000",
  },
  lines: [
    {
      variation: {
        sku: "GREEN-BALL",
        channel: 1,
      },
      net_unit_principal: 12.55,
      principal_tax: 12,
      discount: 0,
      discount_type: "value",
      quantity: 4,
      packing_requirements: {
        pack_together_reference: "ABC1234",
      },
      expiry_date: "2025-03-31",
      batch_code: "ABC154254",
    },
  ],
  attributes: [
    {
      name: "my-attribute",
      value: "LoremIpsum",
    },
  ],
  delivery_instructions: "When not home put in shed.",
  shipping: {
    customer_principal: 0.99,
    duty_paid: true,
  },
  import_options: {
    fraud: true,
  },
  bulk_options: {
    requires_palletisation: true,
    single_sku_cartons_only: true,
    distribution_branch_id: "BRANCH_01",
    department_number: "DEP01",
    store_location_number: "41440",
    distribution_centre: "DC49004",
    purchase_order_reference: "PO6548967-46531",
    carton_label: {
      type_id: 1,
      references: {
        dc: "ABC",
        store: "ABC",
      },
    },
  },
  tags: [
    "JIT",
    "MyTag",
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*",
    body: {
        "warehouse": "CHR",
        "order": {
            "channel": "DEMO",
            "reference": "#154254",
            "currency": "GBP"
        },
        "type": "consumer",
        "retailer": 1,
        "date_placed": "2020-03-31",
        "shipping_address": {
            "title": "Mr",
            "first_name": "Support",
            "last_name": "Team",
            "company": "ACME LTD",
            "address_one": "Unit 4",
            "address_two": "Radar Way",
            "address_three": "Ind Est",
            "town": "Christchurch",
            "country_id": "GB",
            "county": "Dorset",
            "postcode": "BH23 4FL",
            "email": "support.team@i-fulfilment.co.uk",
            "mobile": "00000000000",
            "telephone": "00000000000",
            "secondary_telephone": "0000000000000",
            "vat_number": "GB999 9999 73",
            "location_id": "00000000"
        },
        "lines": [
            {
                "variation": {
                    "sku": "GREEN-BALL",
                    "channel": 1
                },
                "net_unit_principal": 12.55,
                "principal_tax": 12,
                "discount": 0,
                "discount_type": "value",
                "quantity": 4,
                "packing_requirements": {
                    "pack_together_reference": "ABC1234"
                },
                "expiry_date": "2025-03-31",
                "batch_code": "ABC154254"
            }
        ],
        "attributes": [
            {
                "name": "my-attribute",
                "value": "LoremIpsum"
            }
        ],
        "delivery_instructions": "When not home put in shed.",
        "shipping": {
            "customer_principal": 0.99,
            "duty_paid": false
        },
        "import_options": {
            "fraud": true
        },
        "bulk_options": {
            "requires_palletisation": true,
            "single_sku_cartons_only": true,
            "distribution_branch_id": "BRANCH_01",
            "department_number": "DEP01",
            "store_location_number": "41440",
            "distribution_centre": "DC49004",
            "purchase_order_reference": "PO6548967-46531",
            "carton_label": {
                "type_id": 1,
                "references": {
                    "dc": "ABC",
                    "store": "ABC"
                }
            }
        },
        "tags": [
            "JIT",
            "MyTag"
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "warehouse": "CHR",
    "order": {
        "channel": "DEMO",
        "reference": "#154254",
        "currency": "GBP"
    },
    "type": "consumer",
    "retailer": 1,
    "date_placed": "2020-03-31",
    "shipping_address": {
        "title": "Mr",
        "first_name": "Support",
        "last_name": "Team",
        "company": "ACME LTD",
        "address_one": "Unit 4",
        "address_two": "Radar Way",
        "address_three": "Ind Est",
        "town": "Christchurch",
        "country_id": "GB",
        "county": "Dorset",
        "postcode": "BH23 4FL",
        "email": "support.team@i-fulfilment.co.uk",
        "mobile": "00000000000",
        "telephone": "00000000000",
        "secondary_telephone": "0000000000000",
        "vat_number": "GB999 9999 73",
        "location_id": "00000000"
    },
    "lines": [
        {
            "variation": {
                "sku": "GREEN-BALL",
                "channel": 1
            },
            "net_unit_principal": 12.55,
            "principal_tax": 12,
            "discount": 0,
            "discount_type": "value",
            "quantity": 4,
            "packing_requirements": {
                "pack_together_reference": "ABC1234"
            },
            "expiry_date": "2025-03-31",
            "batch_code": "ABC154254"
        }
    ],
    "attributes": [
        {
            "name": "my-attribute",
            "value": "LoremIpsum"
        }
    ],
    "delivery_instructions": "When not home put in shed.",
    "shipping": {
        "customer_principal": 0.99,
        "duty_paid": false
    },
    "import_options": {
        "fraud": true
    },
    "bulk_options": {
        "requires_palletisation": true,
        "single_sku_cartons_only": true,
        "distribution_branch_id": "BRANCH_01",
        "department_number": "DEP01",
        "store_location_number": "41440",
        "distribution_centre": "DC49004",
        "purchase_order_reference": "PO6548967-46531",
        "carton_label": {
            "type_id": 1,
            "references": {
                "dc": "ABC",
                "store": "ABC"
            }
        }
    },
    "tags": [
        "JIT",
        "MyTag"
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
        "attributes": [
            {
                "name": "Marketplace",
                "value": "202-9999999-9995900"
            }
        ],
        "shipments": [
            {
                "shipping_service": [
                    {
                        "name": "CRL - Packet (24 Hr)",
                        "code": "1ST",
                        "courier_account": [
                            {
                                "name": "Royal Mail",
                                "courier": {
                                    "name": "Royal Mail",
                                    "code": "RM"
                                }
                            }
                        ]
                    }
                ]
            }
        ],
        "lines": [
            {
                "id": 3450345,
                "transaction_sku": "GREEN-BALL",
                "quantity": 4,
                "discount_type": "percentage",
                "discount": 1.5,
                "net_unit_principal": 12,
                "status": "active",
                "variation": {
                    "id": 1,
                    "product_id": 1,
                    "status": "active",
                    "sku": "DEMO-SKU-01",
                    "barcode": "0123456789012",
                    "product_variation_type_id": 1,
                    "discontinued_date": "2019-11-25T14:52:56.000Z",
                    "despatch_instructions": "Always pack facing upwards.",
                    "created": "2019-11-25T14:52:56.000Z",
                    "modified": "2019-11-25T14:52:56.000Z",
                    "type": {
                        "id": 1,
                        "name": "Standard Product",
                        "type": "product",
                        "created": "2019-11-25T14:52:56.000Z",
                        "modified": "2019-11-25T14:52:56.000Z"
                    },
                    "descriptions": [
                        {
                            "id": 1,
                            "product_variation_id": 1,
                            "locale_id": 1,
                            "name": "Example product",
                            "full_description": "Example product description",
                            "created": "2019-11-25T14:52:56.000Z",
                            "modified": "2019-11-25T14:52:56.000Z",
                            "locale": {
                                "id": 1,
                                "name": "English",
                                "code": "en",
                                "created": "2019-11-25T14:52:56.000Z",
                                "modified": "2019-11-25T14:52:56.000Z"
                            }
                        }
                    ]
                }
            }
        ],
        "tags": [
            {
                "id": 1,
                "name": "Processed",
                "shortcode": "PROCESSED",
                "description": "Marked a as processed by XYZ system",
                "created": "2019-11-25T14:52:56.000Z"
            }
        ],
        "warehouse": [
            {
                "id": 1,
                "short_code": "CHR",
                "name": "Christchurch"
            }
        ],
        "order": {
            "id": 1234567,
            "reference": "#154254",
            "status": "open",
            "channel": {
                "id": 321,
                "organisation_id": 321,
                "name": "Demo Channel",
                "short_code": "DEMO",
                "status": "active",
                "created": "2019-11-25T14:52:56.000Z",
                "modified": "2019-11-25T14:52:56.000Z",
                "organisation": {
                    "id": 1,
                    "name": "Demo",
                    "active": true,
                    "vat_number": "GB999 9999 73",
                    "notes": "Demo account...",
                    "contact_name": "Mr Joe Bloggs",
                    "contact_phone": "+44 01425 000 000",
                    "contact_mobile": "+44 00000000",
                    "contact_email": "joe.bloggs@example.com",
                    "created": "2019-11-25T14:52:56.000Z",
                    "modified": "2019-11-25T14:52:56.000Z"
                }
            }
        },
        "shipping_address": {
            "title": "Mr",
            "first_name": "Support",
            "last_name": "Team",
            "company": "ACME LTD",
            "address_one": "Unit 4",
            "address_two": "Radar Way",
            "address_three": null,
            "town": "Christchurch",
            "county": "Dorset",
            "postcode": "BH23 4FL",
            "country_id": 1,
            "email": "support.team@i-fulfilment.co.uk",
            "mobile": "00000000000",
            "telephone": "00000000000",
            "secondary_telephone": "0000000000000",
            "vat_number": "GB999 9999 73",
            "country": {
                "id": 1,
                "name": "United Kingdom",
                "iso_2": "GB",
                "iso_3": "GBR",
                "region_id": 1,
                "currency_id": 1,
                "block": "EU",
                "region": {}
            }
        }
    }
}

Create Goodsout (minimal response)

POST /v1/orders/goodsouts/minimal

Creates an order goodsout and returns minimal information about it.

Request Body

CreateGoodsout

Return Type

MinimalOrder

Types for the Request Body

CreateGoodsout (root level)

KeyDescriptionTypesRestrictions
warehouseWarehouse short code.stringrequired
not null
min length is 3
orderOrder.Orderrequired
not null
typeType.enum(consumer, trade, retail)not null
retailerRetailerintegernot null
min is 1
date_placedCustomer placed date.daterequired
not null
shipping_addressCustomer shipping address.Addressrequired
not null
linesThe list of products.array<Line>required
not null
min count is 1
attributesList of attributes.array<Attribute>not null
picking_instructionsPicking instructions.stringnot null
despatch_instructionsDespatch instructions.stringnot null
delivery_instructionsDelivery instructions.stringnot null
gift_messageGift message. If presented, gift_message_template_shortcode is required.stringoptionally required
not null
gift_message_template_shortcodeShortcode for the gift message template to be used. If presented, gift_message is required.stringoptionally required
not null
shippingShipping data.Shippingnot null
import_optionsImport options.ImportOptions
metadataGoodsout metadata.array<OrderResourceMetadata>
bulk_optionsOptions for bulk goodsouts.BulkOptions
tagsList of tags to be applied to the goodsout.array<string>

Address

KeyDescriptionTypesRestrictions
titleTitle.string
first_nameFirst name.string
last_nameLast name.string
companyCompany name.string
address_oneFirst line of address.string
address_twoSecond line of address.string
address_threeThird line of address.string
townTown.string
country_idCountry ISO 2 or ISO 3 code.stringmin length is 0
max length is 3
countyCounty.string
postcodePostcode.string
emailEmail.string
mobileMobile number.string
telephoneLandline number.string
secondary_telephoneSecondary telephone number.string
vat_numberVAT number.string
location_idLocation ID.string

Attribute

KeyDescriptionTypesRestrictions
nameName of the attributestringrequired
not null
min length is 1
valueValue of the attributestringrequired
not null

BulkOptions

KeyDescriptionTypesRestrictions
requires_palletisationWhether the goodsout needs palletisation.boolean
single_sku_cartons_onlyAre packed boxes only allowed to have a single SKU in them?boolean
distribution_branch_idDistribution branch ID.string
department_numberDepartment number.string
store_location_numberStore location number.string
distribution_centreDistribution centre.string
purchase_order_referencePurchase order reference.string
carton_labelCarton label details.CartonLabel

CartonLabel

KeyDescriptionTypesRestrictions
type_idCarton label type’s ID.integerrequired
not null
min is 1
referencesReferences required by the label type. Use their ‘code’ field as keys in this map.objectrequired
not null

CreateOrderGoodsoutLinePackingRequirements

KeyDescriptionTypesRestrictions
pack_together_referenceThe reference used to group items together that must be packed in the same box.string

ImportOptions

KeyDescriptionTypesRestrictions
fraudIf the order came in as a possible fraud order, set this to true. The order will be put on hold.boolean

Line

KeyDescriptionTypesRestrictions
variationProduct descriptionVariationrequired
not null
net_unit_principalThe net amount paid for a single one of these items.numberrequired
not null
min is 0
principal_taxThe ID of the tax that should be applied to the line principal value.integerrequired
not null
min is 1
discountThe amount of discount to be applied to the line principal value.numbernot null
min is 0
discount_typeThe type of discount to apply.enum(percentage, value)not null
quantityThe quantity ordered.integerrequired
not null
min is 1
packing_requirementsPacking RequirementsCreateOrderGoodsoutLinePackingRequirements
expiry_dateThe required expiry date that must be picked.datenot null
batch_codeThe required batch code that must be picked.stringnot null
min length is 1

Order

KeyDescriptionTypesRestrictions
channelChannel’s unique short code or ID.string
or integer
required
not null
if type is string, then min length is 3
if type is integer, then min is 1
referenceOrder specific reference.stringrequired
not null
min length is 1
currencyCurrency ISO code.stringrequired
not null
min length is 3

OrderResourceMetadata

KeyDescriptionTypesRestrictions
keyMetadata key.stringrequired
not null
valueMetadata value.stringrequired
not null

Shipping

KeyDescriptionTypesRestrictions
customer_principalThe net amount the customer paid for shipping.numberrequired
not null
min is 0
shipping_codeShipping code.stringnot null
min length is 2
duty_paidDuty paid.booleannot null

Variation

KeyDescriptionTypesRestrictions
skuThe product’s stock keeping unit (SKU).stringrequired
not null
min length is 1
channelThe product channel’s ID.integerrequired
not null
min is 1

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/minimal", [
    "body" => json_encode([
        "warehouse" => "CHR",
        "order" => [
            "channel" => "DEMO",
            "reference" => "#154254",
            "currency" => "GBP",
        ],
        "type" => "consumer",
        "retailer" => 1,
        "date_placed" => "2020-03-31",
        "shipping_address" => [
            "title" => "Mr",
            "first_name" => "Support",
            "last_name" => "Team",
            "company" => "ACME LTD",
            "address_one" => "Unit 4",
            "address_two" => "Radar Way",
            "address_three" => "Ind Est",
            "town" => "Christchurch",
            "country_id" => "GB",
            "county" => "Dorset",
            "postcode" => "BH23 4FL",
            "email" => "support.team@i-fulfilment.co.uk",
            "mobile" => "00000000000",
            "telephone" => "00000000000",
            "secondary_telephone" => "0000000000000",
            "vat_number" => "GB999 9999 73",
            "location_id" => "00000000",
        ],
        "lines" => [
            [
                "variation" => [
                    "sku" => "GREEN-BALL",
                    "channel" => 1,
                ],
                "net_unit_principal" => 12.55,
                "principal_tax" => 12,
                "discount" => 0,
                "discount_type" => "value",
                "quantity" => 4,
                "packing_requirements" => [
                    "pack_together_reference" => "ABC1234",
                ],
                "expiry_date" => "2025-03-31",
                "batch_code" => "ABC154254",
            ],
        ],
        "attributes" => [
            [
                "name" => "my-attribute",
                "value" => "LoremIpsum",
            ],
        ],
        "delivery_instructions" => "When not home put in shed.",
        "shipping" => [
            "customer_principal" => 0.99,
            "duty_paid" => true,
        ],
        "import_options" => [
            "fraud" => true,
        ],
        "bulk_options" => [
            "requires_palletisation" => true,
            "single_sku_cartons_only" => true,
            "distribution_branch_id" => "BRANCH_01",
            "department_number" => "DEP01",
            "store_location_number" => "41440",
            "distribution_centre" => "DC49004",
            "purchase_order_reference" => "PO6548967-46531",
            "carton_label" => [
                "type_id" => 1,
                "references" => [
                    "dc" => "ABC",
                    "store" => "ABC",
                ],
            ],
        ],
        "tags" => [
            "JIT",
            "MyTag",
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/minimal', {
  warehouse: "CHR",
  order: {
    channel: "DEMO",
    reference: "#154254",
    currency: "GBP",
  },
  type: "consumer",
  retailer: 1,
  date_placed: "2020-03-31",
  shipping_address: {
    title: "Mr",
    first_name: "Support",
    last_name: "Team",
    company: "ACME LTD",
    address_one: "Unit 4",
    address_two: "Radar Way",
    address_three: "Ind Est",
    town: "Christchurch",
    country_id: "GB",
    county: "Dorset",
    postcode: "BH23 4FL",
    email: "support.team@i-fulfilment.co.uk",
    mobile: "00000000000",
    telephone: "00000000000",
    secondary_telephone: "0000000000000",
    vat_number: "GB999 9999 73",
    location_id: "00000000",
  },
  lines: [
    {
      variation: {
        sku: "GREEN-BALL",
        channel: 1,
      },
      net_unit_principal: 12.55,
      principal_tax: 12,
      discount: 0,
      discount_type: "value",
      quantity: 4,
      packing_requirements: {
        pack_together_reference: "ABC1234",
      },
      expiry_date: "2025-03-31",
      batch_code: "ABC154254",
    },
  ],
  attributes: [
    {
      name: "my-attribute",
      value: "LoremIpsum",
    },
  ],
  delivery_instructions: "When not home put in shed.",
  shipping: {
    customer_principal: 0.99,
    duty_paid: true,
  },
  import_options: {
    fraud: true,
  },
  bulk_options: {
    requires_palletisation: true,
    single_sku_cartons_only: true,
    distribution_branch_id: "BRANCH_01",
    department_number: "DEP01",
    store_location_number: "41440",
    distribution_centre: "DC49004",
    purchase_order_reference: "PO6548967-46531",
    carton_label: {
      type_id: 1,
      references: {
        dc: "ABC",
        store: "ABC",
      },
    },
  },
  tags: [
    "JIT",
    "MyTag",
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/minimal",
    body: {
        "warehouse": "CHR",
        "order": {
            "channel": "DEMO",
            "reference": "#154254",
            "currency": "GBP"
        },
        "type": "consumer",
        "retailer": 1,
        "date_placed": "2020-03-31",
        "shipping_address": {
            "title": "Mr",
            "first_name": "Support",
            "last_name": "Team",
            "company": "ACME LTD",
            "address_one": "Unit 4",
            "address_two": "Radar Way",
            "address_three": "Ind Est",
            "town": "Christchurch",
            "country_id": "GB",
            "county": "Dorset",
            "postcode": "BH23 4FL",
            "email": "support.team@i-fulfilment.co.uk",
            "mobile": "00000000000",
            "telephone": "00000000000",
            "secondary_telephone": "0000000000000",
            "vat_number": "GB999 9999 73",
            "location_id": "00000000"
        },
        "lines": [
            {
                "variation": {
                    "sku": "GREEN-BALL",
                    "channel": 1
                },
                "net_unit_principal": 12.55,
                "principal_tax": 12,
                "discount": 0,
                "discount_type": "value",
                "quantity": 4,
                "packing_requirements": {
                    "pack_together_reference": "ABC1234"
                },
                "expiry_date": "2025-03-31",
                "batch_code": "ABC154254"
            }
        ],
        "attributes": [
            {
                "name": "my-attribute",
                "value": "LoremIpsum"
            }
        ],
        "delivery_instructions": "When not home put in shed.",
        "shipping": {
            "customer_principal": 0.99,
            "duty_paid": false
        },
        "import_options": {
            "fraud": true
        },
        "bulk_options": {
            "requires_palletisation": true,
            "single_sku_cartons_only": true,
            "distribution_branch_id": "BRANCH_01",
            "department_number": "DEP01",
            "store_location_number": "41440",
            "distribution_centre": "DC49004",
            "purchase_order_reference": "PO6548967-46531",
            "carton_label": {
                "type_id": 1,
                "references": {
                    "dc": "ABC",
                    "store": "ABC"
                }
            }
        },
        "tags": [
            "JIT",
            "MyTag"
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/minimal' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "warehouse": "CHR",
    "order": {
        "channel": "DEMO",
        "reference": "#154254",
        "currency": "GBP"
    },
    "type": "consumer",
    "retailer": 1,
    "date_placed": "2020-03-31",
    "shipping_address": {
        "title": "Mr",
        "first_name": "Support",
        "last_name": "Team",
        "company": "ACME LTD",
        "address_one": "Unit 4",
        "address_two": "Radar Way",
        "address_three": "Ind Est",
        "town": "Christchurch",
        "country_id": "GB",
        "county": "Dorset",
        "postcode": "BH23 4FL",
        "email": "support.team@i-fulfilment.co.uk",
        "mobile": "00000000000",
        "telephone": "00000000000",
        "secondary_telephone": "0000000000000",
        "vat_number": "GB999 9999 73",
        "location_id": "00000000"
    },
    "lines": [
        {
            "variation": {
                "sku": "GREEN-BALL",
                "channel": 1
            },
            "net_unit_principal": 12.55,
            "principal_tax": 12,
            "discount": 0,
            "discount_type": "value",
            "quantity": 4,
            "packing_requirements": {
                "pack_together_reference": "ABC1234"
            },
            "expiry_date": "2025-03-31",
            "batch_code": "ABC154254"
        }
    ],
    "attributes": [
        {
            "name": "my-attribute",
            "value": "LoremIpsum"
        }
    ],
    "delivery_instructions": "When not home put in shed.",
    "shipping": {
        "customer_principal": 0.99,
        "duty_paid": false
    },
    "import_options": {
        "fraud": true
    },
    "bulk_options": {
        "requires_palletisation": true,
        "single_sku_cartons_only": true,
        "distribution_branch_id": "BRANCH_01",
        "department_number": "DEP01",
        "store_location_number": "41440",
        "distribution_centre": "DC49004",
        "purchase_order_reference": "PO6548967-46531",
        "carton_label": {
            "type_id": 1,
            "references": {
                "dc": "ABC",
                "store": "ABC"
            }
        }
    },
    "tags": [
        "JIT",
        "MyTag"
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "order_id": 1234567,
        "goodsout_ids": [
            1049789
        ]
    }
}

Bulk Import Orders

POST /v1/orders/goodsouts/from_file

Uploads a file to be imported.

Request Body

BulkImportOrders

Return Type

BulkImportOrdersFile

Types for the Request Body

BulkImportOrders (root level)

KeyDescriptionTypesRestrictions
fileThe file contents Base64 encoded.stringrequired
not null
min length is 1
nameThe file name.stringrequired
not null
min length is 1
extensionThe file extension.stringrequired
not null
min length is 1
mimeThe file mime.stringrequired
not null
min length is 1
categoryThe document category.enum(document)required
not null
paper_sizeThe paper size.enum(A4, 6x4)not null
print_at_despatchThe number of copies to print at desptach.numbernot null
min is 0
mapping_template_idThe ID for the mapping template.integerrequired
not null
min is 1
organisation_idThe ID for the organisation.integerrequired
not null
min is 1
order_channel_idThe ID for the order channel.integerrequired
not null
min is 1
brand_idThe ID for the brand.integerrequired
not null
min is 1
currency_idThe ID for the currency.integerrequired
not null
min is 1
fieldsThe array of fields of the file.stringrequired
not null
slugThe slug.stringrequired
not null

Rate limit cost

Each call to this endpoint deducts 25 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/from_file", [
    "body" => json_encode([
        "file" => ":: FILE CONTENTS ::",
        "name" => "my_document.pdf",
        "extension" => "pdf",
        "mime" => "application/pdf",
        "category" => "document",
        "paper_size" => "A4",
        "print_at_despatch" => 1,
        "mapping_template_id" => 123,
        "organisation_id" => 123,
        "order_channel_id" => 123,
        "brand_id" => 123,
        "currency_id" => 123,
        "fields" => "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
        "slug" => "order",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/from_file', {
  file: ":: FILE CONTENTS ::",
  name: "my_document.pdf",
  extension: "pdf",
  mime: "application/pdf",
  category: "document",
  paper_size: "A4",
  print_at_despatch: 1,
  mapping_template_id: 123,
  organisation_id: 123,
  order_channel_id: 123,
  brand_id: 123,
  currency_id: 123,
  fields: "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
  slug: "order",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/from_file",
    body: {
        "file": ":: FILE CONTENTS ::",
        "name": "my_document.pdf",
        "extension": "pdf",
        "mime": "application/pdf",
        "category": "document",
        "paper_size": "A4",
        "print_at_despatch": 1,
        "mapping_template_id": 123,
        "organisation_id": 123,
        "order_channel_id": 123,
        "brand_id": 123,
        "currency_id": 123,
        "fields": "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
        "slug": "order"
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/from_file' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "file": ":: FILE CONTENTS ::",
    "name": "my_document.pdf",
    "extension": "pdf",
    "mime": "application/pdf",
    "category": "document",
    "paper_size": "A4",
    "print_at_despatch": 1,
    "mapping_template_id": 123,
    "organisation_id": 123,
    "order_channel_id": 123,
    "brand_id": 123,
    "currency_id": 123,
    "fields": "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
    "slug": "order"
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "success": true
    }
}

View Goodsout

GET /v1/orders/goodsouts/:id

Retrieves a single goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Return Type

OrderGoodsouts

Available expands

FieldReturn TypeDescription
attributesarray<CachedAttribute>An attribute.
linesarray<OrderGoodsoutLines>An order for a product.
lines.itemsarray<OrderGoodsoutLineItems>An item inside a goodsout line.
lines.items.batchProductComponentBatchesDescription of a batch.
lines.items.componentProductComponentsProduct component.
lines.items.despatched_stocksarray<OrderGoodsoutLineItemDespatchedStocks>Stock despatched for an specific line item.
lines.items.despatched_stocks.batchProductComponentBatchesDescription of a batch.
lines.principal_taxOrganisationTaxesOrganisation tax data.
lines.variationProductVariationsMarketplace listable products’ data.
lines.variation.descriptionsarray<ProductVariationDescriptions>Variation descriptions.
lines.variation.descriptions.localeLocalesLocale data.
lines.variation.typeProductVariationTypesProduct variation type data.
orderOrdersCustomer order groups.
order.channelOrderChannelsCustomer order groups.
order.channel.organisationOrganisationsOrganisation data.
shipmentsarray<Shipments>Data related to a shipment.
shipments.shipping_serviceShippingServicesCustomer order shipments.
shipments.shipping_service.courier_accountShippingCourierAccountsShipping courier account data.
shipments.shipping_service.courier_account.courierCachedNameAndCodeHolds a name and a code field.
shipping_addressOrderGoodsoutAddressesData related to an address.
shipping_address.countryCountriesA country.
shipping_address.country.regionRegionsGeographical region data.
tagsarray<Tags>A tag.
warehouseSummarisedWarehouseA warehouse.

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
        "attributes": [
            {
                "name": "Marketplace",
                "value": "202-9999999-9995900"
            }
        ],
        "shipments": [
            {
                "shipping_service": [
                    {
                        "name": "CRL - Packet (24 Hr)",
                        "code": "1ST",
                        "courier_account": [
                            {
                                "name": "Royal Mail",
                                "courier": {
                                    "name": "Royal Mail",
                                    "code": "RM"
                                }
                            }
                        ]
                    }
                ]
            }
        ],
        "lines": [
            {
                "id": 3450345,
                "transaction_sku": "GREEN-BALL",
                "quantity": 4,
                "discount_type": "percentage",
                "discount": 1.5,
                "net_unit_principal": 12,
                "status": "active",
                "variation": {
                    "id": 1,
                    "product_id": 1,
                    "status": "active",
                    "sku": "DEMO-SKU-01",
                    "barcode": "0123456789012",
                    "product_variation_type_id": 1,
                    "discontinued_date": "2019-11-25T14:52:56.000Z",
                    "despatch_instructions": "Always pack facing upwards.",
                    "created": "2019-11-25T14:52:56.000Z",
                    "modified": "2019-11-25T14:52:56.000Z",
                    "type": {
                        "id": 1,
                        "name": "Standard Product",
                        "type": "product",
                        "created": "2019-11-25T14:52:56.000Z",
                        "modified": "2019-11-25T14:52:56.000Z"
                    },
                    "descriptions": [
                        {
                            "id": 1,
                            "product_variation_id": 1,
                            "locale_id": 1,
                            "name": "Example product",
                            "full_description": "Example product description",
                            "created": "2019-11-25T14:52:56.000Z",
                            "modified": "2019-11-25T14:52:56.000Z",
                            "locale": {
                                "id": 1,
                                "name": "English",
                                "code": "en",
                                "created": "2019-11-25T14:52:56.000Z",
                                "modified": "2019-11-25T14:52:56.000Z"
                            }
                        }
                    ]
                }
            }
        ],
        "tags": [
            {
                "id": 1,
                "name": "Processed",
                "shortcode": "PROCESSED",
                "description": "Marked a as processed by XYZ system",
                "created": "2019-11-25T14:52:56.000Z"
            }
        ],
        "warehouse": [
            {
                "id": 1,
                "short_code": "CHR",
                "name": "Christchurch"
            }
        ],
        "order": {
            "id": 1234567,
            "reference": "#154254",
            "status": "open",
            "channel": {
                "id": 321,
                "organisation_id": 321,
                "name": "Demo Channel",
                "short_code": "DEMO",
                "status": "active",
                "created": "2019-11-25T14:52:56.000Z",
                "modified": "2019-11-25T14:52:56.000Z",
                "organisation": {
                    "id": 1,
                    "name": "Demo",
                    "active": true,
                    "vat_number": "GB999 9999 73",
                    "notes": "Demo account...",
                    "contact_name": "Mr Joe Bloggs",
                    "contact_phone": "+44 01425 000 000",
                    "contact_mobile": "+44 00000000",
                    "contact_email": "joe.bloggs@example.com",
                    "created": "2019-11-25T14:52:56.000Z",
                    "modified": "2019-11-25T14:52:56.000Z"
                }
            }
        },
        "shipping_address": {
            "title": "Mr",
            "first_name": "Support",
            "last_name": "Team",
            "company": "ACME LTD",
            "address_one": "Unit 4",
            "address_two": "Radar Way",
            "address_three": null,
            "town": "Christchurch",
            "county": "Dorset",
            "postcode": "BH23 4FL",
            "country_id": 1,
            "email": "support.team@i-fulfilment.co.uk",
            "mobile": "00000000000",
            "telephone": "00000000000",
            "secondary_telephone": "0000000000000",
            "vat_number": "GB999 9999 73",
            "country": {
                "id": 1,
                "name": "United Kingdom",
                "iso_2": "GB",
                "iso_3": "GBR",
                "region_id": 1,
                "currency_id": 1,
                "block": "EU",
                "region": {}
            }
        }
    }
}

Upload Document

POST /v1/orders/goodsouts/:id/documents

Uploads a Base64 encoded document to a goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

Document

Return Type

OrderGoodsoutDocumentUploadConfirmation

Types for the Request Body

Document (root level)

KeyDescriptionTypesRestrictions
fileThe file contents Base64 encoded.stringrequired
not null
min length is 1
nameThe file name.stringrequired
not null
min length is 1
extensionThe file extension.stringrequired
not null
min length is 1
mimeThe file mime.stringrequired
not null
min length is 1
categoryThe document category.enum(document)required
not null
paper_sizeThe paper size.enum(A4, 6x4)not null
print_at_despatchThe number of copies to print at desptach.numbernot null
min is 0

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents", [
    "body" => json_encode([
        "file" => ":: FILE CONTENTS ::",
        "name" => "my_document.pdf",
        "extension" => "pdf",
        "mime" => "application/pdf",
        "category" => "document",
        "paper_size" => "A4",
        "print_at_despatch" => 1,
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents', {
  file: ":: FILE CONTENTS ::",
  name: "my_document.pdf",
  extension: "pdf",
  mime: "application/pdf",
  category: "document",
  paper_size: "A4",
  print_at_despatch: 1,
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents",
    body: {
        "file": ":: FILE CONTENTS ::",
        "name": "my_document.pdf",
        "extension": "pdf",
        "mime": "application/pdf",
        "category": "document",
        "paper_size": "A4",
        "print_at_despatch": 1
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "file": ":: FILE CONTENTS ::",
    "name": "my_document.pdf",
    "extension": "pdf",
    "mime": "application/pdf",
    "category": "document",
    "paper_size": "A4",
    "print_at_despatch": 1
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "success": true
    }
}

Cancel Goodsout

PUT /v1/orders/goodsouts/:id/cancel

Cancels an order goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

Reason

Return Type

OrderGoodsouts

Types for the Request Body

Reason (root level)

KeyDescriptionTypesRestrictions
reasonThe reason.stringrequired
not null
min length is 1

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel", [
    "body" => json_encode([
        "reason" => "Example reason.",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel', {
  reason: "Example reason.",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel",
    body: {
        "reason": "Example reason."
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "reason": "Example reason."
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Update Delivery Instructions

PUT /v1/orders/goodsouts/:id/delivery_instructions

Updates a goodsout’s delivery instructions.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

DeliveryInstructions

Return Type

OrderGoodsouts

Types for the Request Body

DeliveryInstructions (root level)

KeyDescriptionTypesRestrictions
delivery_instructionsDelivery instructions.stringrequired
not null
min length is 0
max length is 30

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions", [
    "body" => json_encode([
        "delivery_instructions" => "When not home put in shed.",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions', {
  delivery_instructions: "When not home put in shed.",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions",
    body: {
        "delivery_instructions": "When not home put in shed."
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "delivery_instructions": "When not home put in shed."
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Update Gift Message

PUT /v1/orders/goodsouts/:id/gift_message

Updates a goodsout’s gift message.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

UpdateGoodsoutGiftMessage

Return Type

OrderGoodsouts

Types for the Request Body

UpdateGoodsoutGiftMessage (root level)

KeyDescriptionTypesRestrictions
messageGift Message.stringrequired
not null
min length is 0
max length is 800

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message", [
    "body" => json_encode([
        "message" => "Happy birthday Sam!<br/>Hope you enjoy this gift.",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message', {
  message: "Happy birthday Sam!<br/>Hope you enjoy this gift.",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message",
    body: {
        "message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Update Shipping Address

PUT /v1/orders/goodsouts/:id/shipping_address

Updates the shipping address of a goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

Address

Return Type

OrderGoodsoutAddresses

Types for the Request Body

Address (root level)

KeyDescriptionTypesRestrictions
titleTitle.stringnot null
first_nameFirst name.stringrequired
not null
last_nameLast name.stringrequired
not null
companyCompany name.stringnot null
address_oneFirst line of address.stringrequired
not null
address_twoSecond line of address.stringnot null
address_threeThird line of address.stringnot null
townTown.stringrequired
not null
country_idCountry ISO 2 or ISO 3 code.stringrequired
not null
min length is 2
max length is 3
countyCounty.stringnot null
postcodePostcode.stringrequired
not null
emailEmail.stringnot null
mobileMobile number.stringnot null
telephoneLandline number.stringnot null
secondary_telephoneSecondary telephone number.stringnot null
vat_numberVAT number.stringnot null

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address", [
    "body" => json_encode([
        "title" => "Mr",
        "first_name" => "Support",
        "last_name" => "Team",
        "company" => "ACME LTD",
        "address_one" => "Unit 4",
        "address_two" => "Radar Way",
        "address_three" => "Ind Est",
        "town" => "Christchurch",
        "country_id" => "GB",
        "county" => "Dorset",
        "postcode" => "BH23 4FL",
        "email" => "support.team@i-fulfilment.co.uk",
        "mobile" => "00000000000",
        "telephone" => "00000000000",
        "secondary_telephone" => "0000000000000",
        "vat_number" => "GB999 9999 73",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address', {
  title: "Mr",
  first_name: "Support",
  last_name: "Team",
  company: "ACME LTD",
  address_one: "Unit 4",
  address_two: "Radar Way",
  address_three: "Ind Est",
  town: "Christchurch",
  country_id: "GB",
  county: "Dorset",
  postcode: "BH23 4FL",
  email: "support.team@i-fulfilment.co.uk",
  mobile: "00000000000",
  telephone: "00000000000",
  secondary_telephone: "0000000000000",
  vat_number: "GB999 9999 73",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address",
    body: {
        "title": "Mr",
        "first_name": "Support",
        "last_name": "Team",
        "company": "ACME LTD",
        "address_one": "Unit 4",
        "address_two": "Radar Way",
        "address_three": "Ind Est",
        "town": "Christchurch",
        "country_id": "GB",
        "county": "Dorset",
        "postcode": "BH23 4FL",
        "email": "support.team@i-fulfilment.co.uk",
        "mobile": "00000000000",
        "telephone": "00000000000",
        "secondary_telephone": "0000000000000",
        "vat_number": "GB999 9999 73"
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "title": "Mr",
    "first_name": "Support",
    "last_name": "Team",
    "company": "ACME LTD",
    "address_one": "Unit 4",
    "address_two": "Radar Way",
    "address_three": "Ind Est",
    "town": "Christchurch",
    "country_id": "GB",
    "county": "Dorset",
    "postcode": "BH23 4FL",
    "email": "support.team@i-fulfilment.co.uk",
    "mobile": "00000000000",
    "telephone": "00000000000",
    "secondary_telephone": "0000000000000",
    "vat_number": "GB999 9999 73"
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "title": "Mr",
        "first_name": "Support",
        "last_name": "Team",
        "company": "ACME LTD",
        "address_one": "Unit 4",
        "address_two": "Radar Way",
        "address_three": null,
        "town": "Christchurch",
        "county": "Dorset",
        "postcode": "BH23 4FL",
        "country_id": 1,
        "email": "support.team@i-fulfilment.co.uk",
        "mobile": "00000000000",
        "telephone": "00000000000",
        "secondary_telephone": "0000000000000",
        "vat_number": "GB999 9999 73"
    }
}

Update Goodsout Warehouse

PUT /v1/orders/goodsouts/:id/warehouse

Updates a goodsout’s warehouse.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

UpdateGoodsoutWarehousee

Return Type

OrderGoodsouts

Types for the Request Body

UpdateGoodsoutWarehousee (root level)

KeyDescriptionTypesRestrictions
warehouse_codeThe warehouse short code.stringrequired
not null
min length is 1

Available expands

FieldReturn TypeDescription
warehouseSummarisedWarehouseA warehouse.

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*", [
    "body" => json_encode([
        "warehouse_code" => "CHR",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*', {
  warehouse_code: "CHR",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*",
    body: {
        "warehouse_code": "CHR"
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "warehouse_code": "CHR"
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
        "warehouse": [
            {
                "id": 1,
                "short_code": "CHR",
                "name": "Christchurch"
            }
        ]
    }
}

Hold Goodsout

PUT /v1/orders/goodsouts/:id/hold

Holds an order goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

Reason

Return Type

OrderGoodsouts

Types for the Request Body

Reason (root level)

KeyDescriptionTypesRestrictions
reasonThe reason.stringrequired
not null
min length is 1

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold", [
    "body" => json_encode([
        "reason" => "Example reason.",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold', {
  reason: "Example reason.",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold",
    body: {
        "reason": "Example reason."
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "reason": "Example reason."
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Unhold Goodsout

PUT /v1/orders/goodsouts/:id/unhold

Unholds an order goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

Reason

Return Type

OrderGoodsouts

Types for the Request Body

Reason (root level)

KeyDescriptionTypesRestrictions
reasonThe reason.stringrequired
not null
min length is 1

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold", [
    "body" => json_encode([
        "reason" => "Example reason.",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold', {
  reason: "Example reason.",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold",
    body: {
        "reason": "Example reason."
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "reason": "Example reason."
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Get Goodsout Despatch Attributes

GET /v1/orders/goodsouts/:id/despatch_attributes

Get all despatch attributes for a goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Return Type

array<OrderGoodsoutDespatchAttributes>

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "sku": "DEMO-SKU-01",
            "product_name": "Example Product",
            "attribute_name": "Color",
            "attribute_value": "Red"
        }
    ]
}

Require Quote on Goodsout

PUT /v1/orders/goodsouts/:id/require_quote

Require quote to an order goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

RequireQuote

Return Type

OrderGoodsouts

Types for the Request Body

RequireQuote (root level)

KeyDescriptionTypesRestrictions
require_quoteRequire quotebooleanrequired
not null

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote", [
    "body" => json_encode([
        "require_quote" => true,
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote', {
  require_quote: true,
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote",
    body: {
        "require_quote": true
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "require_quote": true
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Booking In Required

PUT /v1/orders/goodsouts/:id/set_booking_in_required

Add Booking In required tag to goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

BookingInRequired

Return Type

OrderGoodsouts

Types for the Request Body

BookingInRequired (root level)

KeyDescriptionTypesRestrictions
booking_in_requiredSet booking in required tag.booleanrequired
not null

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required", [
    "body" => json_encode([
        "booking_in_required" => true,
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required', {
  booking_in_required: true,
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required",
    body: {
        "booking_in_required": true
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "booking_in_required": true
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1049789,
        "status": "awaiting_despatch",
        "date_placed": "2019-11-25T14:52:56.000Z",
        "despatch_date": null,
        "cancellation_date": "2019-11-25T14:52:56.000Z",
        "despatch_on_date": null,
        "type": "consumer",
        "retailer_id": null,
        "source": "How the order was created.",
        "delivery_instructions": "When not home put in shed.",
        "gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
    }
}

Add Goodsout Timeline

POST /v1/orders/goodsouts/:id/timeline

Add a message or note to the timeline.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

CreateAudit

Return Type

OrderGoodsoutAudits

Types for the Request Body

CreateAudit (root level)

KeyDescriptionTypesRestrictions
messageThe message or note to be added to the timeline.stringrequired
not null
max length is 65535

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline", [
    "body" => json_encode([
        "message" => "Marked as processed with in system XYZ.",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline', {
  message: "Marked as processed with in system XYZ.",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline",
    body: {
        "message": "Marked as processed with in system XYZ."
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "message": "Marked as processed with in system XYZ."
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "message": "Marked as processed with in system XYZ."
    }
}

Apply Goodsout Tag

POST /v1/orders/goodsouts/:id/tags

Applies a tag to a goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Request Body

ApplyTag

Return Type

OrderGoodsoutTags

Types for the Request Body

ApplyTag (root level)

KeyDescriptionTypesRestrictions
shortcodeThe tag shortcode.stringrequired
not null
min length is 1

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags", [
    "body" => json_encode([
        "shortcode" => "PROCESSED",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags', {
  shortcode: "PROCESSED",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags",
    body: {
        "shortcode": "PROCESSED"
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "shortcode": "PROCESSED"
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "id": 1,
        "name": "Processed",
        "shortcode": "PROCESSED",
        "description": "Marked a as processed by XYZ system",
        "created": "2019-11-25T14:52:56.000Z"
    }
}

Remove Goodsout Tag

DELETE /v1/orders/goodsouts/:id/tags/:tagShortcode

Remove a tag from a goodsout.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}
  • :tagShortcode: [a-zA-Z0-9]{3,20}

Return Type

Empty.

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "DELETE",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

null

Bulk List Tracking Numbers

PUT /v1/orders/goodsouts/bulk_tracking_numbers

Fetches all the tracking numbers for a set list of order goodsouts. This endpoint always expands all expandables.

Request Body

BulkGetGoodsoutData

Return Type

array<BulkOrderTrackingNumbers>

Types for the Request Body

BulkGetGoodsoutData (root level)

KeyDescriptionTypesRestrictions
order_goodsout_idsList of order goodsout ID’s.array<number>required
not null
min count is 1

Available expands

FieldReturn TypeDescription
tracking_numbersarray<CachedCourierTracking>Tracking details.

Rate limit cost

Each call to this endpoint deducts 5 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*", [
    "body" => json_encode([
        "order_goodsout_ids" => [
            1,
            2,
            3,
            4,
            5,
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*', {
  order_goodsout_ids: [
    1,
    2,
    3,
    4,
    5,
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*",
    body: {
        "order_goodsout_ids": [
            1,
            2,
            3,
            4,
            5
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "order_goodsout_ids": [
        1,
        2,
        3,
        4,
        5
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "order_goodsout_id": 1049789,
            "despatch_date": "2021-01-26T14:52:56.000Z",
            "courier": "Royal Mail",
            "external_tracking_enabled": true,
            "service": "Tracked 48H Hour",
            "tracking_numbers": [
                {
                    "courier": "Royal Mail",
                    "code": "RMTN1134905823GB",
                    "url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
                }
            ]
        }
    ]
}

Bulk List Tracking Numbers by Reference

PUT /v1/orders/goodsouts/bulk_tracking_numbers/by_reference

Fetches all the tracking numbers for a set list of order goodsouts. This endpoint always expands all expandables.

Request Body

BulkGetGoodsoutDataByReference

Return Type

array<BulkOrderTrackingNumbersByReference>

Types for the Request Body

BulkGetGoodsoutDataByReference (root level)

KeyDescriptionTypesRestrictions
referencesList of order references.array<string>required
not null
min count is 1
statusesLimit to certain goodsout statuses.array<enum(draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched)>min count is 1

Available expands

FieldReturn TypeDescription
tracking_numbersarray<CachedCourierTracking>Tracking details.

Rate limit cost

Each call to this endpoint deducts 5 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*", [
    "body" => json_encode([
        "references" => [
            "#154254",
            "#154234",
            "AB12314",
        ],
        "statuses" => [
            "awaiting_despatch",
            "despatched",
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*', {
  references: [
    "#154254",
    "#154234",
    "AB12314",
  ],
  statuses: [
    "awaiting_despatch",
    "despatched",
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*",
    body: {
        "references": [
            "#154254",
            "#154234",
            "AB12314"
        ],
        "statuses": [
            "awaiting_despatch",
            "despatched"
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "references": [
        "#154254",
        "#154234",
        "AB12314"
    ],
    "statuses": [
        "awaiting_despatch",
        "despatched"
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "reference": "#154254",
            "order_goodsout_id": 1049789,
            "despatch_date": "2021-01-26T14:52:56.000Z",
            "status": "despatched",
            "courier": "Royal Mail",
            "service": "Tracked 48H Hour",
            "external_tracking_enabled": true,
            "tracking_numbers": [
                {
                    "courier": "Royal Mail",
                    "code": "RMTN1134905823GB",
                    "url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
                }
            ]
        }
    ]
}

Bulk List Goodsout Statuses

PUT /v1/orders/goodsouts/bulk_statuses

Fetches the statuses for a set list of order goodsouts.

Request Body

BulkGetGoodsoutData

Return Type

array<BulkOrderStatuses>

Types for the Request Body

BulkGetGoodsoutData (root level)

KeyDescriptionTypesRestrictions
order_goodsout_idsList of order goodsout ID’s.array<number>required
not null
min count is 1

Rate limit cost

Each call to this endpoint deducts 5 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses", [
    "body" => json_encode([
        "order_goodsout_ids" => [
            1,
            2,
            3,
            4,
            5,
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses', {
  order_goodsout_ids: [
    1,
    2,
    3,
    4,
    5,
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses",
    body: {
        "order_goodsout_ids": [
            1,
            2,
            3,
            4,
            5
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "order_goodsout_ids": [
        1,
        2,
        3,
        4,
        5
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "order_goodsout_id": 1049789,
            "status": "awaiting_despatch"
        }
    ]
}

Bulk Check Order Exists

PUT /v1/orders/exists

Check to see if an order reference exists on a specific channel.

Request Body

BulkCheckOrderExistsData

Return Type

array<BulkCheckOrderExists>

Types for the Request Body

BulkCheckOrderExistsData (root level)

KeyDescriptionTypesRestrictions
order_channel_idOrder channel to check against.integerrequired
not null
min is 1
order_referencesList of order references to check.array<string>required
not null
min count is 1

Rate limit cost

Each call to this endpoint deducts 5 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/exists", [
    "body" => json_encode([
        "order_channel_id" => 1,
        "order_references" => [
            "433-3450983-23443",
            "443-473470-972349",
            "43-45343-54543543543-001",
        ],
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/exists', {
  order_channel_id: 1,
  order_references: [
    "433-3450983-23443",
    "443-473470-972349",
    "43-45343-54543543543-001",
  ],
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/exists",
    body: {
        "order_channel_id": 1,
        "order_references": [
            "433-3450983-23443",
            "443-473470-972349",
            "43-45343-54543543543-001"
        ]
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/exists' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "order_channel_id": 1,
    "order_references": [
        "433-3450983-23443",
        "443-473470-972349",
        "43-45343-54543543543-001"
    ]
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "order_reference": "8674-7893278932798-68723",
            "order_id": 4374739234,
            "exists": false
        }
    ]
}

Bulk List All Open Orders

PUT /v1/orders/open

List all the ‘open’ orders for a given channel. Can be used to do a pre-cursive check when importing to filter quickly filter out known references.

Request Body

BulkListAllOpenOrderReferencesInput

Return Type

array<BulkListAllOpenOrders>

Types for the Request Body

BulkListAllOpenOrderReferencesInput (root level)

KeyDescriptionTypesRestrictions
order_channel_idOrder channel to check against.integerrequired
not null
min is 1

Available expands

FieldReturn TypeDescription
goodsoutsarray<BulkListAllOpenOrdersGoodsout>undefined
goodsouts.metadataarray<BulkListAllOpenOrdersGoodsoutMetadata>undefined

Rate limit cost

Each call to this endpoint deducts 5 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/open?expand=*", [
    "body" => json_encode([
        "order_channel_id" => 1,
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/open?expand=*', {
  order_channel_id: 1,
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "PUT",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/open?expand=*",
    body: {
        "order_channel_id": 1
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/open?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "order_channel_id": 1
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "order_id": "2333",
            "reference": "8674-7893278932798-68723",
            "goodsouts": [
                {
                    "order_goodsout_id": "2333",
                    "status": "awaiting_picking",
                    "metadata": [
                        {
                            "key": "import_data",
                            "value": "..."
                        }
                    ]
                }
            ]
        }
    ]
}

Get packing list.

GET /v1/orders/goodsouts/:id/packing_list

Fetches all boxes the goodsout was packed into. This endpoint always expands all expandables.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Return Type

array<OrderGoodsoutPackingListBox>

Available expands

FieldReturn TypeDescription
containsarray<OrderGoodsoutPackingListProduct>A pallet on a packing list.
palletOrderGoodsoutPackingListPalletA pallet on a packing list.

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "pallet": {
                "pallet_product_variation_id": 1,
                "pallet_reference": 1,
                "sku": "STD-PALLET",
                "weight_kg": "1.000"
            },
            "carton_reference": 1,
            "carton_product_variation_id": 1,
            "sku": "OWNPACK",
            "sscc_18": "012345600064565487",
            "weight": "1.421",
            "height": 200,
            "width": 300,
            "depth": 150,
            "contains": {
                "product_component_id": 1,
                "sku": "BLUE_CAR",
                "name": "Blue Toy Car",
                "quantity": 25,
                "colour": "Blue",
                "size": "1:46",
                "style": "Standard",
                "type": null,
                "quality": "medium"
            }
        }
    ]
}

Save Goodsout Shipment Tracking Update

POST /v1/shipping/tracking_update

Receives goodsout shipment tracking update.

Request Body

SaveGoodsoutShipmentTrackingUpdate

Return Type

OrderGoodsoutShipmentTracking

Types for the Request Body

SaveGoodsoutShipmentTrackingUpdate (root level)

KeyDescriptionTypesRestrictions
messageA summary text that describes the tracking event.stringrequired
not null
min length is 1
locationA text summary of where (location) the update has occurred.stringrequired
not null
min length is 1
tracking_numberThe specific tracking number for the update.stringrequired
not null
min length is 1
timestamp_utcThe date/time of when the update was created (UTC format only).daterequired
not null

Rate limit cost

Each call to this endpoint deducts 2 credits from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::MANAGE.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/shipping/tracking_update", [
    "body" => json_encode([
        "message" => "Shipment has arrived at regional facility.",
        "location" => "Christchurch",
        "tracking_number" => "123ABC",
        "timestamp_utc" => "2024-10-07T14:52:56.000Z",
    ]),
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/shipping/tracking_update', {
  message: "Shipment has arrived at regional facility.",
  location: "Christchurch",
  tracking_number: "123ABC",
  timestamp_utc: "2024-10-07T14:52:56.000Z",
}, {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "POST",
    json: true,
    uri: "https://public-api.bladepro.io/v1/shipping/tracking_update",
    body: {
        "message": "Shipment has arrived at regional facility.",
        "location": "Christchurch",
        "tracking_number": "123ABC",
        "timestamp_utc": "2024-10-07T14:52:56.000Z"
    },
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/shipping/tracking_update' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
    "message": "Shipment has arrived at regional facility.",
    "location": "Christchurch",
    "tracking_number": "123ABC",
    "timestamp_utc": "2024-10-07T14:52:56.000Z"
}'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": {
        "message": "Shipment has arrived at regional facility.",
        "location": "Christchurch",
        "tracking_number": "123ABC",
        "timestamp": "2024-10-07T14:52:56.000Z"
    }
}

List Goodsout Shipment Tracking Updates

GET /v1/orders/goodsouts/:id/shipping/tracking_updates

List goodsout shipment tracking updates.

Parameter Regular Expressions

  • :id: [1-9][0-9]{0,}

Return Type

array<OrderGoodsoutShipmentTracking>

Available expands

FieldReturn TypeDescription

Rate limit cost

Each call to this endpoint deducts 1 credit from your request bucket.

Scopes

This endpoint is only available for users with scope APP::ORDERS::READ.

<?php

// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();

// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*", [
    "headers" => [
        "Content-Type" => "application/json",
        "Access-Token" => "my-token-from-login",
    ],
]);

// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'

# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*', {
  access_token: 'my-token-from-login',
  content_type: :json,
  accept: :json
}

# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");

// Make the request
request({
    method: "GET",
    json: true,
    uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*",
    headers: {
        "Access-Token": "my-token-from-login",
        "Content-Type": "application/json",
    },
    (error, response, body) => {
        // Process the response
        console.log(body);
    },
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'

Example result:

{
    "meta": {
        "request_reference": "235chjz9h-c893v86"
    },
    "data": [
        {
            "message": "Shipment has arrived at regional facility.",
            "location": "Christchurch",
            "tracking_number": "123ABC",
            "timestamp": "2024-10-07T14:52:56.000Z"
        }
    ]
}