Creating a product

API reference ProductsAPI

Overview

This endpoint can be used to import products from your system to byrd

Method access
POST https://api.getbyrd.com/v2/warehouse/products
Request Headers
Authorization: Bearer token-from >Authentication
Content-Type: application/json
User-Agent: your user-agent >How to call the APIs

Fields

To create a product usable by the rest of the system these fields are required or might be required in the JSON request body depending on your case:

FieldTypeDescriptionRequired
sku stringCode consisting of letters and/or numbers to identify a single physical item.
Has to be unique in your environment.
always
name stringName of the productalways
description stringDescription of the productoptional
barcode stringBarcode that is on the product.
It accepts digits and characters, depending on the barcode type selected.
conditional
Required if the product has a barcode
barcodeType stringType of barcode
It accepts: ean_13, code_128, gs1_128, qr_code.
conditional
Required if the field barcode is used.
purchasePrice price objectPrice used for customs documents and shipment insurance in case no price is provided during shipment creation.
fields:
- value (string): string of digits with decimals separated by a dot.
- currency (string): currency in ISO 3-Letter code
Please use the purchase price and not the retail price.
always
customsTariffNumber integerUnique code that is documented in the Harmonised System (HS) for your product.
It accepts only digits with lengths of 6, 8, or 10.
conditional
Required if you plan to send shipments outside of EU or UK
originCountryCode stringCountry code of the origin of the product.
It accepts only ISO 3166-1 two digit codes.
conditional
Required if you plan to send shipments outside of EU or UK
dimensions dimensions objectWeight of the product as sent to the warehouse.
fields:
- weight (string): string of digits with decimals separated by a dot.
conditional
Required if you plan to send shipments outside of EU or UK
lotsEnabled booleanIf lots should be tracked when inbounding and shipping this product
It accepts: true,false
conditional
Required if the lot number has to be tracked
organic booleanIf it's an organic product (special storage required)
It accepts: true,false
conditional
Required if the product is organic
fragile booleanIf it's a fragile product (special packaging required)
It accepts: true,false
conditional
Required if the product is fragile
serialNumberEnabled booleanIf serial number should be tracked when shipping this product
It accepts: true,false
conditional
Required if the serial number has to be tracked
reorderPointintegerThe stock level below which you want to be alerted in the daily notification email (if enabled).optional
packagingUnitEnabledbooleanIf the the packaging unit contains multiple selling units. (the warehouse will attempt to pick high quantities more efficiently)
It accepts: true,false
conditional
Required if the packaging unit contains multiple units
packagingUnitslist of packagingUnit objectsDetails of the packaging unit
fields:
- active:true,false,
- quantity: string with integer
- barcodeType: ean_13, code_128, gs1_128, qr_code.
- barcodeValue (string): digits and characters, depending on the barcode type selected.
conditional
Required if packagingUnitEnabled is true

Request body example

{
    "sku": "AELMO-00005",
    "name": "Awesome dog food",
    "description": null,
    "barcode": "0123456789101",
    "barcodeType": "ean_13",
    "productType": "product",
    "purchasePrice": {
        "value": 0.01,
        "currency": "SEK"
    },
    "customsTariffNumber": "910121",
    "originCountryCode": "CN",
    "dimensions": {
        "weight": 1.2
    },
    "lotsEnabled": false,
    "organic": false,
    "fragile": false,
    "serialNumberEnabled": false,
    "reorderPoint": 10,
    "packagingUnitEnabled": true,
    "packagingUnits": [
        {
            "quantity": "10",
            "active": true,
            "barcodeType": "ean_13",
            "barcodeValue": "978020137962"
        }
    ]
}

Successful response example

Product id

When the product is created successfully the response will contain all the details of the product. Some of them will be filled with default values. You can change most of the product details at any moment by calling the ProductAPI using the field id from this response when product_id is required.
We recommend you to save the byrd product_id on your side because it might be needed when you implement other flows like deliveries or stocks (querying by single product).

{
    "data": {
        "pictureID": null,
        "deletedDate": null,
        "isbn": null,
        "bsku": "BSKU-ONXV1VAF04",
        "active": true,
        "reorderPoint": 10,
        "weightEstimation": null,
        "changeRequests": null,
        "isDangerousGoods": false,
        "fragile": false,
        "unavailableStock": 0,
        "sku": "AELMO-00005",
        "customsTariffNumber": "910121",
        "deleted": false,
        "barcodeType": "ean_13",
        "physicalStock": 0,
        "retailPrice": null,
        "updatedAt": "2023-03-16T13:26:06.226926+00:00",
        "id": "the_product_id",
        "purchasePriceEvidenceURL": null,
        "dangerousGoods": [],
        "packagingUnits": [
            {
                "active": true,
                "barcodeType": "ean_13",
                "barcodeValue": "978020137962",
                "quantity": 10
            }
        ],
        "variantID": null,
        "reservedStock": 0,
        "dangerousGoodsMSDSURL": null,
        "barcode": "0123456789101",
        "description": null,
        "createdAt": "2023-03-16T13:26:06.226913+00:00",
        "ean": null,
        "lotsEnabled": false,
        "name": "Awesome dog food",
        "availableStock": 0,
        "productType": "product",
        "storages": [],
        "shopID": null,
        "originCountryCode": "CN",
        "purchasePrice": {
            "value": "0.01",
            "currency": "SEK",
            "taxFactor": "1.0"
        },
        "dimensions": {
            "length": null,
            "createdAt": "2023-03-16T13:26:06.247048+00:00",
            "weight": 1.2,
            "updatedAt": "2023-03-16T13:26:06.247056+00:00",
            "height": null,
            "createdBy": "CUSTOMER",
            "id": "the_dimensions_id",
            "sizeGroup": null,
            "isHeightVariable": false,
            "width": null
        },
        "productID": null,
        "skipBarcodePick": false,
        "packagingUnitEnabled": true,
        "organic": false,
        "stocksByWarehouse": {},
        "serialNumberEnabled": false,
        "upc": null
    }
}