Create a salesorder

POST/accounting/{connection_id}/salesorder

Parameters

fieldsstring array
Fields to return
rawstring
Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar
connection_idstring required
ID of the connection

Payload

idstring
created_atdate-time
(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atdate-time
(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
posted_atdate-time
(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
contact_idstring
Customer, Supplier (reference to AccountingContact)
account_idstring
(reference to AccountingAccount)
currencystring
total_amountnumber
shipping_addressobject
billing_addressobject
status enum
Valid values:
"DRAFT"
"VOIDED"
"AUTHORIZED"
"PAID"
"PARTIALLY_PAID"
lineitems array
sales_channelstring
organization_idstring
fees array
category_idsstring array
(reference to AccountingCategory)
metadata array
order_numberstring
human-facing receipt/ticket/check number, distinct from id
location_idstring
store/site; reference to a commerce_location or hris_location
employee_user_idstring
selling/serving HR employee (server, cashier) (reference to HrisEmployee)
device_idstring
POS register/terminal/device (HRIS Device)
fulfillment_type enum
Valid values:
"DINE_IN"
"TAKEOUT"
"DELIVERY"
"PICKUP"
"CURBSIDE"
guest_countnumber
subtotal_amountnumber
pre-tax, pre-tip amount
tax_amountnumber
discount_amountnumber
tip_amountnumber
service_charge_amountnumber
refunded_amountnumber
closed_atdate-time
(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
subscription_idstring
payment_subscription that generated this order, if recurring
payments array
read-only reciprocal of PaymentPayment.allocations; payments applied to this sales order

Returns

Response fieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
posted_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
contact_idstringNoCustomer, Supplier (reference to AccountingContact)
account_idstringNo(reference to AccountingAccount)
currencystringNo
total_amountnumberNo
shipping_addressobjectNo
shipping_address.address1stringNo
shipping_address.address2stringNo
shipping_address.citystringNo
shipping_address.regionstringNoRegional area of the employee's address. For example, in the U.S., the region is the employee's state; in Canada, the region is the employee’s province.
shipping_address.region_codestringNoShort form for the regional area of the employee's address. For example, in the U.S., the region code is the two-letter abbreviation for the employee’s state; in Canada, the region is the two-letter abbreviation for the employee's province.
shipping_address.postal_codestringNo
shipping_address.countrystringNo
shipping_address.country_codestringNoCountry code for the country, in ISO 3166 A-2 format
billing_addressobjectNo
billing_address.address1stringNo
billing_address.address2stringNo
billing_address.citystringNo
billing_address.regionstringNoRegional area of the employee's address. For example, in the U.S., the region is the employee's state; in Canada, the region is the employee’s province.
billing_address.region_codestringNoShort form for the regional area of the employee's address. For example, in the U.S., the region code is the two-letter abbreviation for the employee’s state; in Canada, the region is the two-letter abbreviation for the employee's province.
billing_address.postal_codestringNo
billing_address.countrystringNo
billing_address.country_codestringNoCountry code for the country, in ISO 3166 A-2 format
statusenumNoValues: DRAFT, VOIDED, AUTHORIZED, PAID, PARTIALLY_PAID, PARTIALLY_REFUNDED, REFUNDED, SUBMITTED, DELETED, OPEN, COMPLETED, CANCELED
lineitemsAccountingLineitem[]No
lineitems[].idstringNo
lineitems[].created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
lineitems[].updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
lineitems[].refunded_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
lineitems[].total_amountnumberNounit_quantity * unit_amount + tax_amount
lineitems[].refund_amountnumberNo
lineitems[].discount_amountnumberNo
lineitems[].tax_amountnumberNo
lineitems[].item_idstringNo(reference to CommerceItem)
lineitems[].unit_amountnumberNo
lineitems[].unit_quantitynumberNo
lineitems[].item_skustringNo
lineitems[].item_namestringNo
lineitems[].item_descriptionstringNo
lineitems[].notesstringNo
lineitems[].taxrate_idstringNo
lineitems[].account_idstringNo(reference to AccountingAccount)
lineitems[].category_idsstring[]No(reference to AccountingCategory)
lineitems[].locationsAccountingReference[]No
lineitems[].locations[].idstringNo
lineitems[].locations[].namestringNo
lineitems[].item_variantsAccountingReference[]No
lineitems[].item_variants[].idstringNo
lineitems[].item_variants[].namestringNo
lineitems[].feesAccountingFee[]No
lineitems[].fees[].typeenumYesUnified fee category Values: TAX, DISCOUNT, PROMOTION, SHIPPING, GIFT_WRAP, COD, SURCHARGE, TIP, SERVICE_CHARGE, OTHER
lineitems[].fees[].original_typestringNoThe provider's original fee label, e.g. "VAT" or a shipping carrier name
lineitems[].fees[].amountnumberYes
lineitems[].fees[].currencystringNoISO 4217 currency code, e.g. USD
lineitems[].contact_idstringNo(reference to AccountingContact)
lineitems[].project_idstringNoref -> AccountingProject; the project this line is coded to (reference to TaskProject)
lineitems[].exchange_ratenumberNoThe exchange rate applied to this line, for multi-currency documents
lineitems[].is_billablebooleanNoTrue when the line is rebillable to a customer
sales_channelstringNo
organization_idstringNo
feesAccountingFee[]No
fees[].typeenumYesUnified fee category Values: TAX, DISCOUNT, PROMOTION, SHIPPING, GIFT_WRAP, COD, SURCHARGE, TIP, SERVICE_CHARGE, OTHER
fees[].original_typestringNoThe provider's original fee label, e.g. "VAT" or a shipping carrier name
fees[].amountnumberYes
fees[].currencystringNoISO 4217 currency code, e.g. USD
category_idsstring[]No(reference to AccountingCategory)
metadataAccountingMetadata[]No
metadata[].idstringNo
metadata[].slugstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo
order_numberstringNohuman-facing receipt/ticket/check number, distinct from id
location_idstringNostore/site; reference to a commerce_location or hris_location
employee_user_idstringNoselling/serving HR employee (server, cashier) (reference to HrisEmployee)
device_idstringNoPOS register/terminal/device (HRIS Device)
fulfillment_typeenumNoValues: DINE_IN, TAKEOUT, DELIVERY, PICKUP, CURBSIDE, SHIPPING, DIGITAL, OTHER
guest_countnumberNo
subtotal_amountnumberNopre-tax, pre-tip amount
tax_amountnumberNo
discount_amountnumberNo
tip_amountnumberNo
service_charge_amountnumberNo
refunded_amountnumberNo
closed_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
subscription_idstringNopayment_subscription that generated this order, if recurring
paymentsAccountingPaymentReference[]Noread-only reciprocal of PaymentPayment.allocations; payments applied to this sales order
payments[].payment_idstringNoreferences a PaymentPayment that was applied to this object (reference to PaymentPayment)
payments[].amountnumberNoamount of the payment applied to this object
payments[].allocated_atstring (date-time)NoDate and time when the payment was applied, in ISO 8601 format and UTC (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)

Errors

Errors return the HTTP status code and a JSON body with statusCode, error (the short label) and message (a human-readable detail).

{
  "statusCode": 429,
  "error": "Too Many Requests",
  "message": "Too many requests to unified.to API; max requests per minute: N"
}
StatusErrorMeaning
400Bad RequestThe request was malformed or failed validation.
401UnauthorizedThe connection is likely broken; re-authorize it.
403ForbiddenThe connection is missing permissions or scopes.
404Not FoundThe requested resource does not exist.
429Too Many RequestsRate limit exceeded (see the two sources below).
500Internal Server ErrorAn unexpected error occurred.
501Not ImplementedNot supported by this integration.

Errors from the underlying integration pass through: the integration's status comes back as ours (429, 401, 403, 404 or 5xx), usually with its message. When the integration's error body is unclear, Unified extracts what it can and returns a clearer message.

429 Too Many Requests

A 429 has two possible sources:

  • The integration's own rate limit, passed through.
  • Unified's workspace limit: a rolling 60 seconds, set by plan, with the message Too many requests to unified.to API; max requests per minute: N.
const options = {
  method: 'POST',
  url: 'https://api.unified.to/accounting/5de520f96e439b002043d8dc/salesorder',
  headers: {
    authorization: 'bearer .....'
  },
  data: undefined,
  params: {
    fields: '',
    raw: '',
  }
};

const results = await axios.request(options);
Are we missing anything? Let us know
Was this page helpful?