MENU navbar-image

Introduction

Importations Thibault communication system for part details and orders.

This document aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an `Authorization` header with the value `"Bearer :{YOUR_AUTH_KEY}"`.

All authenticated endpoints are marked with a `requires authentication` badge in the documentation below.

You can retrieve your token by calling Importations Thibault Customer Service and ask to submit a Web API token.

Endpoints

Part Info

requires authentication

Get products informations. If everything is okay, you'll get a 200 OK response. Otherwise, the request will answer with a 400 error and a response listing the issues.

Example request:
curl --request GET \
    --get "https://api.importationsthibault.com/api/v1/part_info?sku=123456%2C654321&language=en&subs=1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.importationsthibault.com/api/v1/part_info"
);

const params = {
    "sku": "123456,654321",
    "language": "en",
    "subs": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, scribe.pat_info.withSubs):


{
    "items": [
        {
            "sku": "123456",
            "description": "TEST PRODUCT 1 LABEL",
            "weight": {
                "value": 1.19,
                "unit": {
                    "code": "LB",
                    "name": "LIVRE"
                }
            },
            "upc": "7410258",
            "status": {
                "discontinued": false,
                "special_order": false,
                "seasonal": false,
                "back_order": true,
                "requirement": false,
                "satisfy": false,
                "ltl_only": false,
                "air": false,
                "oversized": false
            },
            "substitute": [
                {
                    "sku": "123456A",
                    "description": "TEST SUBTITUTES 1",
                    "weight": {
                        "value": 1.146,
                        "unit": {
                            "code": "LB",
                            "name": "LIVRE"
                        }
                    },
                    "upc": "7410258A",
                    "status": {
                        "discontinued": true,
                        "special_order": false,
                        "seasonal": false,
                        "back_order": false,
                        "requirement": false,
                        "satisfy": false,
                        "ltl_only": false,
                        "air": true,
                        "oversized": false
                    }
                }
            ]
        },
        {
            "sku": "654321",
            "description": "TEST PRODUCT 2 LABEL",
            "weight": {
                "value": 595.35,
                "unit": {
                    "code": "LB",
                    "name": "LIVRE"
                }
            },
            "upc": null,
            "status": {
                "discontinued": false,
                "special_order": false,
                "seasonal": false,
                "back_order": true,
                "requirement": false,
                "satisfy": false,
                "ltl_only": true,
                "air": false,
                "oversized": true
            }
        }
    ]
}
 

Example response (200, scribe.pat_info.withoutSubs):


{
    "items": [
        {
            "sku": "123456",
            "description": "TEST PRODUCT 1 LABEL",
            "weight": {
                "value": 1.19,
                "unit": {
                    "code": "LB",
                    "name": "LIVRE"
                }
            },
            "upc": "7410258",
            "status": {
                "discontinued": false,
                "special_order": false,
                "seasonal": false,
                "back_order": true,
                "requirement": false,
                "satisfy": false,
                "ltl_only": false,
                "air": false,
                "oversized": false
            }
        },
        {
            "sku": "654321",
            "description": "TEST PRODUCT 2 LABEL",
            "weight": {
                "value": 595.35,
                "unit": {
                    "code": "LB",
                    "name": "LIVRE"
                }
            },
            "upc": null,
            "status": {
                "discontinued": false,
                "special_order": false,
                "seasonal": false,
                "back_order": true,
                "requirement": false,
                "satisfy": false,
                "ltl_only": true,
                "air": false,
                "oversized": true
            }
        }
    ]
}
 

Request      

GET api/v1/part_info

Headers

Authorization      
Example: `Bearer {YOUR_AUTH_KEY}`
Content-Type      
Example: `application/json`
Accept      
Example: `application/json`

Query Parameters

sku   string    
Comma-separated list of Importations Thibault Product Number SKU. Example: `123456,654321`
language   string   optional  
The language. Example: `en`
subs   integer   optional  
If direct substitutes are to be sent in response. 1 as receiving substitutes, 0 as none. Example: `1`

Response

Response Fields

