Создание заказа

Метод позволяет создавать заказ с отложенным начислением баллов. Перед выполнением данного метода необходимо вызвать метод расчета скидок по чеку getTransactionParameters. Для выполнения данного запроса необходимо так же указывать заголовок с идентификатором магазина. При отправке не нулевого поля контрагента внешней системы counterparty происходит его обновление.

Запрос:

POST: https://api.bm-app.com/setClientOrder

Description

couponNumber: (string, optional) - номер купона/промокода
markDecrease: (number, required) - количество списываемых баллов
customerPhone: (string, required) - номер телефона клиента
orderDocumentId: (string, required) - идентификатор заказа (как правило UUID) во внешней системе, уникальный
orderDocumentNumber: (string, optional) - номер заказа во внешней системе
orderDocumentTimestamp: (string, optional) - время заказа во внешней системе

positions: (object, required) - массив позиций чека/заказа
externalUnitId: (string, required) - идентификатор позиции во внешней системе, как правило UUID
quantity: (number, required) - количество позиции чека
price: (number, required) - цена продажи без скидки 1 ед. измерения
externalDiscount: (number, required) - внешняя скидка на позицию, т.е. сумма скидки на 1 ед. измерения позиции
name: (string, required) - название позиции во внешней системе

counterparty: (object, optional) - контагент в сторонней системе ассоциированный с регистрируемым клиентом
externalId: (string, required) - уникальный идентификатор контагента в сторонней системе (как правило UUID)
externalCode: (string) - код контагента в сторонней системе (как правило удобно читаемый для человека)
name: (string) - имя контагента в сторонней системе
type: (string, required) - тип контрагента (individual - для физ. лица, legal - юр. лица)

Headers

BM-ApiKey: token
BM-StoreId: storeId
BM-CashBoxId: cashBoxId

Body

{
"positions": [
{
"unitId": 0,
"externalDiscount": 0,
"externalUnitId": "77dc81d7-d1ea-1154-a84b-dc71969d34534c",
"name": "Вода",
"quantity": 1,
"price": 50
}
],
"counterparty": {
"externalId": "uuid",
"externalCode": "1234",
"name": "Vasa",
"type": "individual"
},
"customerPhone": "+7 (921) 960-25-66",
"couponNumber": "123456",
"markDecrease": 0,
"orderDocumentId": "7a678f31-c0a3-4d54-8d6f-de1a5234534",
"orderDocumentNumber": "13",
"orderDocumentTimestamp":"2021-04-02 16:40:00"
}

Ответ:

При выполнении запросов возможно получение следующих ошибок:

  • HTTP Status 503 Превышено максимальное число запросов в секунду
  • HTTP Status 413 Превышен максимальный размер тела запроса
  • HTTP Status 401 API ключ не найден
  • HTTP Status 402 Система Bonus Money не оплачена или закончилось число транзакций предусмотренное тарифом
  • HTTP Status 400 Некорректный запрос, описание ошибки присылается в теле ответа в формате Json, доступное по ключу: message