order_sfa


Changelog

March 07, 2025
  • POST method added a new object list_order_redeem_points_vouchers. The object is used to pass the customer number of points to be redeemed based on third party voucher and 365 loyalty schema defined.

POST /order_sfa

To create a new order based on selected store.

All total calculations are based on the settings of the selected store, specifically whether prices are set to include VAT or not.

If the selected store is working with price including vat the order type is a retail order, otherwise is a wholesale order

To create a new order WITH ZERO VALUES.


field type description
api_credentials
token string Credentials provided by Powersoft that allow access to the API
order
order_header
shopping_cart_code string The unique number of the order in your system
order_date_local datetime The local data time. This depends on the timezone. eg. Cyprus is in time zone UTC +2, but it also changes for daylight savings time
order_date_utc0 datetime This is the Coordinated Universal Time (UTC). ie at time zone +0
order_date_deliverby_utc0 datetime The date by which this order needs to be delivered in UTC0
agent_code_365 string The code of the agent in 365. Pass "" if none.
store_code_365 string 365 store code.
The settings of the selected store will determine whether the order is classified as retail or wholesale.
The field responsible for determining the order type is prices_include_vat from list_stores.
customer_code_365 string The code of the customer in 365.
user_code_365 string The user code. Not Required
customer_email string The email of the customer.
total_sub decimal The total amount of the entire order before vat, and before any discount
total_discount decimal The total discount amount applied to this order before additional discount at the end of the order, in case there is one. If there is no discount, pass 0.00
total_vat decimal The total vat amount of the entire order before additional discount at the end of the order
total_grand decimal The total that the buyer is charged for this order before additional discount at the end of the order.
The formula is: total_grand = total_sub - total_discount + total_vat
order_additional_discount_type string The discount type applied at the end of the order, if there is one. The accepted values are "amount" or "percentage". In case there is no discount at the end of the order pass empty string "" or do not pass this field. It is not required.
order_additional_discount_percentage decimal The additional discount percentage applied at the end of the order. The value must be between 0 and 100. If there is no additional discount at the end of the order you don't need to pass it. It is not required. If the discount applied is type amount the percentage value must be calculated as round(order_additional_discount_amount/total_grand * 100,2)
order_additional_discount_amount decimal The additional discount amount applied at the end of the order. The value must be less than total_grand. If there is no additional discount at the end of the order you don't need to pass it. It is not required. If the discount applied is type percentage the value must be calculated as round(total_grand*order_additional_discount_percentage/100,2)
order_total_value_after_additional_discount decimal The total the buyer is charged after the additional discount. If there is no additional discount at the end of the order you don't need to pass it. It is not required. order_total_value_after_additional_discount = total_grand - order_additional_discount_amount
comments string Any notes about the order, eg special requirements. Pass "" if none.
delivery_address_line_1 string The address line 1.eg. Street number and name.
delivery_address_line_2 string The address line 2. Pass "" if none.
delivery_address_line_3 string The address line 3. Pass "" if none.
delivery_postal_code string The postal code of the customer.
delivery_town string The town of the customer.
delivery_country_code_iso2 string The 2 digit ISO code of the country. eg CY for Cyprus.
delivery_country_name string The name of the country.
payment_term_code_365 string The payment term code in 365.
delivery_term_code_365 string The delivery term code in 365
is_export string Flags the order as export. Vat codes provided in the details must be the same with the vat code set for import/export in 365. Allowed values 'yes' or 'no'. Not required, if not provided the default value is 'no'.
is_euc string Flags the order as export to any country belong to EU. Allowed values 'yes' or 'no'. Not required, if not provided the default value is 'no'.
ignore_delivery_info boolean If the value is true no validation for shipping address is performed, otherwise it is a must the shipping address to be provided. For some connections the shipping address is not important and it is not necessary to be passed dummy values just to pass the validation. If is not provided in the request, the default value is false.
update_customer_address_info string It accepts only the values 'yes' or 'no'. If the value is 'yes' then the shipping address provided in the order will be saved as address information in the customer card. If is not provided in the request, the default value is 'yes'.
order_status_code_365 string The order status code in 365. Not required. If is not provided the default order status set by the user in 365 settings will be applied.
list_order_details
line_number int The position of this line in the order list. eg 1
item_code_365 string The code of the item in 365
line_quantity decimal The number of pieces of the item for this order line.
The quantity must be provided with the number of decimals as set for the field quantity_decimals in settings
line_price_incl_vat decimal The price including VAT of the item for this order line.
The value must be provided with the number of decimals as set for the field price_decimals in in settings.
The value is ignored if the order type is wholesale and is calculated based on the value of line_price_excl_vat and line_total_vat_percentage.
line_price_excl_vat decimal The price excluding VAT of the item for this order line.
The value must be provided with the number of decimals as set for the field price_decimals in in settings.
The value is ignored if the order type is retail and is calculated based on the value of line_price_incl_vat and line_total_vat_percentage.
line_total_sub decimal The total amount of this line of the order before vat, and before any discount. The formula is based on the order type.
Retail order: line_total_sub = round((it.line_price_incl_vat * it.line_quantity) / (1 + line_total_vat_percentage / 100),2).
Wholesale order: line_total_sub = round(it.line_price_excl_vat * it.line_quantity,2).
line_total_discount decimal The total discount amount of this line of the order. If there is no discount, pass 0.00.
The formula is: line_total_discount = round(line_total_sub * line_total_discount_percentage / 100,2).
line_total_discount_percentage decimal The total discount percentage of this line of the order. eg. If the discount is 10%, pass 10.00 If there is no discount, pass 0.00
line_vat_code_365 string The code of the vat in 365
line_total_vat decimal The total vat amount of this line of the order. The formula is based on the order type.
Retail order: line_total_vat = round(line_total_grand - (line_total_sub - line_total_discount),2).
Wholesale order: line_total_vat = round((line_total_sub - line_total_discount) * line_total_vat_percentage / 100,2).
line_total_vat_percentage decimal The total vat percentage of this line of the order. eg. If the vat is 19%, pass 19.00
line_total_grand decimal The total amount for this line of the order. The formula is based on the order type.
Retail order: line_total_grand = round(round(line_price_incl_vat * line_quantity,2)*(1 - line_total_discount_percentage / 100),2).
Wholesale order: line_total_grand = round(line_total_sub - line_total_discount + line_total_vat,2).
line_notes string Notes per line
is_subitem boolean Indicates if in the line is a subitem
root_line_number string Indicates the parent line id to which the subitem is linked
exclude_print boolean Indicates if the subitem is excluded from the invoice printing. The value is taken from the subitems information
list_invoice_payments
payment_number string Payment number on your side
payment_type_code_365 string 365 payment type code (e.g. CASH, JCC and so on)
payment_amount decimal Payment amount
payment_description string Payment description
payment_comments string Payment comments
number_of_points_redeemed integer Number of points to be redeemed. It is required if payment_type_code_365 has the value POINTS and a 365 loyalty schema is selected. A redeem points transaction will be created for the customer when the order is submitted.
loyalty_schema_code_365 string 365 Loyalty schema code. Use the call list_loyalty_schema to get them.
list_order_redeem_points_vouchers
voucher_number string Your voucher number used to redeem points. Required.
number_of_points_redeemed integer Number of points to be redeemed. Required.
loyalty_schema_code_365 string 365 Loyalty schema code. Use the call list_loyalty_schema to get them.
comments string Additional comments for the redeem points transaction.

Order with zero values can be created only if the application in 365 is configured to allow orders with zero totals.

If order is unpaid the list_order_payments must be passed as null value.

If there are not points to redeem based on your voucher and 365 loyalty schema the list_order_redeem_points_vouchers must be passed as null value. Before passing the list_order_redeem_points_vouchers it is recommended to check the customer balance points.


Returns

Returns the standard api_response object. The Powersoft365 code is returned in the response_id field.