items   object []    
Response list from the request.
sku   string    
Importations Thibault Product number.
description   string    
Importations Thibault product description label.
weight   object    
Weight of the product.
value   number    
Current weight base unit.
unit   object    
Unit code and name.
code   string    
Weight unit code.
name   string    
Weight unit name.
upc   string    
scribe.part_info.response.upc
availability   object    
Next available date of the product.
eta_date   integer    
Epoch date (EST) ETA before the next purchase order received.
confirmed_date   integer    
Epoch date (EST) Confirmed date of reception.
status   object    
Various product status rulings.
discontinued   boolean    
The product is discontinued.
special_order   boolean    
The product can only be ordered as a special order. Call Customer service for more detail and to order.
seasonal   boolean    
It is a seasonally produced product. No back order and purchase will be done by Importations Thibault Lted.
back_order   boolean    
Back-ordering the product is an option.
requirement   boolean    
Product require training or special action in order to be purchased. Call Customer service for more detail.
satisfy   boolean    
You are meeting the special action or training requirements.
ltl_only   boolean    
The product is oversize and shipment might charge extra.
air   boolean    
The product is oversize and shipment might charge extra.
oversize   boolean    
The product is oversize and shipment might charge extra.

Stock

requires authentication

Check the inventory status of products. If everything is okay, you'll get a 200 OK response. Otherwise, the request will answer with a 400 error and a response listing the issues.

Example request:
curl --request GET \
    --get "https://api.importationsthibault.com/api/v1/stock?sku=123456%2C654321&language=en" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.importationsthibault.com/api/v1/stock"
);

const params = {
    "sku": "123456,654321",
    "language": "en",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "items": [
        {
            "sku": "123456",
            "status": {
                "discontinued": false,
                "special_order": false,
                "seasonal": false,
                "back_order": true,
                "requirement": false,
                "satisfy": false,
                "ltl_only": false,
                "air": true,
                "oversized": false
            },
            "quantity": {
                "value": 1,
                "unit": {
                    "code": "UN",
                    "name": "UNITE"
                }
            }
        },
        {
            "sku": "654321",
            "status": {
                "discontinued": false,
                "special_order": false,
                "seasonal": false,
                "back_order": true,
                "requirement": false,
                "satisfy": false,
                "ltl_only": true,
                "air": false,
                "oversized": true
            },
            "quantity": {
                "value": 8,
                "unit": {
                    "code": "UN",
                    "name": "UNITE"
                }
            }
        }
    ]
}
 

Request      

GET api/v1/stock

Headers

Authorization      
Example: `Bearer {YOUR_AUTH_KEY}`
Content-Type      
Example: `application/json`
Accept      
Example: `application/json`

Query Parameters

sku   string    
Comma-separated list of Importations Thibault Product Number SKU. Example: `123456,654321`
language   string   optional  
The language. Example: `en`

Response

Response Fields

items   object []    
Response list from the request.
sku   string    
Importations Thibault Product number.
availability   object    
Next available date of the product.
eta_date   integer    
Epoch date (EST) ETA before the next purchase order received.
confirmed_date   integer    
Epoch date (EST) Confirmed date of reception.
status   object    
Various product status rulings.
discontinued   boolean    
The product is discontinued.
special_order   boolean    
The product can only be ordered as a special order. Call Customer service for more detail and to order.
seasonal   boolean    
It is a seasonally produced product. No back order and purchase will be done by Importations Thibault Lted.
back_order   boolean    
Back-ordering the product is an option.
requirement   boolean    
Product require training or special action in order to be purchased. Call Customer service for more detail.
satisfy   boolean    
You are meeting the special action or training requirements.
ltl_only   boolean    
The product is oversize and shipment might charge extra.
air   boolean    
The product is oversize and shipment might charge extra.
oversize   boolean    
The product is oversize and shipment might charge extra.
quantity   object    
Quantity available for purchase.
value   number    
Quantity purchasable.
unit   object    
Unit code and name.
code   string    
Quantity unit code. Will always be per unit.
name   string    
Quantity unit name. Will always be per unit.

Pricing

requires authentication

Obtain the pricing for the product. If everything is okay, you'll get a 200 OK response. Otherwise, the request will answer with a 400 error and a response listing the issues.

Example request:
curl --request GET \
    --get "https://api.importationsthibault.com/api/v1/pricing?sku=123456%2C654321&language=en" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.importationsthibault.com/api/v1/pricing"
);

const params = {
    "sku": "123456,654321",
    "language": "en",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "items": [
        {
            "sku": "123456",
            "retail": 74.99,
            "discount": {
                "dealer": 30,
                "additional": 0
            },
            "net": 52.49
        },
        {
            "sku": "654321",
            "retail": 2649.99,
            "discount": {
                "dealer": 0,
                "additional": 0
            },
            "net": 2649.99
        }
    ]
}
 

Request      

GET api/v1/pricing

Headers

Authorization      
Example: `Bearer {YOUR_AUTH_KEY}`
Content-Type      
Example: `application/json`
Accept      
Example: `application/json`

Query Parameters

