Produce print files and let Printess forward them to a fulfillment partner (HP Siteflow, email, Dropbox, FTP and more). Save the recipient address first, then start the dropship production. All endpoints are POST requests with a JSON body to https://api.printess.com. See the Backend API Reference for authentication and how Try It Live works.
https://api.printess.com/dropshipData/saveownerStores the recipient address for a dropship order and returns its id.
Stores the shipping address (and optional delivery details) of your end customer and returns a numeric id. This id is what you pass as dropshipDataId when calling /dropship/produce — always call this endpoint first.
Sending id: 0 (or omitting it) creates a new address record. Sending an existing id that belongs to your account updates it. The address itself is not validated when you save it — errors like an invalid country code only surface later when the dropship order is routed to the fulfillment partner, so double check the address format below.
This endpoint requires an owner-level token (your Service Token works). Note that it is stricter than /dropship/produce: a restricted dropship-producer token can produce, but cannot save addresses.
Step 1 of the dropship flow: save the address here, then pass the returned id to /dropship/produce as dropship.dropshipDataId.
| Property | Description | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
typerequired
string |
The kind of data stored. Always send printess-shipping — it is the only supported value. Anything else is accepted here but makes the dropship order fail later.
|
||||||||||||||||||||||||||||||||
jsonrequired
object | string |
The recipient address. You can send it as a nested JSON object or as a string containing serialized JSON — both are accepted. Field names are matched case-insensitively.
16 nested properties
|
||||||||||||||||||||||||||||||||
id
integer (int64)default: 0 |
Leave at 0 (or omit) to create a new address. Pass an existing id that belongs to your account to update it.
|
https://api.printess.com/dropshipData/save with your Service Token.Ready-to-use code with the minimal payload. Replace YOUR_PRINTESS_SERVICE_TOKEN with your Service Token.
// Stores the recipient address for a dropship order and returns its id.
const response = await fetch("https://api.printess.com/dropshipData/save", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_PRINTESS_SERVICE_TOKEN"
},
body: JSON.stringify({
"type": "printess-shipping",
"json": {
"firstName": "Jane",
"lastName": "Doe",
"address1": "Finkenkruger Str. 46",
"city": "Falkensee",
"zip": "14612",
"country": "DE"
}
})
});
if (!response.ok) {
throw new Error("Printess API error " + response.status + ": " + await response.text());
}
const result = await response.json();
console.log(result);
curl -X POST "https://api.printess.com/dropshipData/save" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_PRINTESS_SERVICE_TOKEN" \
-d '{
"type": "printess-shipping",
"json": {
"firstName": "Jane",
"lastName": "Doe",
"address1": "Finkenkruger Str. 46",
"city": "Falkensee",
"zip": "14612",
"country": "DE"
}
}'
// Stores the recipient address for a dropship order and returns its id.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
var payload = @"{
""type"": ""printess-shipping"",
""json"": {
""firstName"": ""Jane"",
""lastName"": ""Doe"",
""address1"": ""Finkenkruger Str. 46"",
""city"": ""Falkensee"",
""zip"": ""14612"",
""country"": ""DE""
}
}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_PRINTESS_SERVICE_TOKEN");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.printess.com/dropshipData/save", content);
if (!response.IsSuccessStatusCode)
{
throw new HttpRequestException("Printess API error " + (int)response.StatusCode + ": " + await response.Content.ReadAsStringAsync());
}
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
<?php
// Stores the recipient address for a dropship order and returns its id.
$payload = [
'type' => 'printess-shipping',
'json' => [
'firstName' => 'Jane',
'lastName' => 'Doe',
'address1' => 'Finkenkruger Str. 46',
'city' => 'Falkensee',
'zip' => '14612',
'country' => 'DE',
],
];
$ch = curl_init('https://api.printess.com/dropshipData/save');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer YOUR_PRINTESS_SERVICE_TOKEN',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status < 200 || $status >= 300) {
throw new RuntimeException("Printess API error $status: $response");
}
$result = json_decode($response, true);
print_r($result);
Returns the numeric id of the stored address as a plain JSON number, e.g. 42484. Pass this value as dropship.dropshipDataId to /dropship/produce.
| Status / Code | Meaning |
|---|---|
406 (c: 100/101) |
Body missing, or type / json is empty. |
401 / 403 |
Missing token or the token is not owner-level. |
Copy-ready type definitions for the object types of this endpoint. All their properties are also listed in the tables above.
json requestinterface Json {
firstName?: string;
lastName?: string;
companyName?: string;
address1: string;
address2?: string;
address3?: string;
city: string;
zip: string;
country: string;
countryState?: string;
phone?: string;
email?: string;
dispatchNotice?: string;
deliveryNotice?: string;
deliveryDate?: string;
data?: Record<string, string>;
}
public class Json
{
[JsonPropertyName("firstName")]
public string FirstName { get; set; }
[JsonPropertyName("lastName")]
public string LastName { get; set; }
[JsonPropertyName("companyName")]
public string CompanyName { get; set; }
[JsonPropertyName("address1")]
public string Address1 { get; set; }
[JsonPropertyName("address2")]
public string Address2 { get; set; }
[JsonPropertyName("address3")]
public string Address3 { get; set; }
[JsonPropertyName("city")]
public string City { get; set; }
[JsonPropertyName("zip")]
public string Zip { get; set; }
[JsonPropertyName("country")]
public string Country { get; set; }
[JsonPropertyName("countryState")]
public string CountryState { get; set; }
[JsonPropertyName("phone")]
public string Phone { get; set; }
[JsonPropertyName("email")]
public string Email { get; set; }
[JsonPropertyName("dispatchNotice")]
public string DispatchNotice { get; set; }
[JsonPropertyName("deliveryNotice")]
public string DeliveryNotice { get; set; }
[JsonPropertyName("deliveryDate")]
public DateTime? DeliveryDate { get; set; }
[JsonPropertyName("data")]
public Dictionary<string, string> Data { get; set; }
}
<?php
class Json
{
public ?string $firstName = null;
public ?string $lastName = null;
public ?string $companyName = null;
public string $address1;
public ?string $address2 = null;
public ?string $address3 = null;
public string $city;
public string $zip;
public string $country;
public ?string $countryState = null;
public ?string $phone = null;
public ?string $email = null;
public ?string $dispatchNotice = null;
public ?string $deliveryNotice = null;
public ?string $deliveryDate = null;
/** @var array<string, string>|null */
public ?array $data = null;
}
https://api.printess.com/dropship/produceuser or dropship-producerRenders the print files and forwards the finished order to your fulfillment partner.
Works exactly like /production/produce (all its properties are available here as well), plus the required dropship object. After the print files are rendered successfully, Printess automatically submits the order to the fulfillment partner configured in the referenced product definition — HP Siteflow, email dropshipping, Dropbox, FTP and others.
Important: a 200 response means the production job was accepted, NOT that the fulfillment partner accepted the order. Everything after rendering happens asynchronously. Poll /dropship/orders/list to see the fulfillment state, tracking number and any routing errors.
Property names in this request are case-sensitive — send them exactly as documented.
Call /dropshipData/save first to store the recipient address — its returned id goes into dropship.dropshipDataId.
The dropship.productDefinitionId identifies the product AND the fulfillment partner. You manage product definitions in the account portal (Dropshippers section). It can be omitted only if the template or save token already has a product definition assigned.
For orders with multiple personalized items, call this endpoint once per line item with the same linkedOrderLineItemsId (a GUID) and linkedOrderLineItems set to the total count — Printess then waits for all items and submits ONE combined order to the fulfillment partner.
| Property | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
templateNamerequired
string |
The template to produce. Either a template name from your account or a save token (st:...) handed over by the buyer-side editor.
|
||||||||||||||||||
originrequired
string |
Free text tag for this production request (e.g. your shop domain). Used to search and filter your orders later. | ||||||||||||||||||
dropshiprequired
object |
The dropshipping configuration for this order.
9 nested properties
|
||||||||||||||||||
externalOrderId
string |
Your shop's order id. Stored with the order, searchable via /orders/list and useful for accounting.
|
||||||||||||||||||
copies
integerdefault: 1 |
Quantity — how many copies of the product the fulfillment partner should produce. | ||||||||||||||||||
callbackUrl
string |
URL that is called when the RENDERING finished (success or error) — this is separate from the dropship status callback configured via dropship.callbackType. Must be an absolute URL.
|
||||||||||||||||||
callbackHeaders
object |
HTTP headers sent with the rendering callback request, as a name to value map, e.g. { "X-Api-Key": "..." }. Only used together with callbackUrl.
|
||||||||||||||||||
outputFiles
OutputFile[] |
Which documents of the template to output as separate files, each with its own settings. For HP Siteflow the number of produced documents must match the number of components configured in the product definition. | ||||||||||||||||||
outputSettings
OutputSettings |
Output settings (dpi etc.) used when outputFiles is not specified. See /production/produce for all properties.
|
||||||||||||||||||
printSettingsTemplate
string |
Name of a print settings template created in the account portal. The recommended way to configure output — your production team can change print settings without touching the integration code. | ||||||||||||||||||
outputType
stringdefault: pdf |
Output format.
Values:
pdf png jpg |
||||||||||||||||||
orderMetaData
string |
Meta data stored with the order (returned by /orders/list). If you pass a serialized JSON object, its keys are also available as {meta.<key>} placeholders in email/FTP/Dropbox dropshipping.
|
||||||||||||||||||
vdp
Vdp |
Form field values and variable data. See /production/produce for details.
|
||||||||||||||||||
usePublishedVersion
booleandefault: false |
Produce the published version of the template. Only relevant for direct template production — save tokens are not affected. | ||||||||||||||||||
productType
string |
Free text product type, used for searching orders. |
https://api.printess.com/dropship/produce with your Service Token.Ready-to-use code with the minimal payload. Replace YOUR_PRINTESS_SERVICE_TOKEN with your Service Token.
// Renders the print files and forwards the finished order to your fulfillment partner.
const response = await fetch("https://api.printess.com/dropship/produce", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_PRINTESS_SERVICE_TOKEN"
},
body: JSON.stringify({
"templateName": "YOUR_TEMPLATE_OR_SAVETOKEN",
"origin": "your-shop.com",
"dropship": {
"dropshipDataId": 0,
"productDefinitionId": 0
}
})
});
if (!response.ok) {
throw new Error("Printess API error " + response.status + ": " + await response.text());
}
const result = await response.json();
console.log(result);
curl -X POST "https://api.printess.com/dropship/produce" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_PRINTESS_SERVICE_TOKEN" \
-d '{
"templateName": "YOUR_TEMPLATE_OR_SAVETOKEN",
"origin": "your-shop.com",
"dropship": {
"dropshipDataId": 0,
"productDefinitionId": 0
}
}'
// Renders the print files and forwards the finished order to your fulfillment partner.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
var payload = @"{
""templateName"": ""YOUR_TEMPLATE_OR_SAVETOKEN"",
""origin"": ""your-shop.com"",
""dropship"": {
""dropshipDataId"": 0,
""productDefinitionId"": 0
}
}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_PRINTESS_SERVICE_TOKEN");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.printess.com/dropship/produce", content);
if (!response.IsSuccessStatusCode)
{
throw new HttpRequestException("Printess API error " + (int)response.StatusCode + ": " + await response.Content.ReadAsStringAsync());
}
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
<?php
// Renders the print files and forwards the finished order to your fulfillment partner.
$payload = [
'templateName' => 'YOUR_TEMPLATE_OR_SAVETOKEN',
'origin' => 'your-shop.com',
'dropship' => [
'dropshipDataId' => 0,
'productDefinitionId' => 0,
],
];
$ch = curl_init('https://api.printess.com/dropship/produce');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer YOUR_PRINTESS_SERVICE_TOKEN',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status < 200 || $status >= 300) {
throw new RuntimeException("Printess API error $status: $response");
}
$result = json_decode($response, true);
print_r($result);
The full two-step flow: save the recipient address, then start the dropship production with a save token from the buyer-side editor.
const baseUrl = "https://api.printess.com";
const headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_PRINTESS_SERVICE_TOKEN"
};
// Step 1: store the recipient address
const addressResponse = await fetch(baseUrl + "/dropshipData/save", {
method: "POST",
headers,
body: JSON.stringify({
type: "printess-shipping",
json: {
firstName: "Jane",
lastName: "Doe",
address1: "Finkenkruger Str. 46",
city: "Falkensee",
zip: "14612",
country: "DE" // ISO alpha-2 or alpha-3 code
}
})
});
const dropshipDataId = await addressResponse.json(); // a plain number
// Step 2: produce and dropship
const produceResponse = await fetch(baseUrl + "/dropship/produce", {
method: "POST",
headers,
body: JSON.stringify({
templateName: "st:...", // save token from the buyer side editor
origin: "your-shop.com",
externalOrderId: "#1042", // your shop's order number
copies: 1,
dropship: {
dropshipDataId,
productDefinitionId: 2874 // from your account portal
}
})
});
const { jobId, orderId } = await produceResponse.json();
// Track fulfillment state via POST /dropship/orders/list
With callbackType: 2 Printess automatically sets the Shopify order to fulfilled (including tracking number and customer notification) as soon as the fulfillment partner ships. For orders with several personalized items, link them so Shopify receives one fulfillment covering all line items.
await fetch("https://api.printess.com/dropship/produce", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_PRINTESS_SERVICE_TOKEN"
},
body: JSON.stringify({
templateName: "st:...",
origin: "my-shop.myshopify.com",
externalOrderId: "#1042",
dropship: {
dropshipDataId: 42484,
productDefinitionId: 2874,
callbackType: 2, // Shopify autofulfill
callbackPayload: {
domain: "my-shop.myshopify.com",
orderId: 5123456789012, // Shopify order id
lineItemId: 13456789012345, // Shopify line item id
orderName: "#1042"
},
// only for orders with more than one personalized line item:
linkedOrderLineItems: 3,
linkedOrderLineItemsId: "0f0a2c8e-6f6e-4c4f-9d3b-2c31f4a1b111"
}
})
});
The job was accepted for rendering.
| Property | Description |
|---|---|
jobId
string |
Id of the enqueued render job. Use it with /production/status/get.
|
orderId
string |
Id of the created order. Use it with /orders/list or /order/retry.
|
With callbackType: 1, Printess POSTs the following JSON to your URL as soon as the fulfillment partner reports the shipment. Respond with a 2xx status code. orderId, lineItemId and state are echoed from your callbackPayload.
{
"printessDropshipId": 55123,
"printessOrderId": "9f3c...",
"orderId": 123456789,
"lineItemId": 987654321,
"trackingId": "00340434...",
"trackingPayload": "https://tracking-url...",
"trackingType": 1,
"eventName": "shipped",
"state": null
}
| Status / Code | Meaning |
|---|---|
406 (c: 100) |
Body missing, dropship property missing, or / used in linkedOrderLineItemsId. |
406 (c: 101) |
templateName missing. |
406 (c: 102) |
Invalid callbackUrl, or dropshipDataId / productDefinitionId missing. |
406 (c: 202) |
The save token is already expired. |
406 (c: 601/602/603) |
Save token / template / published version not found. |
Copy-ready type definitions for the object types of this endpoint. All their properties are also listed in the tables above.
dropship requestinterface Dropship {
dropshipDataId: number;
productDefinitionId: number;
callbackType?: "0 = None" | "1 = Url" | "2 = Shopify";
callbackPayload?: string | object;
linkedOrderLineItems?: number;
linkedOrderLineItemsId?: string;
shippingCode?: string;
shippingTitle?: string;
data?: Record<string, string>;
}
public class Dropship
{
[JsonPropertyName("dropshipDataId")]
public long DropshipDataId { get; set; }
[JsonPropertyName("productDefinitionId")]
public long ProductDefinitionId { get; set; }
[JsonPropertyName("callbackType")]
public int? CallbackType { get; set; }
[JsonPropertyName("callbackPayload")]
public object CallbackPayload { get; set; }
[JsonPropertyName("linkedOrderLineItems")]
public int? LinkedOrderLineItems { get; set; }
[JsonPropertyName("linkedOrderLineItemsId")]
public string LinkedOrderLineItemsId { get; set; }
[JsonPropertyName("shippingCode")]
public string ShippingCode { get; set; }
[JsonPropertyName("shippingTitle")]
public string ShippingTitle { get; set; }
[JsonPropertyName("data")]
public Dictionary<string, string> Data { get; set; }
}
<?php
class Dropship
{
public int $dropshipDataId;
public int $productDefinitionId;
/** @var '0 = None'|'1 = Url'|'2 = Shopify'|null */
public ?int $callbackType = null;
/** @var string|object|null */
public mixed $callbackPayload = null;
public ?int $linkedOrderLineItems = null;
public ?string $linkedOrderLineItemsId = null;
public ?string $shippingCode = null;
public ?string $shippingTitle = null;
/** @var array<string, string>|null */
public ?array $data = null;
}
https://api.printess.com/dropship/orders/listuserQuery the fulfillment state and tracking information of your dropship orders.
Returns your dropship orders — one entry per submission to a fulfillment partner — including the current state, tracking number and tracking URL. This is the endpoint to poll if you do not use callbacks.
The state property: 0 = created/submitted, 1 = shipped (tracking available), 10 = received by the fulfillment partner, 11 = print-ready, 98 = cancelled, 99 = error (see errorMessage). Some partners report additional partner-specific status codes, so always interpret state together with the partner type.
Note: the externalOrderId filter here matches the FULFILLMENT PARTNER’s order id (e.g. the HP Siteflow order id, as returned in externalOrderId of this list) — not your shop’s order id. To find orders by your own id, use /orders/list with externalOrderId and match the orderId here against it. When externalOrderId is set, the date filters are ignored.
| Property | Description |
|---|---|
externalOrderId
string |
Exact match on the fulfillment partner's order id. When set, startDate / endDate are ignored.
|
startDate
string (date-time) |
Only orders created on or after this date. |
endDate
string (date-time) |
Only orders created on or before this date. |
take
integerdefault: 100 |
Page size, maximum 500. |
skip
integerdefault: 0 |
Number of entries to skip (paging). Results are ordered by creation date, newest first. |
userId
string |
Admin only — ignored for regular accounts. |
https://api.printess.com/dropship/orders/list with your Service Token.Ready-to-use code with the minimal payload. Replace YOUR_PRINTESS_SERVICE_TOKEN with your Service Token.
// Query the fulfillment state and tracking information of your dropship orders.
const response = await fetch("https://api.printess.com/dropship/orders/list", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_PRINTESS_SERVICE_TOKEN"
},
body: JSON.stringify({})
});
if (!response.ok) {
throw new Error("Printess API error " + response.status + ": " + await response.text());
}
const result = await response.json();
console.log(result);
curl -X POST "https://api.printess.com/dropship/orders/list" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_PRINTESS_SERVICE_TOKEN" \
-d '{}'
// Query the fulfillment state and tracking information of your dropship orders.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
var payload = @"{}";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "YOUR_PRINTESS_SERVICE_TOKEN");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.printess.com/dropship/orders/list", content);
if (!response.IsSuccessStatusCode)
{
throw new HttpRequestException("Printess API error " + (int)response.StatusCode + ": " + await response.Content.ReadAsStringAsync());
}
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
<?php
// Query the fulfillment state and tracking information of your dropship orders.
$payload = (object) [];
$ch = curl_init('https://api.printess.com/dropship/orders/list');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer YOUR_PRINTESS_SERVICE_TOKEN',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status < 200 || $status >= 300) {
throw new RuntimeException("Printess API error $status: $response");
}
$result = json_decode($response, true);
print_r($result);
Returns the matching orders plus lookup tables for the referenced product definitions.
| Property | Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
orders
DropshipOrder[] |
The dropship orders, newest first.
13 nested properties
|
||||||||||||||||||||||||||
productDefinitions
map<id, {display, dropshipperId}> |
Lookup table: product definition id to display name for your own product definitions. | ||||||||||||||||||||||||||
saasProductDefinitions
map<id, {display, dropshipperId}> |
Lookup table for product definitions provided by Printess. | ||||||||||||||||||||||||||
count
integer |
Total number of matching orders (ignoring paging). |
| Status / Code | Meaning |
|---|---|
401 |
Missing or invalid token. |
Copy-ready type definitions for the object types of this endpoint. All their properties are also listed in the tables above.
DropshipOrder responseinterface DropshipOrder {
id?: number;
createdOn?: string;
externalOrderId?: string;
orderId?: string;
dropshipperType?: string;
productDefinitionId?: number;
dropshipDataId?: number;
quantity?: number;
state?: number;
trackingId?: string;
trackingPayload?: string;
callbackType?: number;
errorMessage?: string;
}
public class DropshipOrder
{
[JsonPropertyName("id")]
public long? Id { get; set; }
[JsonPropertyName("createdOn")]
public DateTime? CreatedOn { get; set; }
[JsonPropertyName("externalOrderId")]
public string ExternalOrderId { get; set; }
[JsonPropertyName("orderId")]
public string OrderId { get; set; }
[JsonPropertyName("dropshipperType")]
public string DropshipperType { get; set; }
[JsonPropertyName("productDefinitionId")]
public long? ProductDefinitionId { get; set; }
[JsonPropertyName("dropshipDataId")]
public long? DropshipDataId { get; set; }
[JsonPropertyName("quantity")]
public int? Quantity { get; set; }
[JsonPropertyName("state")]
public int? State { get; set; }
[JsonPropertyName("trackingId")]
public string TrackingId { get; set; }
[JsonPropertyName("trackingPayload")]
public string TrackingPayload { get; set; }
[JsonPropertyName("callbackType")]
public int? CallbackType { get; set; }
[JsonPropertyName("errorMessage")]
public string ErrorMessage { get; set; }
}
<?php
class DropshipOrder
{
public ?int $id = null;
public ?string $createdOn = null;
public ?string $externalOrderId = null;
public ?string $orderId = null;
public ?string $dropshipperType = null;
public ?int $productDefinitionId = null;
public ?int $dropshipDataId = null;
public ?int $quantity = null;
public ?int $state = null;
public ?string $trackingId = null;
public ?string $trackingPayload = null;
public ?int $callbackType = null;
public ?string $errorMessage = null;
}