Add Order sale.order.add
Scope:
saleWho can execute the method: administrator
The method sale.order.add is designed for adding an order.
Method Parameters
Required parameters are marked with *
|
Name |
Description |
|
fields* |
Field values for creating an order |
Parameter fields
Required parameters are marked with *
|
Name |
Description |
|
lid* |
Identifier of the site where this payer type will be used. Has a constant value 's1' |
|
personTypeId* |
Identifier of the payer type |
|
currency* |
Currency. The list of currencies can be obtained via the method crm.currency.list |
|
price |
Price |
|
discountValue |
Discount value |
|
statusId |
Identifier of the order status |
|
empStatusId |
Identifier of the user who changed the order status |
|
dateInsert |
Order creation date |
|
marked |
Marking flag. Indicates whether the shipment is marked as problematic. The value
Defaults to |
|
empMarkedId |
Identifier of the user who set the marking |
|
reasonMarked |
Reason for marking the order |
|
userDescription |
Customer's comment on the order |
|
additionalInfo |
Deprecated. Additional information |
|
comments |
Manager's comment on the order |
|
responsibleId |
Identifier of the user responsible for the order |
|
recurringId |
Identifier for subscription renewal |
|
lockedBy |
Relevant only for on-premise. Identifier of the user who locked the order. The order is locked in the admin panel when the user opens the detail form of the order |
|
recountFlag |
Deprecated. Recount flag.
Defaults to |
|
affiliateId |
Relevant only for on-premise. Identifier of the affiliate |
|
updated1c |
Updated via QuickBooks and other similar platforms.
Defaults to |
|
orderTopic |
Deprecated. Order topic |
|
xmlId |
External identifier |
|
id1c |
Identifier in QuickBooks and other similar platforms |
|
version1c |
Version in QuickBooks and other similar platforms |
|
externalOrder |
Whether the order is from an external system.
Defaults to |
|
canceled |
Whether the order was canceled.
Defaults to |
|
empCanceledId |
Identifier of the user who canceled the order |
|
reasonCanceled |
Reason for cancellation |
|
userId |
Identifier of the client |
Code Examples
How to Use Examples in Documentation
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"lid":"s1","personTypeId":1,"currency":"USD","price":100,"discountValue":10,"statusId":"N","empStatusId":1,"dateInsert":"2024-03-01T14:00:00","marked":"Y","empMarkedId":1,"reasonMarked":"","userDescription":"","additionalInfo":"","comments":"","companyId":1,"responsibleId":1,"recurringId":1,"lockedBy":1,"recountFlag":"N","affiliateId":1,"updated1c":"N","orderTopic":"","xmlId":"","id1c":"","version1c":"","externalOrder":"N","canceled":"Y","empCanceledId":1,"reasonCanceled":"","userId":1}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.order.add
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"lid":"s1","personTypeId":1,"currency":"USD","price":100,"discountValue":10,"statusId":"N","empStatusId":1,"dateInsert":"2024-03-01T14:00:00","marked":"Y","empMarkedId":1,"reasonMarked":"","userDescription":"","additionalInfo":"","comments":"","companyId":1,"responsibleId":1,"recurringId":1,"lockedBy":1,"recountFlag":"N","affiliateId":1,"updated1c":"N","orderTopic":"","xmlId":"","id1c":"","version1c":"","externalOrder":"N","canceled":"Y","empCanceledId":1,"reasonCanceled":"","userId":1},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.order.add
try
{
const response = await $b24.callMethod(
'sale.order.add',
{
fields: {
lid: 's1',
personTypeId: 1,
currency: 'USD',
price: 100,
discountValue: 10,
statusId: 'N',
empStatusId: 1,
dateInsert: '2024-03-01T14:00:00',
marked: 'Y',
empMarkedId: 1,
reasonMarked: '',
userDescription: '',
additionalInfo: '',
comments: '',
companyId: 1,
responsibleId: 1,
recurringId: 1,
lockedBy: 1,
recountFlag: 'N',
affiliateId: 1,
updated1c: 'N',
orderTopic: '',
xmlId: '',
id1c: '',
version1c: '',
externalOrder: 'N',
canceled: 'Y',
empCanceledId: 1,
reasonCanceled: '',
userId: 1,
}
}
);
const result = response.getData().result;
console.log(result);
}
catch(error)
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'sale.order.add',
[
'fields' => [
'lid' => 's1',
'personTypeId' => 1,
'currency' => 'USD',
'price' => 100,
'discountValue' => 10,
'statusId' => 'N',
'empStatusId' => 1,
'dateInsert' => '2024-03-01T14:00:00',
'marked' => 'Y',
'empMarkedId' => 1,
'reasonMarked' => '',
'userDescription' => '',
'additionalInfo' => '',
'comments' => '',
'companyId' => 1,
'responsibleId' => 1,
'recurringId' => 1,
'lockedBy' => 1,
'recountFlag' => 'N',
'affiliateId' => 1,
'updated1c' => 'N',
'orderTopic' => '',
'xmlId' => '',
'id1c' => '',
'version1c' => '',
'externalOrder' => 'N',
'canceled' => 'Y',
'empCanceledId' => 1,
'reasonCanceled' => '',
'userId' => 1,
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding order: ' . $e->getMessage();
}
BX24.callMethod(
'sale.order.add',
{
fields: {
lid: 's1',
personTypeId: 1,
currency: 'USD',
price: 100,
discountValue: 10,
statusId: 'N',
empStatusId: 1,
dateInsert: '2024-03-01T14:00:00',
marked: 'Y',
empMarkedId: 1,
reasonMarked: '',
userDescription: '',
additionalInfo: '',
comments: '',
companyId: 1,
responsibleId: 1,
recurringId: 1,
lockedBy: 1,
recountFlag: 'N',
affiliateId: 1,
updated1c: 'N',
orderTopic: '',
xmlId: '',
id1c: '',
version1c: '',
externalOrder: 'N',
canceled: 'Y',
empCanceledId: 1,
reasonCanceled: '',
userId: 1,
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'sale.order.add',
[
'fields' => [
'lid' => 's1',
'personTypeId' => 1,
'currency' => 'USD',
'price' => 100,
'discountValue' => 10,
'statusId' => 'N',
'empStatusId' => 1,
'dateInsert' => '2024-03-01T14:00:00',
'marked' => 'Y',
'empMarkedId' => 1,
'reasonMarked' => '',
'userDescription' => '',
'additionalInfo' => '',
'comments' => '',
'companyId' => 1,
'responsibleId' => 1,
'recurringId' => 1,
'lockedBy' => 1,
'recountFlag' => 'N',
'affiliateId' => 1,
'updated1c' => 'N',
'orderTopic' => '',
'xmlId' => '',
'id1c' => '',
'version1c' => '',
'externalOrder' => 'N',
'canceled' => 'Y',
'empCanceledId' => 1,
'reasonCanceled' => '',
'userId' => 1,
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Response Handling
HTTP Status: 200
{
"result": {
"order": {
"accountNumber": "455",
"additionalInfo": "",
"affiliateId": 1,
"canceled": "Y",
"clients": [],
"comments": "",
"companyId": 1,
"currency": "USD",
"dateCanceled": "2024-04-12T13:50:21+02:00",
"dateInsert": "2024-03-01T13:00:00+02:00",
"dateMarked": "2024-04-12T13:50:21+02:00",
"dateStatus": "2024-04-12T13:50:21+02:00",
"dateUpdate": "2024-04-12T13:50:21+02:00",
"deducted": "N",
"discountValue": 10,
"empCanceledId": 1,
"empMarkedId": 1,
"empStatusId": 1,
"externalOrder": "N",
"id": 299,
"id1c": "",
"lid": "s1",
"lockedBy": "1",
"marked": "Y",
"orderTopic": "",
"payed": "N",
"personTypeId": 1,
"personTypeXmlId": "",
"price": 100,
"reasonCanceled": "",
"reasonMarked": "",
"recountFlag": "N",
"recurringId": "1",
"requisiteLink": [],
"responsibleId": 1,
"statusId": "N",
"statusXmlId": "",
"updated1c": "N",
"userDescription": "",
"userId": 1,
"version1c": "",
"xmlId": ""
}
},
"time": {
"start": 1712922620.724857,
"finish": 1712922623.393783,
"duration": 2.6689260005950928,
"processing": 2.210068941116333,
"date_start": "2024-04-12T14:50:20+02:00",
"date_finish": "2024-04-12T14:50:23+02:00"
}
}
Returned Data
|
Name |
Description |
|
result |
Root element of the response |
|
order |
Object containing information about the added order |
|
time |
Information about the request execution time |
Error Handling
HTTP Status: 400
{
"error":200040300020,
"error_description":"Access Denied"
}
|
Name |
Description |
|
error |
String error code. It may consist of digits, Latin letters, and underscores |
|
error_description |
Textual description of the error. The description is not intended to be shown to the end user in its raw form |
Possible Error Codes
|
Code |
Description |
|
|
Insufficient permissions to add an order |
|
|
Parameter |
|
|
Required fields are not provided |
|
|
Other errors (e.g., fatal errors) |
Statuses and System Error Codes
HTTP Status: 20x, 40x, 50x
The errors described below may occur when calling any method.
|
Status |
Code |
Description |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
An internal server error has occurred, please contact the server administrator or Bitrix24 technical support |
|
|
|
The request intensity limit has been exceeded |
|
|
|
The current method is not allowed to be called using batch |
|
|
|
The maximum length of parameters passed to the batch method has been exceeded |
|
|
|
Invalid access token or webhook code |
|
|
|
The methods must be called using the HTTPS protocol |
|
|
|
The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support |
|
|
|
The REST API is available only on commercial plans |
|
|
|
The user whose access token or webhook was used to call the method lacks permissions |
|
|
|
The manifest is not available |
|
|
|
The request requires higher privileges than those provided by the webhook token |
|
|
|
The provided access token has expired |
|
|
|
The user does not have access to the application. This means that the application is installed, but the account administrator has allowed access to this application only for specific users |
|
|
|
The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site |
Continue Learning
- Update Order sale.order.update
- Get Order Field Values and Related Objects sale.order.get
- Get the list of orders sale.order.list
- Delete Order and Related Objects sale.order.delete
- Get Order Fields sale.order.getfields