sku   string    
Comma-separated list of Importations Thibault Product Number SKU. Example: `123456,654321`
language   string   optional  
The language. Example: `en`

Response

Response Fields

items   object []    
Response list from the request.
sku   string    
Importations Thibault Product number.
retail   number    
Retail price for the product.
discount   object    
Discounts related to product and account.
dealer   number    
Dealer discount percent.
additional   number    
Additional discount percent.
net   number    
Net pricing for the product

Tracking

requires authentication

Get current status of an order or invoice including shipment details. If everything is okay, you'll get a 200 OK response. The request requires at least one parameter. Otherwise, the request will answer with a 400 error and a response listing the issues.

Example request:
curl --request GET \
    --get "https://api.importationsthibault.com/api/v1/tracking?order_date=4&order=16&invoice=et" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.importationsthibault.com/api/v1/tracking"
);

const params = {
    "order_date": "4",
    "order": "16",
    "invoice": "et",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "items": [
        {
            "document": {
                "order": 236871,
                "invoice": "1960055",
                "order_date": 1684123200,
                "invoice_date": 1684123200
            },
            "recipient": {
                "name": "TEST ACCOUNT",
                "line1": "165 RUE SAUVE",
                "city": "SHERBROOKE",
                "zip": "J1L 1L6",
                "state": "QC"
            }
        },
        {
            "document": {
                "order": 236849,
                "invoice": "1967422",
                "order_date": 1685937600,
                "invoice_date": 1685937600
            },
            "recipient": {
                "name": "TEST ACCOUNT",
                "line1": "165 RUE SAUVE",
                "city": "SHERBROOKE",
                "zip": "J1L 1L6",
                "state": "QC"
            },
            "shipment": {
                "pin": "W7472897501",
                "carrier": "Dicom",
                "date": 1655524800
            }
        }
    ]
}
 

Request      

GET api/v1/tracking

Headers

Authorization      
Example: `Bearer {YOUR_AUTH_KEY}`
Content-Type      
Example: `application/json`
Accept      
Example: `application/json`

Query Parameters

order_date   integer   optional  
Filtering starting date for all orders to extract. Example: `4`
order   integer   optional  
Order / Confirmation number. Example: `16`
invoice   string   optional  
Invoice number. Example: `et`

Response

Response Fields

item   object []    
Response list from the request.
document   object    
Details about Order and Invoice.
order   integer    
Order / Confirmation number.
invoice   string    
Invoice number.
order_date   integer    
Order / Confirmation Epoch date (EST).
invoice_date   integer    
Invoice Epoch date (EST).
recipient   object    
List of shipment detail for each tracking.
name   string    
Company/Contact name.
line1   string    
Recipient address line 1.
line2   string    
Recipient address line 2.
city   string    
Recipient city name.
zip   string    
Recipient zip / postal code.
phone   string    
Recipient Contact phone number.
state   string    
Recipient address state code (ISO 3166-2:CA).
shipment   object []    
List of shipment detail for each tracking.
pin   string    
Carrier tracking number.
carrier   string    
Carrier name.
label_date   integer    
The date of label in Epoch (EST).
eta_date   integer    
The ETA date in Epoch (EST).

Dealer Information

requires authentication

Get your saved information with ids required for orders. If everything is okay, you'll get a 200 OK response. Otherwise, the request will answer with a 400 error and a response listing the issues.

Example request:
curl --request GET \
    --get "https://api.importationsthibault.com/api/v1/dealer_info" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.importationsthibault.com/api/v1/dealer_info"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, scribe.dealer_info.dealer_same):


{
    "customer": "AAA3",
    "dropship": false,
    "credit_card": [
        {
            "digit": "1111",
            "active": true,
            "master": false,
            "expiration": "1609477200"
        },
        {
            "digit": "0027",
            "active": true,
            "master": false,
            "expiration": "1761969600"
        }
    ]
}
 

Example response (200, scribe.dealer_info.dealer_dropship):


{
    "customer": "AAA1",
    "dropship": true,
    "credit_card": [
        {
            "digit": "1111",
            "active": true,
            "master": false,
            "expiration": "1609477200"
        },
        {
            "digit": "0027",
            "active": true,
            "master": false,
            "expiration": "1761969600"
        }
    ]
}
 

Example response (200, scribe.dealer_info.dealer_credit):


{
    "customer": "AAA2",
    "dropship": false,
    "ship_to": [
        {
            "code": "1",
            "company": "TEST ITL",
            "line1": "165 RUE SAUVE",
            "city": "SHERBROOKE",
            "zip": "J1L 1L6",
            "state": "QC"
        },
        {
            "code": "2",
            "company": "TEST 2",
            "line1": "4050 RUE BRODEUR",
            "city": "SHERBROOKE",
            "zip": "J1L 1V9",
            "state": "QC"
        }
    ]
}
 

