Skip to main content

Update Dropship Profile

PUT 

/api/admin/portal/accounts/:customer/dropship-profile

Create or update an account's dropship profile. The first save creates it. Requires the portal.manage permission. Returns the saved profile (same shape as Get Dropship Profile).

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

Request fields (every key is optional; only keys you send are written — send the whole object or just the keys you are changing):

Program

  • enabled (boolean): turn the dropship program on or off for this account.
  • intake_channels (array of strings, distinct): routes the retailer may submit dropship orders through — portal, csv, api, edi.

Branding (prints on the blind packing slip)

  • display_name (string, max 255, nullable): the retailer name on every slip. Required while the program is enabled (checked against the value the profile will have after this request).
  • support_email (email, max 255, nullable), support_phone (string, max 64, nullable).
  • slip_message (string, max 2000, nullable): message printed on the slip.
  • insert_instructions (string, max 2000, nullable): instructions for your packers (e.g. inserts to add); not printed for the end customer.
  • return_address (object, nullable): the return address printed on the slip. When sent, name, address1, city and country_code (2 letters) are required; company, address2, address3, province, province_code (max 16), zip (max 32), country, phone (max 64) and email are optional. Send null to clear it.
  • packing_slip_template_id (integer, nullable): a PACKING-type PDF template to use for this retailer's slips; null uses the tenant's dropship default.
  • retailer_manages_branding (boolean): when true, the retailer's company admins may edit the branding keys (display_name, support_email, support_phone, slip_message, return_address) themselves from the buyer portal.

Pricing and fees

  • pricing_tier_id (integer, nullable, must exist): pricing tier for dropship orders; null uses the account's tier. The tier must be in the account's currency (the currency of the account's own pricing tier) — a tier in another currency is refused with a 422 on pricing_tier_id.
  • fee_per_order (number 0–99999), fee_per_unit (number 0–99999): dropship handling fees added to each order.
  • shipping_charge_mode (string): none, flat, rate_table or actual (label cost plus shipping_markup_percent). actual is only accepted when dropship orders invoice per_shipment or consolidated (the profile's invoicing_policy, else the account's), so the invoice is raised after the label exists.
  • shipping_flat_amount (number 0–99999, nullable): required when the mode is flat.
  • shipping_free_over (number 0–9999999, nullable): order subtotal above which shipping is free.
  • shipping_rate_table (object, nullable, max 50 entries): charge per shipping method, keyed by shipping method id ({"5": 8.95}); required when the mode is rate_table. Each value 0–99999.
  • shipping_markup_percent (number 0–1000, nullable): markup on the label cost for the actual mode.
  • exempt_minimums (boolean): exempt dropship orders from the account's minimum order value.
  • catalog_id (integer, nullable): restrict dropship orders to one live portal catalog.

Shipping and SLA

  • default_shipping_method_id (integer, nullable, must exist): service used when the retailer does not pick one. Must be one of allowed_shipping_method_ids when that list is set.
  • allowed_shipping_method_ids (array of distinct shipping method ids, max 50, nullable): services the retailer may request; null or empty allows all.
  • third_party_billing (object, nullable): bill labels to the retailer's own carrier account — carrier (ups or fedex), account_number (max 32, letters, digits and dashes), postal_code (max 16), country_code (2 letters). Sent keys merge over the stored value, so omitting account_number keeps the stored number. Send null to remove.
  • allow_international (boolean): accept dropship orders to non-domestic addresses.
  • sla_business_days (integer 0–30): business days to ship after the cut-off.
  • sla_cutoff_time (string HH:MM or HH:MM:SS, 24-hour, tenant timezone): daily order cut-off.
  • feed_safety_stock (integer 0–100000): units held back from the retailer's inventory feed per product.

Tracking and notifications

  • tracking_email (email, max 255, nullable): where shipment tracking is sent.
  • tracking_email_mode (string): per_order, daily_digest or off.
  • consumer_notifications (string): off or shipped — whether the end customer gets a shipped email.

Billing and returns

  • invoicing_policy (string, nullable): per_order, per_shipment or consolidated; null follows the account's policy.
  • returns_destination (string): merchant_warehouse_retailer_named (returns come to your warehouse in the retailer's name) or retailer (returns go to the retailer).
  • retailer_return_address (object, nullable): the retailer's own return address, same shape and rules as return_address. Required when returns_destination is retailer.
  • restocking_fee_percent (number 0–100).

Errors. 422 with the standard validation shape for any rule above, including the cross-field checks (display name while enabled, actual shipping vs. invoicing policy, flat amount for flat, default service within the allowed services, retailer return address for retailer returns). Cross-field checks use the value the profile will have after the request — a key you omit is taken from what is stored.

Request​

Responses​

OK

Response Headers
    Content-Type