Introduction
Welcome to the Order Management API documentation. This API allows you to submit orders, cancel orders, retrieve order details, search orders, and update shipping addresses or methods within the GelatoConnect system. The API is organized around REST principles and uses standard HTTPS methods to interact with resources. All responses are returned in JSON format, including errors.
Authentication
All Order Management API calls require authentication using a valid API key and secret provided in the header of each call. All communication must be done through HTTPS; calls made over plain HTTP will fail.
Authentication Method
Add the
X-API-KEY
header to your requestSet the value using the format:
key:secret
Example:
X-API-KEY: your-key:your-secret
Your specific API key and secret will be provided when setting up a connector for your customer.
Rate Limits
The API imposes restrictions on the number of requests a user or client can make within a specified period. All requests count toward your personal rate limit of 100 requests per second.
Why Rate Limits Exist
Rate limits serve several important purposes:
Protecting against abuse or misuse of the API
Ensuring fair access for all users
Preventing service disruptions due to excessive traffic
Retry Logic for Rate Limit Errors
If you exceed the API rate limit, you'll receive a 429 status code. To minimize the impact on your workloads, implement these retry techniques:
Retry: Automatically reattempt failed requests. Implement retry logic in your application code for all API calls.
Exponential Backoff: Use progressively longer waits between retries for consecutive error responses. Implement a maximum delay interval and a maximum number of retries based on the operation being performed.
Jitter: Add a random amount of time before retrying requests to prevent all clients from retrying simultaneously. This helps distribute the load and prevents successive collisions.
For more information on retry strategies, see:
Response Codes
The Order Management API uses conventional HTTP response codes to indicate the success or failure of requests:
2xx Codes: Indicate success
4xx Codes: Indicate structural or data errors in the request (e.g., missing required parameters, order not found)
5xx Codes: Indicate server errors (these are rare)
API Endpoints
Submit Order
Submit an order in a single request.
Endpoint: POST /{submitOrderUrl}
The base URL and specific endpoint will be provided during connector setup.
Request Format
{
"orderReferenceId": "test",
"orderType": "order",
"currency": "EUR",
"retailCurrency": "GBP",
"retailShippingPriceInclVat": 6.99,
"shipmentMethodUid": "normal,standard,fed_ex_2_day",
"shippingAddress": {
"country": "SE",
"firstName": "My first name",
"lastName": "My last name",
"addressLine1": "17",
"addressLine2": "Address 1",
"city": "City",
"postCode": "11111",
"state": "",
"email": "[email protected]",
"phone": "+47222222",
"companyName": "MyCompany"
},
"items": [
{
"itemReferenceId": "test1",
"productUid": "flat_product_pf_a4_pt_200-gsm-uncoated_cl_4-0_ct_none_prt_none_sft_none_set_none_hor",
"quantity": 1,
"retailPriceInclVat": 19.99,
"files": [
{
"type": "default",
"url": "https://www.example.com/path/to/printfile.pdf"
}
]
}
]
}
Example curl request (click here)
Example curl request (click here)
curl --location --request POST 'https://api.partner-connect.io/api/your-partner-prefix/order' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: your-key:your-secret' \
--data-raw '{
"orderReferenceId": "test",
"orderType": "order",
"currency": "EUR",
"retailCurrency": "GBP",
"retailShippingPriceInclVat": 6.99,
"shipmentMethodUid": "normal,standard,fed_ex_2_day",
"shippingAddress": {
"country": "SE",
"firstName": "My first name",
"lastName": "My last name",
"addressLine1": "17",
"addressLine2": "Address 1",
"city": "City",
"postCode": "11111",
"state": "",
"email": "[email protected]",
"phone": "+47222222",
"companyName": "MyCompany"
},
"items": [
{
"itemReferenceId": "test1",
"productUid": "flat_product_pf_a4_pt_200-gsm-uncoated_cl_4-0_ct_none_prt_none_sft_none_set_none_hor",
"quantity": 1,
"retailPriceInclVat": 19.99,
"files": [
{
"type": "default",
"url": "https://www.example.com/path/to/printfile.pdf"
}
]
}
]
}'
Key Request Parameters
Parameter | Type | Required | Description |
orderReferenceId | string | Required | Your internal order identifier |
orderType | string | Optional | Type of order: "order" (default) or "draft" |
currency | string | Required | Currency for the order (ISO code) |
retailCurrency | string | Optional | Currency used for retail prices (for cross-border orders) |
retailShippingPriceInclVat | number | Optional | Shipping price excluding VAT (despite the parameter name) |
shipmentMethodUid | string | Optional | Shipping method(s) to use, can be comma-separated |
shippingAddress | object | Required | Customer delivery address details |
items | array | Required | List of products to order |
Item Parameters
Parameter | Type | Required | Description |
itemReferenceId | string | Required | Your internal item identifier |
productUid | string | Required* | GelatoConnect product identifier (*Either productUid OR productName+productVariant is required) |
productName | string | Required* | Name of the customer product (*Either productUid OR productName+productVariant is required) |
productVariant | object | Required* | Variant details for the customer product (*Required when using productName) |
quantity | number | Required | Number of items to order |
retailPriceInclVat | number | Optional | Price excluding VAT (despite the parameter name) |
files | array | Required | List of print files for the product |
File Parameters
Parameter | Type | Required | Description |
type | string | Required | Type of file. Find a list of options in the table below. |
url | string | Required | Publicly accessible URL to the print file |
Type of file
Parameter | Description |
default | The design is printed on the primary area of the product. For apparel, it is the front, while for folded cards, it is the cover+back pages.
If you provide a multipage PDF, the number of pages should match the print areas as it will be used to print on all of them. |
front | Print the file on the front of the product. |
back | Print the file on the back of the product. |
cover | The file for a book cover |
neck-inner | Print the file on the inner neck of the apparel product. |
neck-outer | Print the file on the outer neck of the apparel product. |
sleeve-left | Print the file on the left sleeve of the apparel product. |
sleeve-right | Print the file on the right sleeve of the apparel product. |
inside | Print the file on the inner pages. |
chest-left-embroidery | Embroider the file on the left chest of the apparel product. |
chest-center-embroidery | Embroider the file on the center chest of the apparel product. |
chest-large-embroidery | Embroider the file on the front of the apparel product. |
sleeve-left-embroidery | Embroider the file on the left sleeve of the apparel product. |
sleeve-right-embroidery | Embroider the file on the right sleeve of the apparel product. |
wrist-left-embroidery | Embroider the file on the left wrist of the apparel product. |
wrist-right-embroidery | Embroider the file on the right wrist of the apparel product. |
Shipping Address Parameters
Parameter | Type | Required | Description |
country | string | Required | Two-letter country code (ISO 3166-1 alpha-2) |
firstName | string | Required | Recipient's first name |
lastName | string | Required | Recipient's last name |
addressLine1 | string | Required | First line of the street address |
addressLine2 | string | Optional | Second line of the street address |
city | string | Required | City name |
postCode | string | Required | Postal or ZIP code |
state | string | Required* | State or province code (*Required for US, CA, AU addresses) |
string | Required | Recipient's email address | |
phone | string | Required | Recipient's phone number with country code |
companyName | string | Optional | Business name (if applicable) |
isBusiness | boolean | Optional | Whether the address is for a business |
federalTaxId | string | Optional | Federal tax ID for business addresses |
stateTaxId | string | Optional | State tax ID for business addresses |
registrationState | string | Optional | State where business is registered |
Special Notes for International Orders
For international orders, provide retail product price and retail shipping price as:
retailCurrency
: Currency which retail prices are provided inretailShippingPriceInclVat
: Shipping price excluding VAT (ignore the parameter name)items[i].retailPriceInclVat
: Total product price excluding VAT (ignore the parameter name)
Selecting a Product
The order submit API can receive product information in two ways:
Using
productUid
:
"productUid": "frame_product_frs_10x10-inch_frc_oak_frm_wood_frp_w13xt22-mm_gt_plexiglass"
Using
productName
andproductVariant
:
"productName": "Framed Poster",
"productVariant": {
"FrameColour": "Black",
"PaperSize": "A3"
}
Do not use both methods in the same order request.
Selecting a Shipping Method
The shipmentMethodUid
field can accept:
Specific shipment method UIDs (e.g.,
fed_ex_2_day
)Shipping carrier names (e.g.,
DHL
)Shipping option tiers (e.g.,
Express
)
Multiple shipping methods can be provided as a comma-separated string, and the system will use the cheapest option.
Response Format
{
"id": "32884a3e-bd09-42be-8225-c5cea7d24611",
"orderReferenceId": "test",
"createdAt": "2024-07-17T10:23:28+00:00"
}
Metadata usage throughout GelatoConnect
Metadata provided at both order and item levels in order requests can be used by a number of tools within GelatoConnect and also returned in postbacks. This is particularly valuable for those who need to maintain data continuity between their systems.
Order-Level Metadata:
Order-level metadata applies to the entire order and is defined at the top level of the request.
{
"orderReferenceId": "ORD-12345",
"orderType": "order",
"currency": "USD",
"metadata": [
{
"key": "campaign",
"value": "summer_promo"
},
{
"key": "source",
"value": "web"
}
],
"shippingAddress": {...},
"items": [...]
}
Item-Level Metadata:
Item-level metadata applies to specific items and is defined within each item in the items array.
{
"orderReferenceId": "ORD-12345",
"orderType": "order",
"currency": "USD",
"shippingAddress": {...},
"items": [
{
"itemReferenceId": "ITEM-001",
"productUid": "flat_product_pf_a4_pt_200-gsm-uncoated_cl_4-0_ct_none_prt_none_sft_none_set_none_hor",
"quantity": 1,
"metadata": [
{
"key": "position",
"value": "A1"
},
{
"key": "machine",
"value": "Printer3"
}
],
"files": [...]
}
]
}
Cancel Order
Stop and cancel the production and shipment process for an order. This is only possible until the order status changes to "shipped".
Endpoint: POST /{orderCancelUrl}
This endpoint can accept either the Order ID (provided in the submit order response) or the Order Reference ID (your internal order ID).
Using Order ID
POST /{orderCancelUrl}/32884a3e-bd09-42be-8225-c5cea7d24611/cancel
Using Order Reference ID
POST /{orderCancelUrl}/test/cancel
Response Format
{
"code": 200,
"message": "OK"
}
Update Shipment
Modify the shipping method or update the shipping address until the order has moved to status "shipped".
Endpoint: PUT /{updateShipmentURL}
This endpoint can accept either the Order ID or the Order Reference ID.
Request Format
{
"shipmentMethodUid": "fed_ex_2_day",
"shippingAddress": {
"country": "GB",
"firstName": "Alexis",
"lastName": "Apollo",
"addressLine1": "Longusta str. 4",
"addressLine2": "app. 144",
"city": "myCity",
"postCode": "111111",
"state": "myState",
"email": "[email protected]",
"phone": "+34 111444111",
"companyName": "Company_example",
"isBusiness": false,
"federalTaxId": "",
"stateTaxId": "",
"registrationState": ""
}
}
You can update either the shipping method, the shipping address, or both. At least one of these fields must be included in the request.
Request Parameters
Parameter | Type | Required | Description |
shipmentMethodUid | string | Optional* | New shipping method (*At least one of shipmentMethodUid or shippingAddress must be provided) |
shippingAddress | object | Optional* | New shipping address details (*At least one of shipmentMethodUid or shippingAddress must be provided) |
Response Format
{
"shippingAddress": {
"id": "2f85d65b-4814-4b5f-90a2-a7de28250bd1",
"orderId": "148c5a06-35c9-40d3-8ef7-e85eb2da317d",
"country": "GB",
"firstName": "Test Order",
"lastName": "4",
"companyName": "company_example",
"addressLine1": "address example 1",
"addressLine2": "address example 2",
"city": "myCity",
"postCode": "111111",
"state": "",
"email": "[email protected]",
"phone": "+34 111444222",
"isBusiness": false,
"federalTaxId": "",
"stateTaxId": "",
"registrationState": ""
},
"shipment": {
"shipmentMethodUid": "fed_ex_2_day",
"shipmentMethodName": "DHL Global Parcel",
"fulfillmentCountry": "DE",
"fulfillmentFacilityId": "db0622e7-d7af-4453-b39f-cdf1b67f3daa",
"packageCount": 1,
"initialMinDeliveryDate": "2024-11-16",
"initialMaxDeliveryDate": "2024-11-16",
"serviceType": "normal"
}
}
Get Order
Retrieve information about an existing order.
Endpoint: GET /{getOrderURL}/{order_id}
You can use either the Gelato Order ID or your Order Reference ID.
Response Format
The response will include detailed information about the order, including:
Order details (ID, reference, status, etc.)
Shipping address
Items ordered with product details
Shipment information (method, tracking, etc.)
Financial information
Response example (click here)
Response example (click here)
{
"id": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"clientId": "ddb4371a-ad83-4f68-b99d-6b48c7eff366",
"orderReferenceId": "healthcheck_middleware_order_create_2024-12-02-11:05:06_1991",
"customerReferenceId": "sandbox-customer",
"fulfillmentStatus": "failed",
"financialStatus": "canceled",
"currency": "USD",
"shippingAddress": {
"id": "29de7336-95a9-48d2-aa85-d7d40e6ea65c",
"orderId": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"country": "GB",
"firstName": "TEST",
"lastName": "PRINT",
"companyName": "",
"addressLine1": "19 June Lewis Way",
"addressLine2": "",
"city": "Fairford",
"postCode": "GL7 4GH",
"state": "",
"email": "[email protected]",
"phone": "1111111119",
"isBusiness": false,
"federalTaxId": null,
"stateTaxId": null,
"registrationState": null
},
"items": [
{
"id": "e9f6de69-670b-47c5-a953-3710cac053a1",
"itemReferenceId": "1111111111",
"productUid": "large-posters_pf_500x700-mm_pt_170-gsm-coated-silk_cl_4-0_ver",
"storeProductVariantId": null,
"storeProductId": null,
"files": [
{
"id": null,
"type": "default",
"url": "https://URLexample.com/order",
"threadColors": [],
"isVisible": false,
"fitMethod": null,
"fillMethod": null,
"mimeType": "application/pdf",
"metadata": []
}
],
"processedFileUrl": null,
"quantity": 1,
"options": [],
"category": "Posters",
"productCategoryUid": "wall-art",
"productTypeUid": "poster",
"productNameUid": "classic-semi-glossy-poster",
"productName": "Classic Semi-Glossy Poster",
"fulfillmentStatus": "failed",
"pageCount": null,
"printJobs": [],
"eventLog": [],
"previews": [
{
"type": "preview_default",
"url": "https://URLexample.com/order"
},
{
"type": "preview_thumbnail",
"url": "https://URLexample.com/order"
},
{
"type": "preview_flat",
"url": "https://URLexample.com/order"
}
],
"designId": null,
"productFileMimeType": "application/pdf",
"finalProductUid": "large-posters_pf_500x700-mm_pt_170-gsm-coated-silk_cl_4-0_ver",
"metadata": [
{
"key": "unitWeight",
"value": "800"
},
{
"key": "unitPrice",
"value": ""
},
{
"key": "supplierPartAuxiliaryId",
"value": ""
}
],
"retailPriceInclVat": null,
"attributes": [
{
"name": "size",
"title": "Size",
"value": "500x700-mm",
"formattedValue": "50 x 70 cm"
},
{
"name": "orientation",
"title": "Orientation",
"value": "ver",
"formattedValue": "Vertical (portrait) orientation"
}
],
"itemReferenceName": null,
"isIgnored": false,
"price": 0,
"customTrim": null,
"fileUrl": "https://URLexample.com/order",
"dpi": 0,
"appServices": [],
"filesSize": 3.8,
"productVariant": []
}
],
"shipment": {
"id": "33163694-1437-407f-99ef-57a0d579114f",
"orderProductId": null,
"shippingAddressId": "29de7336-95a9-48d2-aa85-d7d40e6ea65c",
"promiseUid": "d_dfae1a1c58d230dbe73690a2",
"packageCount": 1,
"shipmentMethodUid": "dhl_global_parcel",
"shipmentMethodName": "DHL Global Parcel",
"isCheapest": true,
"minDeliveryDays": 1,
"maxDeliveryDays": 1,
"minDeliveryDate": "2024-12-03",
"maxDeliveryDate": "2024-12-03",
"totalWeight": 139,
"price": 0,
"status": null,
"packages": [],
"fulfillmentCountry": "DE",
"fulfillmentFacilityId": "db0622e7-d7af-4453-b39f-cdf1b67f3daa",
"retailShippingPriceInclVat": null,
"initialMinDeliveryDate": "2024-12-03",
"initialMaxDeliveryDate": "2024-12-03",
"serviceType": "normal",
"speedType": ""
},
"receipts": [
{
"id": "f9f6e29a-de14-4755-bafe-7cf0cdf6e3fc",
"orderId": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"type": "contract",
"currency": "USD",
"items": [
{
"id": "a99224b0-6e96-430e-84dd-82995f274840",
"receiptId": "f9f6e29a-de14-4755-bafe-7cf0cdf6e3fc",
"orderId": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"clientId": "ddb4371a-ad83-4f68-b99d-6b48c7eff366",
"type": "product",
"referenceId": "e9f6de69-670b-47c5-a953-3710cac053a1",
"title": "1x large-posters_pf_500x700-mm_pt_170-gsm-coated-silk_cl_4-0_ver",
"currency": "USD",
"priceBase": 0,
"amount": 1,
"priceInitial": 0,
"discount": 0,
"price": 0,
"vat": 0,
"priceInclVat": 0,
"pricePlanId": null,
"createdAt": "2024-12-02T11:05:09+00:00",
"updatedAt": "2024-12-02T11:05:09+00:00"
},
{
"id": "1d2936c3-eb3f-456d-94b9-b2be8c4eec50",
"receiptId": "f9f6e29a-de14-4755-bafe-7cf0cdf6e3fc",
"orderId": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"clientId": "ddb4371a-ad83-4f68-b99d-6b48c7eff366",
"type": "shipment",
"referenceId": "33163694-1437-407f-99ef-57a0d579114f",
"title": "Delivery using DHL Global Parcel",
"currency": "USD",
"priceBase": 0,
"amount": 1,
"priceInitial": 0,
"discount": 0,
"price": 0,
"vat": 0,
"priceInclVat": 0,
"pricePlanId": null,
"createdAt": "2024-12-02T11:05:09+00:00",
"updatedAt": "2024-12-02T11:05:09+00:00"
},
{
"id": "b7d6899c-3a00-46eb-8d14-e9b3e2bb3e4e",
"receiptId": "f9f6e29a-de14-4755-bafe-7cf0cdf6e3fc",
"orderId": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"clientId": "ddb4371a-ad83-4f68-b99d-6b48c7eff366",
"type": "packaging",
"referenceId": "33163694-1437-407f-99ef-57a0d579114f",
"title": "Packaging",
"currency": "USD",
"priceBase": 0,
"amount": 1,
"priceInitial": 0,
"discount": 0,
"price": 0,
"vat": 0,
"priceInclVat": 0,
"pricePlanId": null,
"createdAt": "2024-12-02T11:05:09+00:00",
"updatedAt": "2024-12-02T11:05:09+00:00"
}
],
"createdAt": "2024-12-02T11:05:09+00:00",
"updatedAt": "2024-12-02T11:05:10+00:00",
"receiptNumber": "005-0014597660",
"billingEntity": {
"id": 218720,
"companyName": "Gelato",
"companyNumber": "",
"companyVatNumber": "",
"companyVatNumbers": [],
"countryIsoCode": "DE",
"country": "DE",
"recipientName": "Alex Shiltcev",
"addressLine1": "Something 1",
"addressLine2": "",
"city": "Berlin",
"postCode": "10113",
"stateCode": "",
"state": "",
"email": "[email protected]",
"phone": "",
"currencyIsoCode": "EUR",
"currency": "EUR",
"status": 1,
"iossNumber": null,
"invoiceType": null
},
"billingTag": "gelato-norway-de",
"transactionType": "purchase",
"productsPriceInitial": 0,
"productsPriceDiscount": 0,
"productsPrice": 0,
"productsPriceVat": 0,
"productsPriceInclVat": 0,
"digitizationPriceInitial": 0,
"digitizationPriceDiscount": 0,
"digitizationPrice": 0,
"digitizationPriceVat": 0,
"digitizationPriceInclVat": 0,
"shippingPriceInitial": 0,
"shippingPriceDiscount": 0,
"shippingPrice": 0,
"shippingPriceVat": 0,
"shippingPriceInclVat": 0,
"packagingPriceInitial": 0,
"packagingPriceDiscount": 0,
"packagingPrice": 0,
"packagingPriceVat": 0,
"packagingPriceInclVat": 0,
"discount": 0,
"discountVat": 0,
"discountInclVat": 0,
"totalInitial": 0,
"total": 0,
"totalVat": 0,
"totalInclVat": 0,
"isCalculated": true
}
],
"createdAt": "2024-12-02T11:05:09+00:00",
"refusalReason": "Order is failing as it’s going to be cross border and product retail prices are missing.",
"channel": "api",
"storeId": null,
"orderedByUserId": null,
"orderType": "order",
"metadata": [
{
"key": "tenant-customer-id",
"value": "02be1010-5f59-4504-a669-5cf88e84f627"
},
{
"key": "tenant-customer-uid",
"value": "sandbox-customer"
}
],
"billingEntity": {
"id": 218720,
"companyName": "Gelato",
"companyNumber": "",
"companyVatNumber": "",
"companyVatNumbers": [],
"countryIsoCode": "DE",
"country": "DE",
"recipientName": "Alex Shiltcev",
"addressLine1": "Something 1",
"addressLine2": "",
"city": "Berlin",
"postCode": "10113",
"stateCode": "",
"state": "",
"email": "[email protected]",
"phone": "",
"currencyIsoCode": "EUR",
"currency": "EUR",
"status": 1,
"iossNumber": null,
"invoiceType": null
},
"retailCurrency": null,
"paymentMethodType": null,
"paymentMethodId": null,
"prepaymentTransactionId": null,
"orderedAt": "2024-12-02T11:05:07+00:00",
"updatedAt": "2024-12-02T11:05:10+00:00",
"connectedOrderIds": [],
"discounts": [],
"returnAddress": {
"id": "6eeb262a-92ce-45a4-9cd6-128473a0acb0",
"country": null,
"addressLine1": null,
"addressLine2": null,
"city": null,
"postCode": null,
"state": null,
"email": null,
"phone": null,
"companyName": "Gelato Connect Sandbox"
},
"iossNumber": null,
"refusalReasonCode": "missing_retail_prices",
"refusalReasonDetails": null,
"comment": "Order is failing as it’s going to be cross border and product retail prices are missing.",
"digitizationId": null,
"appServices": [],
"shipmentMethodUid": "normal"
}
Search Orders
Retrieve a list of orders based on specific criteria.
Endpoint: POST /{searchOrdersURL}
Request Format
{
"fulfillmentStatus": [
"canceled",
"delivered"
]
}
Request Parameters
Parameter | Type | Required | Description |
fulfillmentStatus | string[] | Optional | Filter by order fulfillment status |
financialStatus | string[] | Optional | Filter by order financial status |
orderReferenceId | string | Optional | Filter by your internal order ID |
orderReferenceIds | string[] | Optional | Filter by multiple internal order IDs |
startDate | string | Optional | Filter by orders created after this date (ISO 8601 format) |
endDate | string | Optional | Filter by orders created before this date (ISO 8601 format) |
countries | string[] | Optional | Filter by shipping country codes |
limit | number | Optional | Maximum number of results to return (default: 50, max: 100) |
offset | number | Optional | Number of results to skip for pagination (default: 0) |
Response Format
{
"orders": [
{
"id": "9f9ff09f-5891-4d3d-be35-9b302db835a1",
"clientId": "ddb4371a-ad83-4f68-b99d-6b48c7eff366",
"orderReferenceId": "orderref_123",
"fulfillmentStatus": "failed",
"financialStatus": "canceled",
"currency": "USD",
"totalInclVat": "0.00",
"orderType": "order",
"channel": "api",
"storeId": null,
"connectedOrderIds": [],
"firstName": "TEST",
"lastName": "PRINT",
"country": "GB",
"itemsCount": 1,
"createdAt": "2024-12-02T11:05:09+00:00",
"updatedAt": "2024-12-02T11:05:10+00:00",
"orderedAt": "2024-12-02T11:05:07+00:00",
"refusalReasonCode": "missing_retail_prices",
"appServices": [],
"customerReferenceId": "custref_456"
}
]
}
Error Handling
When an API request fails, the response will include an error code and a descriptive message to help you identify and resolve the issue. Common error scenarios include:
400 Bad Request: Invalid or missing parameters
401 Unauthorized: Invalid or missing authentication credentials
404 Not Found: The requested resource doesn't exist
429 Too Many Requests: Rate limit exceeded
500 Server Error: An unexpected error occurred on the server
Example error response:
{
"code": 400,
"message": "Invalid shipping address: Email is not a valid format"
}
For robust integration, implement proper error handling and retry logic as described in the Rate Limits section.
Getting Support
If you encounter issues or have questions about the API, please contact our support team at [email protected].
Include the following information in your support request:
The specific API endpoint you're using
Your request payload (with sensitive information redacted)
The error response you received
Any relevant timestamps
This will help our team address your issue more quickly and effectively.