Example response (200, scribe.dealer_info.dealer_delivery):


{
    "customer": "AAA2",
    "dropship": false,
    "ship_to": [
        {
            "code": "1",
            "company": "TEST ITL",
            "line1": "165 RUE SAUVE",
            "city": "SHERBROOKE",
            "zip": "J1L 1L6",
            "state": "QC"
        },
        {
            "code": "2",
            "company": "TEST 2",
            "line1": "4050 RUE BRODEUR",
            "city": "SHERBROOKE",
            "zip": "J1L 1V9",
            "state": "QC"
        }
    ],
    "credit_card": [
        {
            "digit": "1111",
            "active": true,
            "master": false,
            "expiration": "1609477200"
        },
        {
            "digit": "0027",
            "active": true,
            "master": false,
            "expiration": "1761969600"
        }
    ]
}
 

Request      

GET api/v1/dealer_info

Headers

Authorization      
Example: `Bearer {YOUR_AUTH_KEY}`
Content-Type      
Example: `application/json`
Accept      
Example: `application/json`

Response

Response Fields

customer   string    
scribe.dealer_info.response.customer.
dropship   boolean    
You're authorized to do drop-ship directly from Importations Thibault.
ship_to   object []    
List of shipping address registered and authorized by Importations Thibault for direct shipment.
code   string    
Recipient ID for delivery address.
company   string    
scribe.ship_to.company
line1   string    
Recipient address line 1.
line2   string    
scribe.ship_to.line2 string
city   string    
Recipient city name.
zip   string    
Recipient zip / postal code.
state   string    
Recipient address state code (ISO 3166-2:CA).
phone   string    
Recipient Contact phone number.
credit_card   object []    
List of shipping address registered and authorized by Importations Thibault for direct shipment.
digit   string    
Last 4 digits of the card.
active   boolean    
Credit Card is registered as an active card for purchase.
master   boolean    
Credit Card is registered as default card for purchase.
expiration   integer    
Credit Card expiration date in Epoch (Always set on the first of the month).

Order

requires authentication

Import order. If everything is okay, you'll get a 200 OK response with order details. Otherwise, the request will answer with a 400 error and a response listing the issues.

Example request:
curl --request POST \
    "https://api.importationsthibault.com/api/v1/order" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"test_mode\": \"voluptatem\",
    \"item\": {
        \"0\": [],
        \"sku\": \"qui\",
        \"qty\": 18813633.257
    },
    \"no_backorder\": true,
    \"selected_card\": \"inventore\",
    \"customer_refs\": \"nesciunt\",
    \"signature\": false,
    \"note\": \"voluptas\",
    \"ship_to\": {
        \"code\": \"quia\",
        \"company\": \"officia\",
        \"contact\": \"modi\",
        \"line1\": \"pariatur\",
        \"line2\": \"qui\",
        \"city\": \"nesciunt\",
        \"zip\": \"ratione\",
        \"phone\": \"quia\",
        \"state\": \"aliquid\"
    },
    \"dropship\": false
}"
const url = new URL(
    "https://api.importationsthibault.com/api/v1/order"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "test_mode": "voluptatem",
    "item": {
        "0": [],
        "sku": "qui",
        "qty": 18813633.257
    },
    "no_backorder": true,
    "selected_card": "inventore",
    "customer_refs": "nesciunt",
    "signature": false,
    "note": "voluptas",
    "ship_to": {
        "code": "quia",
        "company": "officia",
        "contact": "modi",
        "line1": "pariatur",
        "line2": "qui",
        "city": "nesciunt",
        "zip": "ratione",
        "phone": "quia",
        "state": "aliquid"
    },
    "dropship": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/order

Headers

Authorization      
Example: `Bearer {YOUR_AUTH_KEY}`
Content-Type      
Example: `application/json`
Accept      
Example: `application/json`

Body Parameters

test_mode   scribe.type.required   optional  
bool scribe.order.body.test_mode Example: `voluptatem`
item   object []   optional  
Product and quantity to order.
sku   string   optional  
Importations Thibault Product number. Example: `qui`
qty   number   optional  
Quantity ask for import. Example: `18813633.257`
no_backorder   boolean   optional  
Disable request to have back orders in the import. FALSE As Back Order allowed, TRUE as Back Order not allowed. An error will be returned if no_BackOrder is activated and back order is detected in the import. Example: `true`
selected_card   string   optional  
Last 4 digits of a registered credit card (option available for credit card dealers). If your payment method is credit card and this parameter is missing or empty, the system will try every card registered. Example: `inventore`
customer_refs   string   optional  
Customer reference/PO number. Example: `nesciunt`
signature   boolean   optional  
Enable if a dealer or Client wants a signature on delivery (option only available for drop-ship dealers). FALSE as no signature require (default). TRUE as shipment requires a signature (extra fee applied). Example: `false`
note   string   optional  
Customer & Dealer Note or details to add to the import. Example: `voluptas`
ship_to   object   optional  
Shipment recipient details.
code   string   optional  
Delivery address registered code from the dealer_info request (Required for non drop-ship or non same address delivery dealer). Example: `quia`
company   string   optional  
Recipient company name (Required for drop-ship dealer and if no contact name). Example: `officia`
contact   string   optional  
Recipient contact name (Required for drop-ship dealer and if no company name). Example: `modi`
line1   string   optional  
scribe.order.body.ship_to.line1 string Example: `pariatur`
line2   string   optional  
Recipient address line 2. Example: `qui`
city   string   optional  
City name (Required for drop-ship dealer). Example: `nesciunt`
zip   string   optional  
Address Zip / Postal code (Required for drop-ship dealer). Example: `ratione`
phone   string   optional  
scribe.order.body.ship_to.phone Example: `quia`
state   string   optional  
Address state (ISO 3166-2:CA and required for drop-ship dealer) Example: `aliquid`
dropship   boolean   optional  
Example: `false`

Response

Response Fields

items   object []    
List of found product ordered.
sku   string    
Importations Thibault Product number.
ordered   number    
Imported quantity wanted for the product.
shipped   number    
Quantity ready for shipment of the product.
back_order   number    
Quantity ready to be put in back order.
order_number   number    
Order & Confirmation number (if import is not in evaluation).
environmental_tax   number    
Environmental tax amount (added to subtotal).
recycling_fee   object []    
Recycling fees for certain products with the recycling service name (added to subtotal).
value   number    
Recycling fee amount.
name   string    
Recycling fee name.
volume_drawback   number    
Penalty amount for volume threshold drawback reached (added to subtotal).
subtotal_discount   number    
Special discount amount on the subtotal (removed on subtotal).
subtotal   number    
Subtotal amount before tax & carrier rates.
fees   object    
Fees values before taxes.
carrier   number    
Carrier fee amount.
insurance   number    
Insurance fee amount.
cod   number    
Collect On Delivery & overcharge fee.
taxes   object []    
Taxes amounts and Names.
value   number    
Tax amount.
name   string    
Tax name.
total   number    
scribe.order.response.taxes.total

Errors

Errors

    
{
"errors": [
{
    "id":"E013",
    "data":"123456A"
},
{
    "id":"E013",
    "data":"123456"
}
]
}
    

Structure

Response Fields

errors   object[]   

List of errors details

id   string   

Error ID / Code

data   string   

Data related to an error code

Code

ID Description Suggested action
E001 Execution / Treatment errors. Contact Importations Thibault, if the issue is reoccurring.
E002 Response Generation issue. Contact Importations Thibault, if the issue is reoccurring.
E003 The request is not supported. Validate your request information.
E004 Invalid method called. Validate your request information.
E005 Invalid URL format. Validate your request information.
E006 The URL request does not have the minimum parameters required. Validate your request information.
E010 Issue with WEB API KEY. Contact Importations Thibault, if the issue is reoccurring.
E011 Configuration error with WEB API KEY. Contact Importations Thibault, if the issue is reoccurring.
E012 The product SKU is missing for the request. Validate your request information.
E013 Product Sku is invalid or non-existing at Importations Thibault. Validate your request information.
E015 Payment method credential was denied. Contact Importations Thibault to update your payment method credential.
E016 Shipping address details are invalid in the request body. Validate your request information.
E017 Shipping address details are invalid in the request body. Validate your request information.
E018 Product requirements are not met by Dealer WEB API. Contact Importations Thibault for more information.
E019 Product Quantity imported is invalid. Validate your request information.
E020 No backorders error by request, but some product returns with back orders. Validate your request information.
E021 Order is too small for completion. Validate your request information.
E022 Unable to fulfill your order as there is at least one product that is not being properly filled. Validate your request information.
E023 Document Order or Invoice number is invalid or non-existing. Validate your request information.
E024 Currently out of stock for one of our special order products and do not have an available quantity at this time. Contact Importations Thibault for more information.
A001 Parameter Order date is not an epoch. Validate your request information.