{
"error": "error_brand_already_exists",
"localMessage": "Бренд Base уже существует",
"params": {
"name": "Base"
}
}Публичный API · Справочник API
Финансы
Платежи, счета, статьи расходов и расписания платежей.
Методы для работы с финансовой информацией.
/api/finance
Модель данных
Структуры данных
Поля объектов, которые используются в запросах и ответах этого раздела.
Account8 полей
accountIdinteger · int64Поле accountId.
namestringПоле name.
numberstringПоле number.
clientIdinteger · int64Поле clientId.
organizationIdinteger · int64Поле organizationId.
bankBankПоле bank.
accountNumberAccountПоле accountNumber.
accountNameAccountПоле accountName.
Address15 полей
idinteger · int32Поле id.
postCodestringПоле postCode.
countryCountryПоле country.
regionRegionПоле region.
regionIdinteger · int32Поле regionId.
streetstringПоле street.
housestringПоле house.
districtstringПоле district.
citystringПоле city.
localitystringПоле locality.
buildingstringПоле building.
flatstringПоле flat.
shortstringПоле short.
addressIdAddressПоле addressId.
fullstringПоле full.
Bank11 полей
bikstringПоле bik.
namestringПоле name.
addressstringПоле address.
isBankbooleanПоле isBank.
accountstringПоле account.
integrationstringПоле integration.
bankBikBankПоле bankBik.
bankNameBankПоле bankName.
bankAddressBankПоле bankAddress.
bankAccountBankПоле bankAccount.
bankIntegrationBankПоле bankIntegration.
Contractor15 полей
idinteger · int64Идентификатор контрагента. Проставляется автоматически
namestringНаименование контрагента
ОбязательноversionIdinteger · int64Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
clientIdinteger · int64Идентификатор клиента
read-onlycreatedUserstringЛогин пользователя, который создал контрагента
read-onlylastIncomeDatestring · date-timeДата последнего поступления для этого контрагента для сортировки
read-onlydeletedbooleanПризнак удаления контрагента
read-onlyorganizationIdinteger · int64Организация для реквизитов контрагента
legalAddressstringЮридический адрес для документов, заданный вручную
phoneNumberstringНомер телефона
emailstringАдрес электронной почты
contactNamestringИмя контакта
moySkladIdstringИдентификатор в сервисе МойСклад
urlstringСсылка на сайт
organizationOrganizationОрганизация для документов. Можно передать как сам объект, так и просто organizationId
read-onlyCountry6 полей
countryIdinteger · int32Идентификатор страны
namestringНазвание страны
code2stringДвухбуквенный код страны
code3stringТрехбуквенный код страны
namesobjectПоле names.
printNamestringПоле printName.
ExpenditureObject7 полей
expenditureIdinteger · int64Поле expenditureId.
namestringПоле name.
typestringПоле type.
clientIdinteger · int64Поле clientId.
isCommonbooleanПоле isCommon.
expenditureNameExpenditureObjectПоле expenditureName.
expenditureTypeExpenditureObjectПоле expenditureType.
Organization38 полей
idinteger · int64Идентификатор организации. Проставляется автоматически
read-onlynamestringПолное наименование организации
ОбязательноshortNamestringПоле shortName.
taxTypestringСистема налогооблажения
taxRateinteger · int32Ставка налога, если она отличается от стандартной
taxNdsinteger · int32Ставка налога, если она отличается от стандартной
inputTaxNdsinteger · int32Ставка входящего НДС
outputTaxNdsinteger · int32Ставка исходящего НДС
enableNewTaxCalculationbooleanВключить расчет налогов по новым правилам
useNdsCostPricebooleanУчитывать входящий НДС в себестоимости
innstringИНН
ОбязательноkppstringКПП. Проставляется только для ООО
bankstringНазвание банка
bikstringБИК счета организации
corrBillstringНомер корреспондентского счета
billNumberstringНомер счета организации
stampPathstringСсылка на изображение печати организации
read-onlystampUrlstringСсылка на изображение печати организации
read-onlystampSizeinteger · int32Размер в байтах изображения печати организации
read-onlystampWidthinteger · int32Ширина изображения печати организации
read-onlystampHeightinteger · int32Высота изображения печати организации
read-onlystampFileNamestringИмя исходного файла печати
read-onlysignaturePathstringФото подписи директора организации
read-onlysignatureUrlstringФото подписи директора организации
read-onlysignatureFileNamestringИмя исходного файла подписи
read-onlyfulfillmentContractSignerNamestringФИО подписанта со стороны фулфилмента
fulfillmentContractSignerPositionstringДолжность подписанта со стороны фулфилмента
signatureSizeinteger · int32Размер файла в байтах подписи директора организации
read-onlysignatureWidthinteger · int32Ширина изображения подписи директора
read-onlysignatureHeightinteger · int32Высота изображения подписи директора
read-onlyipPersonPersonРуководитель организации или ИП
formstringОрганизационно правовая форма
ОбязательноipbooleanПоле ip.
clientIdinteger · int64Идентификатор клиента
read-onlyaddressAddressАдресс организации
phoneNumberstringНомер телефона
addressFullstringПолный адрес
read-onlysamplebooleanВ реквизитах остались тестовые данные
read-onlyPerson14 полей
personIdinteger · int64Поле personId.
read-onlyfirstNamestringИмя сотрудника
ОбязательноlastNamestringФамилия сотрудника
ОбязательноsurNamestringОтчество сотрудника
clientIdinteger · int64Идентификатор клиента
read-onlypositionPersonPositionДолжность сотрудника
ОбязательноversionIdinteger · int64Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
read-onlycreatedUserstringПроставляется автоматически. Пользователь создавший сотрудника
read-onlycreatedDatestring · date-timeПроставляется автоматически. Дата создания сотрудника
read-onlydeletedbooleanПризнак удаления сотрудника
read-onlyuserIdinteger · int32Связь сотрудника с пользователем
read-onlyhasChangesbooleanПоле hasChanges.
fullNamestringПолные ФИО
read-onlyshortNamestringФамилия и инициалы
read-onlyPersonPosition7 полей
idinteger · int64Идентификатор должности. Проставляется автоматически
read-onlynamestringНазвание должности
ОбязательноdeletedbooleanПризнак удаления должности
read-onlyclientIdinteger · int64Идентификатор клиента
read-onlydefaultJobIdinteger · int64Работа по умолчанию для должности
createdUserstringПользователь, который создал должность
read-onlycreatedDatestring · date-timeДата создания должности
read-onlyRegion4 полей
regionIdinteger · int32Поле regionId.
countryIdinteger · int32Поле countryId.
namestringПоле name.
regionSynonymsRegionSynonym[]Поле regionSynonyms.
RegionSynonym4 полей
idinteger · int64Поле id.
regionIdinteger · int64Поле regionId.
synonymstringПоле synonym.
servicestringПоле service.
Transaction46 полей
transactionIdinteger · int64Поле transactionId.
invoiceIdinteger · int64Поле invoiceId.
customerOrganizationIdinteger · int64Поле customerOrganizationId.
clientIdinteger · int64Поле clientId.
expenditureIdinteger · int64идентификатор статьи расходов
expenditureExpenditureObjectПоле expenditure.
directionstringтип операции
scheduleIdinteger · int64идентификатор расписания
commentstringКомментарий
contractorIdinteger · int64Идентификатор контрагента(организации)
contractorContractorПоле contractor.
recipientKppinteger · int64КПП получателя
recipientInninteger · int64ИНН получателя
recipientAccountstringНомер лицевого счета получателя
recipientNamestringНименование получателя
payerKppinteger · int64КПП плательщика
payerInninteger · int64ИНН плательщика
payerAccountstringНомер лицевого счета плательщика
payerNamestringНименование плательщика
kbkstringКБК
recipientAgentBikinteger · int64БИК агента получателя
recipientAgentAccountstringСчет агента получателя
recipientAgentNamestringНименование агента получателя
payerAgentBikinteger · int64БИК агента плательщика
payerAgentAccountstringСчет агента плательщика
payerAgentNamestringНименование агента плательщика
accountCurrencystringВалюта счета
paymentAmountRubnumber · doubleСумма в рублях
paymentAmountnumber · doubleСумма в валюте счета
paymentPurposestringЦель платежа
paymentDocumentCodestringКод платежного документа
paymentDocumentNumberinteger · int64Номер платежного документа
datestring · date-timeДата документа
accountIdinteger · int64Идентификатор счета в бд
accountAccountПоле account.
organizationIdinteger · int64Поле organizationId.
deletedbooleanПризнак поставлена на удаление или нет транзакция
includeInPnlbooleanУчитывать транзакцию в отчете P&L
incomeIdinteger · int64Идентификатор закупки.
expenditureOperationTypestringТип транзакции
isSuppliersPurchaseTransactionbooleanИдентификатор, если true, то требуется заполнить транзакцию как, пришедшую от взаиморасчетов поставщиков.
productIdinteger · int64Идентификатор товара
productNamestringНазвание товара
productLinkChangedbooleanПризнак явного изменения связи платежа с товаром
articlestringАртикул товара
barcodestringШК товара
TransactionSchedule18 полей
scheduleIdinteger · int64Поле scheduleId.
directionstringПоле direction.
commentstringПоле comment.
accountIdinteger · int64Поле accountId.
accountAccountПоле account.
datestring · date-timeПоле date.
paymentAmountnumber · doubleПоле paymentAmount.
frequencystringПоле frequency.
contractorIdinteger · int64Поле contractorId.
expenditureIdinteger · int64Поле expenditureId.
expenditureExpenditureObjectПоле expenditure.
contractorContractorПоле contractor.
clientIdinteger · int64Поле clientId.
organizationIdinteger · int64Поле organizationId.
creatorstringПоле creator.
createdDatestring · date-timeПоле createdDate.
contractorInnstringПоле contractorInn.
includeInPnlbooleanПоле includeInPnl.
TransactionFilter17 полей
limitinteger · int32Ограничение на количество записей. Максимальное значение - 500
pageinteger · int32Номер страницы начиная с 1
countbooleanВозвратить в ответе общее количество записей
sortBystringПоле сортировки записей. Работает только при получении списка.
ascendingbooleanПорядок сортировки - по возрастанию?. Работает только при получении списка.
querystringПоисковый запрос для платежей
dateFromstring · date-timeФильтр по дате операции - от
dateTostring · date-timeФильтр по дате операции - до
organizationIdinteger · int64Идентификатор организации. (Теперь используем organizationIds)
organizationIdsinteger[]Идентификаторы организаций
servicesstring[]Идентификатор сервисов
directionstringИдентификатор расход/доход
incomeIdinteger · int64Идентификатор транзакции
contractorIdinteger · int64Идентификатор контрагента
timeZoneinteger · int32Часовой пояс клиента по UTC
showIncomesbooleanВключать взаиморасчеты с поставщиками
accountIdinteger · int64Поле accountId.
TransactionPnlRequest3 полей
includeInPnlbooleanУчитывать операции в отчете P&L
transactionIdsinteger[]Идентификаторы операций. Указывается вместо фильтра
filterTransactionFilterФильтр операций. Указывается вместо списка идентификаторов. Изменение применяется ко всем подходящим операциям, поля постраничной навигации и сортировки не учитываются
TmsTask25 полей
idinteger · int64Идентификатор задачи
read-onlystatusstringТекущий статус задачи
read-onlytypestringТип задачи
read-onlynamestringДанные задачи в json - могут быть пустыми
clientIdinteger · int64Поле clientId.
entityIdinteger · int64Сущность, к которой относится задача
progressinteger · int32Прогресс выполнения задачи в процентах
processedQuantityinteger · int32Количество обработанных записей задачи
organizationIdinteger · int64Организация задачи, может быть 0, если не зависит от организации
priorityinteger · int32Приоритет задачи - чем выше тем быстрее задача запустится
propertiesstringПараметры задачи
messagestringСообщение с результатом выполнения задачи
messageParamsstringПараметры сообщения с результатом выполнения задачи
createdDatestring · date-timeДата добавления задачи в очередь
startDatestring · date-timeДата запуска задачи
finishDatestring · date-timeДата завершения задачи
urlstringСсылка на скачивание файла с результатом задачи
inputFileUrlstringСсылка на загруженный файл
retryNumberinteger · int32Счётчик перезапуска задачи.
userIdinteger · int32Пользователь запустивший задачу
retryDatestring · date-timeЗапланированная дата перезапуска
debugbooleanЗапуск задачи в режиме отладки с большим логированием
forcedStartbooleanРучной запуск задачи
servicestringСервис в рамках которого выполняется задача
langstringЯзык на котором сейчас запущена таска
PeriodTransactionResponse5 полей
startDatestring · date-timeДата начала периода (в формате ISO 8601)
ОбязательноendDatestring · date-timeДата окончания периода (в формате ISO 8601)
ОбязательноtransactionsTransactionStructure[]Список транзакций за период
ОбязательноtotalCostnumber · doubleСуммарная стоимость всех транзакций за период
percentDiffnumber · doubleПроцентное изменение общей суммы (используется только для разницы)
TransactionStructure10 полей
idinteger · int32Поле id.
namestringПоле name.
costnumber · doubleПоле cost.
totalSalesnumber · doubleПоле totalSales.
percentnumber · doubleПоле percent.
absPercentnumber · doubleПоле absPercent.
costWithoutSppnumber · doubleПоле costWithoutSpp.
totalSalesWithoutSppnumber · doubleПоле totalSalesWithoutSpp.
percentWithoutSppnumber · doubleПоле percentWithoutSpp.
directionstringНаправление транзакции (доход или расход)
ОбязательноTransactionStructureResponse3 полей
currentPeriodPeriodTransactionResponseДанные за текущий период
ОбязательноpreviousPeriodPeriodTransactionResponseДанные за предыдущий период. Может быть null, если предыдущий период не запрошен
differencePeriodTransactionResponseРазница между текущим и предыдущим периодами. Может быть null, если предыдущий период не запрошен
FindResponseTransaction1 полей
rowsTransaction[]Строки с результатом поиска
TransactionSchedulerFilter6 полей
limitinteger · int32Ограничение на количество записей. Максимальное значение - 500
pageinteger · int32Номер страницы начиная с 1
countbooleanВозвратить в ответе общее количество записей
sortBystringПоле сортировки записей. Работает только при получении списка.
ascendingbooleanПорядок сортировки - по возрастанию?. Работает только при получении списка.
querystringПоле query.
FindResponseTransactionSchedule1 полей
rowsTransactionSchedule[]Строки с результатом поиска
AnalyticsRequest78 полей
periodstringПериод агрегации
dateFromstring · date-timeДата начала отчета
ОбязательноdateTostring · date-timeДата окончания отчета
Обязательноservicesstring[]Список маркетплейсов для которых отдать данные
categoriesinteger[]Фильтр категорий для которых отдать данные
brandsinteger[]Фильтр брендов для которых отдать данные
clientOrganizationIdinteger · int64Идентификатор организации, для которой отдать данные
organizationsinteger[]Идентификаторы организаций клиента
idsinteger[]Список идентификаторов
typestringТип заказа
typesstring[]Типы заказа
statusstringФильтр по статусу заказа
timeZoneinteger · int32Часовой пояс клиента по UTC
previousDateFromstring · date-timeДата начала периода для сравнения
clientOrganizationIdsinteger[]Идентификаторы организаций, для которых отдать данные
ignoreCreditbooleanНе учитывать кредит в прочих удержаниях
productAnalyticFieldstringАгрегировать данные по сущности
ОбязательноquerystringПоисковый запрос для фильтрации аналитики
withDuplicatebooleanОтдавать аналитику по дубликатам товаров
withBonusbooleanВычитать бонусы Ozon и Яндекс Маркета, а также СПП Wildberries из выручки и расходов
distributeUnallocatedExpensesbooleanРаспределять расходы без привязки к карточке пропорционально выручке
byOrgAndServicebooleanДля Excel финансового отчёта: true — колонки по паре организация + маркетплейс, false/null — агрегировать по организации как раньше
byCategorybooleanГруппировать финансовый отчёт по категории товара
byOrderTypebooleanРазбивать финансовый отчёт по типу заказа: отдельные строки для маркетплейсов, розницы и опта
limitinteger · int32Количество записей в ответе
pageinteger · int32Страница для навигации по страницам, начиная с 1
sortBystringПоле сортировки
ascendingbooleanСортировать по возрастанию по полю sortBy
idinteger · int64Поле id.
isMarketPlaceStructurebooleanИдентификатор, получать данные только по маркетплейсу или по всем.
isDashboardbooleanИдентификатор, запрос с дашборда или нет.
analyticsFieldstringАгрегировать данные по model/product/view
planDayCountinteger · int32Кол-во дней для отчетов
daysToSupplyinteger · int32Через сколько дней ожидается поставка
plannedSupplyDatestring · date-timeПланируемая дата поставки
groupByViewbooleanСгруппировать по цвету
warehousesinteger[]Список идентификаторов складов
salesModelsstring[]Модели продаж для отчёта экономики складов
aggregationstringУровень агрегации отчёта экономики складов
columnsFileExportColumn[]Настроенные пользователем колонки Excel
regionsstring[]Список регионов
groupbooleanСгруппировать данные
calculationByOrdersbooleanДелать расчет по заказанному количеству
ordersByCreatedDatebooleanСчитать заказы по дате создания, как в ленте заказов
sourceReportstringОперация по которой выводить данные
skipDayWithoutStocksbooleanПропускать дни без остатков
replaceSetsByComponentsbooleanРаскрывать комплекты по компонентам
distributeFbsByWarehousebooleanРаспределять FBS по складам пропорционально FBO
distributeFbsStockbooleanРаспределять остатки FBS между маркетплейсами/складами
ignoreDumpingbooleanИгнорировать слив товара (продажи по заниженной цене)
isSaleStructurebooleanИдентификатор, что нужно получить структуру по продажам
isAveragePerOneUnitbooleanИдентификатор, получить среднее за 1 единицу
updateDatebooleanОбновлять даты
useWeightedGroupbooleanИспользовать группы по весу
isFindirRequestbooleanЯвляется ли запрос - запросом для Задачника
brandIdsinteger[]Фильтр по идентификаторам брендов (список)
categoryIdsinteger[]Фильтр по идентификаторам категорий (список)
articlesstring[]Фильтр по артикулу (список)
colorsstring[]Фильтр по цвету (список)
sizesstring[]Фильтр по размеру (список)
barcodesstring[]Фильтр по штрих-коду (список)
tagIdsinteger[]Фильтр по идентификаторам тегов товаров (список)
penaltyFromnumber · doubleФильтр по штрафам (от)
penaltyTonumber · doubleФильтр по штрафам (до)
logisticsFromnumber · doubleФильтр по логистике (от)
logisticsTonumber · doubleФильтр по логистике (до)
marginFromnumber · doubleФильтр по маржинальности (от)
marginTonumber · doubleФильтр по маржинальности (до)
salesAmountFromnumber · doubleФильтр по сумме продаж (от)
salesAmountTonumber · doubleФильтр по сумме продаж (до)
totalSalesAmountFromnumber · doubleФильтр по выручке (от)
totalSalesAmountTonumber · doubleФильтр по выручке (до)
grossProfitFromnumber · doubleФильтр по валовой прибыли (от)
grossProfitTonumber · doubleФильтр по валовой прибыли (до)
taxNdsinteger · int32Налог ндс
useOsnobooleanТип налогообложения осно
ozonOnlybooleanПоле ozonOnly.
unmatchbooleanПоле unmatch.
FileExportColumn5 полей
idinteger · int64ID записи
fileExportIdinteger · int64ID конфигурации экспорта
columnNamestringНазвание столбца
columnOrderinteger · int32Порядок столбца в файле
isEnabledbooleanВключен ли столбец для экспорта
Ошибки
Обработка ошибок
При ошибке API возвращает её код в поле error и сообщение на языке пользователя в localMessage. Проверяйте код error в программе, а localMessage показывайте пользователю.
errorКод ошибки для обработки в программе.
localMessageСообщение на языке пользователя, которому принадлежит токен.
paramsЗначения, которые сервер подставил в сообщение об ошибке.
Язык localMessage определяется полем lang пользователя, которому принадлежит API-токен. Язык страницы документации и заголовок Accept-Language его не переключают; если язык пользователя не указан, используется русский.
{
"error": "error_brand_already_exists",
"localMessage": "Brand Base already exists",
"params": {
"name": "Base"
}
}Методы
Методы
Изменить платеж
/api/finance/transaction/{id}Изменить платеж.
Параметры пути
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Да | Поле id. |
Тело запроса
application/jsonПоля объектаTransaction
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionId |
integer · int64 | Нет | Поле transactionId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceId |
integer · int64 | Нет | Поле invoiceId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customerOrganizationId |
integer · int64 | Нет | Поле customerOrganizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditureId |
integer · int64 | Нет | идентификатор статьи расходов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditure |
ExpenditureObject | Нет | Поле expenditure. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
directionscheduleIdcommentcontractorIdcontractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
recipientKpprecipientInnrecipientAccountrecipientNamepayerKpppayerInnpayerAccountpayerNamekbkrecipientAgentBikrecipientAgentAccountrecipientAgentNamepayerAgentBikpayerAgentAccountpayerAgentNameaccountCurrencypaymentAmountRubpaymentAmountpaymentPurposepaymentDocumentCodepaymentDocumentNumberdateaccountIdaccount
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNameorganizationIddeletedincludeInPnlincomeIdexpenditureOperationTypeisSuppliersPurchaseTransactionproductIdproductNameproductLinkChangedarticlebarcodecurl --request PUT 'https://api.selsup.ru/api/finance/transaction/1001' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}'
const response = await fetch('https://api.selsup.ru/api/finance/transaction/1001', {
method: 'PUT',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction/1001', {
method: 'PUT',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.put(
'https://api.selsup.ru/api/finance/transaction/1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'transactionId': 1001,
'invoiceId': 1001,
'customerOrganizationId': 1001,
'clientId': 1001,
'expenditureId': 1001,
'expenditure': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction/1001',
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("PUT", "https://api.selsup.ru/api/finance/transaction/1001", strings.NewReader(`{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction/1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("PUT", HttpRequest.BodyPublishers.ofString("""
{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Transaction
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionId |
integer · int64 | Нет | Поле transactionId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceId |
integer · int64 | Нет | Поле invoiceId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customerOrganizationId |
integer · int64 | Нет | Поле customerOrganizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditureId |
integer · int64 | Нет | идентификатор статьи расходов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditure |
ExpenditureObject | Нет | Поле expenditure. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
directionscheduleIdcommentcontractorIdcontractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
recipientKpprecipientInnrecipientAccountrecipientNamepayerKpppayerInnpayerAccountpayerNamekbkrecipientAgentBikrecipientAgentAccountrecipientAgentNamepayerAgentBikpayerAgentAccountpayerAgentNameaccountCurrencypaymentAmountRubpaymentAmountpaymentPurposepaymentDocumentCodepaymentDocumentNumberdateaccountIdaccount
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNameorganizationIddeletedincludeInPnlincomeIdexpenditureOperationTypeisSuppliersPurchaseTransactionproductIdproductNameproductLinkChangedarticlebarcode{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}Ошибки21
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_cash_receipt_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cash_receipt_invalid; localMessage содержит приведённый выше перевод.
error_cash_receipt_lockedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cash_receipt_locked; localMessage содержит приведённый выше перевод.
error_comment_max_lengthПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_comment_max_length; localMessage содержит приведённый выше перевод.
error_contractor_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_contractor_not_found; localMessage содержит приведённый выше перевод.
error_date_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_date_not_found; localMessage содержит приведённый выше перевод.
error_empty_directionПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_direction; localMessage содержит приведённый выше перевод.
error_empty_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_sum; localMessage содержит приведённый выше перевод.
error_expenditure_type_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_expenditure_type_not_found; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_correct_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_correct_sum; localMessage содержит приведённый выше перевод.
error_no_correct_sum_rubПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_correct_sum_rub; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_product_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_product_not_found; localMessage содержит приведённый выше перевод.
error_transaction_id_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_transaction_id_not_found; localMessage содержит приведённый выше перевод.
error_user_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_not_found; localMessage содержит приведённый выше перевод.
error_wrong_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_sum; localMessage содержит приведённый выше перевод.
Изменить раписание платежа
/api/finance/updateScheduleИзменяет расписание платежей. Изменение не влияет на уже добавленные платежи этим расписанием
Тело запроса
application/jsonПоля объектаTransactionSchedule
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scheduleId |
integer · int64 | Нет | Поле scheduleId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
direction |
stringDEBIT, CREDIT | Нет | Поле direction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
comment |
string | Нет | Поле comment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account |
Account | Нет | Поле account. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNamedatepaymentAmountfrequencycontractorIdexpenditureIdexpenditure
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
contractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
clientIdorganizationIdcreatorcreatedDatecontractorInnincludeInPnlcurl --request POST 'https://api.selsup.ru/api/finance/updateSchedule' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}'
const response = await fetch('https://api.selsup.ru/api/finance/updateSchedule', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/updateSchedule', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/updateSchedule',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'scheduleId': 1001,
'direction': 'DEBIT',
'comment': 'string',
'accountId': 1001,
'account': 'string',
'date': '2026-01-15T12:00:00Z'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/updateSchedule',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/updateSchedule", strings.NewReader(`{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/updateSchedule"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TransactionSchedule
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scheduleId |
integer · int64 | Нет | Поле scheduleId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
direction |
stringDEBIT, CREDIT | Нет | Поле direction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
comment |
string | Нет | Поле comment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account |
Account | Нет | Поле account. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNamedatepaymentAmountfrequencycontractorIdexpenditureIdexpenditure
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
contractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
clientIdorganizationIdcreatorcreatedDatecontractorInnincludeInPnl{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}Ошибки14
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_comment_max_lengthПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_comment_max_length; localMessage содержит приведённый выше перевод.
error_empty_directionПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_direction; localMessage содержит приведённый выше перевод.
error_empty_expenditureПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_expenditure; localMessage содержит приведённый выше перевод.
error_empty_frequencyПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_frequency; localMessage содержит приведённый выше перевод.
error_empty_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_sum; localMessage содержит приведённый выше перевод.
error_empty_transaction_commentПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_transaction_comment; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_wrong_dateПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_date; localMessage содержит приведённый выше перевод.
error_wrong_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_sum; localMessage содержит приведённый выше перевод.
Изменить статью расходов
/api/finance/updateExpenditureПозволяет изменить статью расходов
Тело запроса
application/jsonПоля объектаExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
curl --request POST 'https://api.selsup.ru/api/finance/updateExpenditure' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}'
const response = await fetch('https://api.selsup.ru/api/finance/updateExpenditure', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/updateExpenditure', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/updateExpenditure',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'expenditureId': 1001,
'name': 'Example',
'type': 'DEBIT',
'clientId': 1001,
'isCommon': False,
'expenditureName': 'Example'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/updateExpenditure',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/updateExpenditure", strings.NewReader(`{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/updateExpenditure"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_directionПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_direction; localMessage содержит приведённый выше перевод.
error_empty_nameПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_name; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_not_uniq_expenditureПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_not_uniq_expenditure; localMessage содержит приведённый выше перевод.
Изменить счет
/api/finance/updateAccountИзменить счет.
Тело запроса
application/jsonПоля объектаAccount
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNamecurl --request POST 'https://api.selsup.ru/api/finance/updateAccount' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}'
const response = await fetch('https://api.selsup.ru/api/finance/updateAccount', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/updateAccount', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/updateAccount',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'accountId': 1001,
'name': 'Example',
'number': 'string',
'clientId': 1001,
'organizationId': 1001,
'bank': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/updateAccount',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/updateAccount", strings.NewReader(`{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/updateAccount"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountName{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}Ошибки9
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_account_nameПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_account_name; localMessage содержит приведённый выше перевод.
error_empty_account_numberПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_account_number; localMessage содержит приведённый выше перевод.
error_empty_bankПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_bank; localMessage содержит приведённый выше перевод.
error_empty_organizationПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_organization; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Добавить платеж
/api/finance/transactionДобавить платеж.
Тело запроса
application/jsonПоля объектаTransaction
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionId |
integer · int64 | Нет | Поле transactionId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceId |
integer · int64 | Нет | Поле invoiceId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customerOrganizationId |
integer · int64 | Нет | Поле customerOrganizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditureId |
integer · int64 | Нет | идентификатор статьи расходов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditure |
ExpenditureObject | Нет | Поле expenditure. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
directionscheduleIdcommentcontractorIdcontractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
recipientKpprecipientInnrecipientAccountrecipientNamepayerKpppayerInnpayerAccountpayerNamekbkrecipientAgentBikrecipientAgentAccountrecipientAgentNamepayerAgentBikpayerAgentAccountpayerAgentNameaccountCurrencypaymentAmountRubpaymentAmountpaymentPurposepaymentDocumentCodepaymentDocumentNumberdateaccountIdaccount
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNameorganizationIddeletedincludeInPnlincomeIdexpenditureOperationTypeisSuppliersPurchaseTransactionproductIdproductNameproductLinkChangedarticlebarcodecurl --request POST 'https://api.selsup.ru/api/finance/transaction' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}'
const response = await fetch('https://api.selsup.ru/api/finance/transaction', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/transaction',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'transactionId': 1001,
'invoiceId': 1001,
'customerOrganizationId': 1001,
'clientId': 1001,
'expenditureId': 1001,
'expenditure': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/transaction", strings.NewReader(`{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Transaction
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionId |
integer · int64 | Нет | Поле transactionId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceId |
integer · int64 | Нет | Поле invoiceId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customerOrganizationId |
integer · int64 | Нет | Поле customerOrganizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditureId |
integer · int64 | Нет | идентификатор статьи расходов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditure |
ExpenditureObject | Нет | Поле expenditure. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
directionscheduleIdcommentcontractorIdcontractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
recipientKpprecipientInnrecipientAccountrecipientNamepayerKpppayerInnpayerAccountpayerNamekbkrecipientAgentBikrecipientAgentAccountrecipientAgentNamepayerAgentBikpayerAgentAccountpayerAgentNameaccountCurrencypaymentAmountRubpaymentAmountpaymentPurposepaymentDocumentCodepaymentDocumentNumberdateaccountIdaccount
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNameorganizationIddeletedincludeInPnlincomeIdexpenditureOperationTypeisSuppliersPurchaseTransactionproductIdproductNameproductLinkChangedarticlebarcode{
"transactionId": 1001,
"invoiceId": 1001,
"customerOrganizationId": 1001,
"clientId": 1001,
"expenditureId": 1001,
"expenditure": "string"
}Ошибки20
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_cash_receipt_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cash_receipt_invalid; localMessage содержит приведённый выше перевод.
error_cash_receipt_save_failedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cash_receipt_save_failed; localMessage содержит приведённый выше перевод.
error_comment_max_lengthПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_comment_max_length; localMessage содержит приведённый выше перевод.
error_contractor_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_contractor_not_found; localMessage содержит приведённый выше перевод.
error_date_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_date_not_found; localMessage содержит приведённый выше перевод.
error_empty_directionПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_direction; localMessage содержит приведённый выше перевод.
error_empty_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_sum; localMessage содержит приведённый выше перевод.
error_expenditure_type_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_expenditure_type_not_found; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_correct_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_correct_sum; localMessage содержит приведённый выше перевод.
error_no_correct_sum_rubПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_correct_sum_rub; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_product_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_product_not_found; localMessage содержит приведённый выше перевод.
error_user_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_not_found; localMessage содержит приведённый выше перевод.
error_wrong_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_sum; localMessage содержит приведённый выше перевод.
Удалить платежи
/api/finance/transactionУдалить платежи.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer[] | Да | Поле id. |
curl --request DELETE 'https://api.selsup.ru/api/finance/transaction?id=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/transaction?id=1001', {
method: 'DELETE',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction?id=1001', {
method: 'DELETE',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
import os
import requests
response = requests.delete(
'https://api.selsup.ru/api/finance/transaction?id=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction?id=1001',
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("DELETE", "https://api.selsup.ru/api/finance/transaction?id=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction?id=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("DELETE", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200Тело ответа пустое.
Ошибки12
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_cash_receipt_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cash_receipt_invalid; localMessage содержит приведённый выше перевод.
error_cash_receipt_lockedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cash_receipt_locked; localMessage содержит приведённый выше перевод.
error_contractor_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_contractor_not_found; localMessage содержит приведённый выше перевод.
error_date_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_date_not_found; localMessage содержит приведённый выше перевод.
error_expenditure_type_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_expenditure_type_not_found; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_user_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_not_found; localMessage содержит приведённый выше перевод.
Массовое изменение учета платежей в P&L
/api/finance/transaction/pnlМеняет признак учета в отчете P&L у выбранных платежей или у всех платежей, подходящих под фильтр. Возвращает количество измененных платежей.
Тело запроса
application/jsonПоля объектаTransactionPnlRequest
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
includeInPnl |
boolean | Нет | Учитывать операции в отчете P&L | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
transactionIds |
integer[] | Нет | Идентификаторы операций. Указывается вместо фильтра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filter |
TransactionFilter | Нет | Фильтр операций. Указывается вместо списка идентификаторов. Изменение применяется ко всем подходящим операциям, поля постраничной навигации и сортировки не учитываются | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
string | Нет | Поле сортировки записей. Работает только при получении списка. |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
query |
string | Нет | Поисковый запрос для платежей |
dateFrom |
string · date-time | Нет | Фильтр по дате операции - от |
dateTo |
string · date-time | Нет | Фильтр по дате операции - до |
organizationId |
integer · int64 | Нет | Идентификатор организации. (Теперь используем organizationIds) |
organizationIds |
integer[] | Нет | Идентификаторы организаций |
services |
string[] | Нет | Идентификатор сервисов |
direction |
stringDEBIT, CREDIT | Нет | Идентификатор расход/доход |
incomeId |
integer · int64 | Нет | Идентификатор транзакции |
contractorId |
integer · int64 | Нет | Идентификатор контрагента |
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC |
showIncomes |
boolean | Нет | Включать взаиморасчеты с поставщиками |
accountId |
integer · int64 | Нет | Поле accountId. |
curl --request POST 'https://api.selsup.ru/api/finance/transaction/pnl' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"includeInPnl": false,
"transactionIds": "string",
"filter": "string"
}'
const response = await fetch('https://api.selsup.ru/api/finance/transaction/pnl', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"includeInPnl": false,
"transactionIds": "string",
"filter": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction/pnl', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"includeInPnl": false,
"transactionIds": "string",
"filter": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/transaction/pnl',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'includeInPnl': False,
'transactionIds': 'string',
'filter': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"includeInPnl": false,
"transactionIds": "string",
"filter": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction/pnl',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/transaction/pnl", strings.NewReader(`{
"includeInPnl": false,
"transactionIds": "string",
"filter": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction/pnl"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"includeInPnl": false,
"transactionIds": "string",
"filter": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
2001Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_include_in_pnlПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_include_in_pnl; localMessage содержит приведённый выше перевод.
error_empty_transaction_filterПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_transaction_filter; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Удалить расписание платежей
/api/finance/removeScheduleПозволяет удалить расписание платежей. Удаление не влияет на уже добавленные платежи этим расписанием
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
scheduleId |
integer · int64 | Да | Поле scheduleId. |
curl --request POST 'https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const response: Response = await fetch('https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/removeSchedule?scheduleId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200Тело ответа пустое.
Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Удалить статью расходов
/api/finance/removeExpenditureПозволяет удалить свою статью расходов
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Да | Поле expenditureId. |
curl --request POST 'https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const response: Response = await fetch('https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/removeExpenditure?expenditureId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200Тело ответа пустое.
Ошибки7
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_can`t_remove_object_of_expenditureПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_can`t_remove_object_of_expenditure; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_expenditure_not_has_been_removeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_expenditure_not_has_been_remove; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Удалить счет
/api/finance/removeAccountУдалить счет.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
accountId |
integer · int64 | Да | Поле accountId. |
curl --request POST 'https://api.selsup.ru/api/finance/removeAccount?accountId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/removeAccount?accountId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const response: Response = await fetch('https://api.selsup.ru/api/finance/removeAccount?accountId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/removeAccount?accountId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/removeAccount?accountId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/removeAccount?accountId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/removeAccount?accountId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200Тело ответа пустое.
Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Импорт транзакий из банков клиента по указанным счетам
/api/finance/importTransactionsИмпорт транзакий из банков клиента по указанным счетам.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
accountId |
integer · int64 | Да | Поле accountId. |
startDate |
string | Нет | Поле startDate. |
curl --request POST 'https://api.selsup.ru/api/finance/importTransactions?accountId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/importTransactions?accountId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/importTransactions?accountId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/importTransactions?accountId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/importTransactions?accountId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/importTransactions?accountId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/importTransactions?accountId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Импорт платежей из Excel файл
/api/finance/importTransactionFromExcelFileМетод ставит задачу по импорту платежей из Excel файла.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
clientOrganizationId |
integer · int64 | Да | Поле clientOrganizationId. |
Тело запроса
multipart/form-data| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
file |
string · binary | Да | Поле file. |
curl --request POST 'https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN' \
--form 'file=@./file.bin'
const form = new FormData();
form.append('file', fileInput.files[0]);
const response = await fetch('https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
body: form,
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const form: FormData = new FormData();
form.append('file', fileInput.files![0]);
const response: Response = await fetch('https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
body: form,
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
files={'file': open('./logo.png', 'rb')},
)
response.raise_for_status()
result = response.json()
<?php
$payload = ['file' => new CURLFile('./logo.png')];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
"path/filepath"
)
func main() {
var body bytes.Buffer
writer := multipart.NewWriter(&body)
file, err := os.Open("./logo.png")
if err != nil { panic(err) }
defer file.Close()
part, err := writer.CreateFormFile("file", filepath.Base(file.Name()))
if err != nil { panic(err) }
if _, err = io.Copy(part, file); err != nil { panic(err) }
writer.Close()
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001", &body)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", writer.FormDataContentType())
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class SelSupExample {
public static void main(String[] args) throws Exception {
String boundary = "SelSupBoundary" + System.currentTimeMillis();
byte[] file = Files.readAllBytes(Path.of("./logo.png"));
byte[] head = ("--" + boundary + "\r\n" +
"Content-Disposition: form-data; name=\"file\"; filename=\"logo.png\"\r\n" +
"Content-Type: image/png\r\n\r\n").getBytes(StandardCharsets.UTF_8);
byte[] tail = ("\r\n--" + boundary + "--\r\n").getBytes(StandardCharsets.UTF_8);
byte[] payload = new byte[head.length + file.length + tail.length];
System.arraycopy(head, 0, payload, 0, head.length);
System.arraycopy(file, 0, payload, head.length, file.length);
System.arraycopy(tail, 0, payload, head.length + file.length, tail.length);
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/importTransactionFromExcelFile?clientOrganizationId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.method("POST", HttpRequest.BodyPublishers.ofByteArray(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки7
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_file_is_emptyПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_file_is_empty; localMessage содержит приведённый выше перевод.
error_max_upload_size_exceededПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_max_upload_size_exceeded; localMessage содержит приведённый выше перевод.
error_wrong_excelПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_excel; localMessage содержит приведённый выше перевод.
Получить счета в банках
/api/finance/getAccountListПозволяет получить список всех счетов в банках
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bank |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Да | Поле bank. |
curl --request POST 'https://api.selsup.ru/api/finance/getAccountList?bank=SBER' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/getAccountList?bank=SBER', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/getAccountList?bank=SBER', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/getAccountList?bank=SBER',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/getAccountList?bank=SBER',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/getAccountList?bank=SBER", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/getAccountList?bank=SBER"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Структура элемента массива
Account[]
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountName[
"string"
]Ошибки13
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_bank_integrationПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_bank_integration; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_remote_errorПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_remote_error; localMessage содержит приведённый выше перевод.
error_sberbank_apiПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_sberbank_api; localMessage содержит приведённый выше перевод.
error_service_not_supportedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_service_not_supported; localMessage содержит приведённый выше перевод.
error_tbankПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_tbank; localMessage содержит приведённый выше перевод.
error_tbank_requestПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_tbank_request; localMessage содержит приведённый выше перевод.
error_tochka_requestПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_tochka_request; localMessage содержит приведённый выше перевод.
error_token_expired_or_revokedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_token_expired_or_revoked; localMessage содержит приведённый выше перевод.
Добавить раписание платежей
/api/finance/addScheduleДобавляет регулярные платежи, которые добавляются по расписанию
Тело запроса
application/jsonПоля объектаTransactionSchedule
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scheduleId |
integer · int64 | Нет | Поле scheduleId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
direction |
stringDEBIT, CREDIT | Нет | Поле direction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
comment |
string | Нет | Поле comment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account |
Account | Нет | Поле account. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNamedatepaymentAmountfrequencycontractorIdexpenditureIdexpenditure
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
contractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
clientIdorganizationIdcreatorcreatedDatecontractorInnincludeInPnlcurl --request POST 'https://api.selsup.ru/api/finance/addSchedule' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}'
const response = await fetch('https://api.selsup.ru/api/finance/addSchedule', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/addSchedule', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/addSchedule',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'scheduleId': 1001,
'direction': 'DEBIT',
'comment': 'string',
'accountId': 1001,
'account': 'string',
'date': '2026-01-15T12:00:00Z'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/addSchedule',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/addSchedule", strings.NewReader(`{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/addSchedule"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TransactionSchedule
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scheduleId |
integer · int64 | Нет | Поле scheduleId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
direction |
stringDEBIT, CREDIT | Нет | Поле direction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
comment |
string | Нет | Поле comment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account |
Account | Нет | Поле account. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNamedatepaymentAmountfrequencycontractorIdexpenditureIdexpenditure
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
contractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Да | Наименование контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Идентификатор клиента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdUser |
string | Нет | Логин пользователя, который создал контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deleted |
boolean | Нет | Признак удаления контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber |
string | Нет | Номер телефона | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email |
string | Нет | Адрес электронной почты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contactName |
string | Нет | Имя контакта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url |
string | Нет | Ссылка на сайт | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор организации. Проставляется автоматически |
name |
string | Да | Полное наименование организации |
shortName |
string | Нет | Поле shortName. |
taxType |
stringYSN, YSN_CONSUMPTION, AUSN, AUSN_CONSUMPTION, OSNO, SELF_EMPLOYED, YSN_GENERAL | Нет | Система налогооблажения |
taxRate |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
taxNds |
integer · int32 | Нет | Ставка налога, если она отличается от стандартной |
inputTaxNds |
integer · int32 | Нет | Ставка входящего НДС |
outputTaxNds |
integer · int32 | Нет | Ставка исходящего НДС |
enableNewTaxCalculation |
boolean | Нет | Включить расчет налогов по новым правилам |
useNdsCostPrice |
boolean | Нет | Учитывать входящий НДС в себестоимости |
inn |
string | Да | ИНН |
kpp |
string | Нет | КПП. Проставляется только для ООО |
bank |
string | Нет | Название банка |
bik |
string | Нет | БИК счета организации |
corrBill |
string | Нет | Номер корреспондентского счета |
billNumber |
string | Нет | Номер счета организации |
stampPath |
string | Нет | Ссылка на изображение печати организации |
stampUrl |
string | Нет | Ссылка на изображение печати организации |
stampSize |
integer · int32 | Нет | Размер в байтах изображения печати организации |
stampWidth |
integer · int32 | Нет | Ширина изображения печати организации |
stampHeight |
integer · int32 | Нет | Высота изображения печати организации |
stampFileName |
string | Нет | Имя исходного файла печати |
signaturePath |
string | Нет | Фото подписи директора организации |
signatureUrl |
string | Нет | Фото подписи директора организации |
signatureFileName |
string | Нет | Имя исходного файла подписи |
fulfillmentContractSignerName |
string | Нет | ФИО подписанта со стороны фулфилмента |
fulfillmentContractSignerPosition |
string | Нет | Должность подписанта со стороны фулфилмента |
signatureSize |
integer · int32 | Нет | Размер файла в байтах подписи директора организации |
signatureWidth |
integer · int32 | Нет | Ширина изображения подписи директора |
signatureHeight |
integer · int32 | Нет | Высота изображения подписи директора |
ipPerson |
Person | Нет | Руководитель организации или ИП |
form |
stringOOO, IP, SELF_EMPLOYED | Да | Организационно правовая форма |
ip |
boolean | Нет | Поле ip. |
clientId |
integer · int64 | Нет | Идентификатор клиента |
address |
Address | Нет | Адресс организации |
phoneNumber |
string | Нет | Номер телефона |
addressFull |
string | Нет | Полный адрес |
sample |
boolean | Нет | В реквизитах остались тестовые данные |
clientIdorganizationIdcreatorcreatedDatecontractorInnincludeInPnl{
"scheduleId": 1001,
"direction": "DEBIT",
"comment": "string",
"accountId": 1001,
"account": "string",
"date": "2026-01-15T12:00:00Z"
}Ошибки17
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_comment_max_lengthПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_comment_max_length; localMessage содержит приведённый выше перевод.
error_empty_directionПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_direction; localMessage содержит приведённый выше перевод.
error_empty_expenditureПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_expenditure; localMessage содержит приведённый выше перевод.
error_empty_frequencyПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_frequency; localMessage содержит приведённый выше перевод.
error_empty_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_sum; localMessage содержит приведённый выше перевод.
error_empty_transaction_commentПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_transaction_comment; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_correct_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_correct_sum; localMessage содержит приведённый выше перевод.
error_no_correct_sum_rubПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_correct_sum_rub; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_wrong_dateПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_date; localMessage содержит приведённый выше перевод.
error_wrong_sumПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_sum; localMessage содержит приведённый выше перевод.
Добавить статью расходов
/api/finance/addExpenditureПозволяет добавить свою статью расходов
Тело запроса
application/jsonПоля объектаExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
curl --request POST 'https://api.selsup.ru/api/finance/addExpenditure' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}'
const response = await fetch('https://api.selsup.ru/api/finance/addExpenditure', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/addExpenditure', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/addExpenditure',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'expenditureId': 1001,
'name': 'Example',
'type': 'DEBIT',
'clientId': 1001,
'isCommon': False,
'expenditureName': 'Example'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/addExpenditure',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/addExpenditure", strings.NewReader(`{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/addExpenditure"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
{
"expenditureId": 1001,
"name": "Example",
"type": "DEBIT",
"clientId": 1001,
"isCommon": false,
"expenditureName": "Example"
}Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_directionПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_direction; localMessage содержит приведённый выше перевод.
error_empty_nameПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_name; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_not_uniq_expenditureПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_not_uniq_expenditure; localMessage содержит приведённый выше перевод.
Добавить счет
/api/finance/addAccountДобавить счет.
Тело запроса
application/jsonПоля объектаAccount
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountNamecurl --request POST 'https://api.selsup.ru/api/finance/addAccount' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}'
const response = await fetch('https://api.selsup.ru/api/finance/addAccount', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/addAccount', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/finance/addAccount',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'accountId': 1001,
'name': 'Example',
'number': 'string',
'clientId': 1001,
'organizationId': 1001,
'bank': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/addAccount',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/finance/addAccount", strings.NewReader(`{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/addAccount"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountName{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}Ошибки10
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_account_nameПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_account_name; localMessage содержит приведённый выше перевод.
error_empty_account_numberПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_account_number; localMessage содержит приведённый выше перевод.
error_empty_bankПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_bank; localMessage содержит приведённый выше перевод.
error_empty_organizationПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_organization; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
Скачивание шаблона Excel файла для импорта платежей
/api/finance/transaction/templateМетод возвращает шаблон Excel файла, необходимый для импорта платежей.
curl --request GET 'https://api.selsup.ru/api/finance/transaction/template' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/transaction/template', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction/template', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/transaction/template',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction/template',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/transaction/template", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction/template"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Структура платежей за текущий и предыдущий периоды
/api/finance/transaction/structureВозвращает список платежей за текущий и (опционально) предыдущий периоды по фильтру
Параметры запроса
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filter |
TransactionFilter | Да | Поле filter. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
string | Нет | Поле сортировки записей. Работает только при получении списка. |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
query |
string | Нет | Поисковый запрос для платежей |
dateFrom |
string · date-time | Нет | Фильтр по дате операции - от |
dateTo |
string · date-time | Нет | Фильтр по дате операции - до |
organizationId |
integer · int64 | Нет | Идентификатор организации. (Теперь используем organizationIds) |
organizationIds |
integer[] | Нет | Идентификаторы организаций |
services |
string[] | Нет | Идентификатор сервисов |
direction |
stringDEBIT, CREDIT | Нет | Идентификатор расход/доход |
incomeId |
integer · int64 | Нет | Идентификатор транзакции |
contractorId |
integer · int64 | Нет | Идентификатор контрагента |
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC |
showIncomes |
boolean | Нет | Включать взаиморасчеты с поставщиками |
accountId |
integer · int64 | Нет | Поле accountId. |
includePreviousPeriodПо умолчанию: falsecurl --request GET 'https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction/structure?filter=%5Bobject+Object%5D"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TransactionStructureResponse
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
currentPeriod |
PeriodTransactionResponse | Да | Данные за текущий период | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
startDate |
string · date-time | Да | Дата начала периода (в формате ISO 8601) | ||||||||||||||||||||||||||||||||||||||||||||
endDate |
string · date-time | Да | Дата окончания периода (в формате ISO 8601) | ||||||||||||||||||||||||||||||||||||||||||||
transactions |
TransactionStructure[] | Да | Список транзакций за период | ||||||||||||||||||||||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int32 | Нет | Поле id. |
name |
string | Нет | Поле name. |
cost |
number · double | Нет | Поле cost. |
totalSales |
number · double | Нет | Поле totalSales. |
percent |
number · double | Нет | Поле percent. |
absPercent |
number · double | Нет | Поле absPercent. |
costWithoutSpp |
number · double | Нет | Поле costWithoutSpp. |
totalSalesWithoutSpp |
number · double | Нет | Поле totalSalesWithoutSpp. |
percentWithoutSpp |
number · double | Нет | Поле percentWithoutSpp. |
direction |
stringDEBIT, CREDIT | Да | Направление транзакции (доход или расход) |
totalCostpercentDiffpreviousPeriod
Поля объекта
PeriodTransactionResponse
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
startDate |
string · date-time | Да | Дата начала периода (в формате ISO 8601) | ||||||||||||||||||||||||||||||||||||||||||||
endDate |
string · date-time | Да | Дата окончания периода (в формате ISO 8601) | ||||||||||||||||||||||||||||||||||||||||||||
transactions |
TransactionStructure[] | Да | Список транзакций за период | ||||||||||||||||||||||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int32 | Нет | Поле id. |
name |
string | Нет | Поле name. |
cost |
number · double | Нет | Поле cost. |
totalSales |
number · double | Нет | Поле totalSales. |
percent |
number · double | Нет | Поле percent. |
absPercent |
number · double | Нет | Поле absPercent. |
costWithoutSpp |
number · double | Нет | Поле costWithoutSpp. |
totalSalesWithoutSpp |
number · double | Нет | Поле totalSalesWithoutSpp. |
percentWithoutSpp |
number · double | Нет | Поле percentWithoutSpp. |
direction |
stringDEBIT, CREDIT | Да | Направление транзакции (доход или расход) |
totalCostpercentDiffdifference
Поля объекта
PeriodTransactionResponse
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
startDate |
string · date-time | Да | Дата начала периода (в формате ISO 8601) | ||||||||||||||||||||||||||||||||||||||||||||
endDate |
string · date-time | Да | Дата окончания периода (в формате ISO 8601) | ||||||||||||||||||||||||||||||||||||||||||||
transactions |
TransactionStructure[] | Да | Список транзакций за период | ||||||||||||||||||||||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int32 | Нет | Поле id. |
name |
string | Нет | Поле name. |
cost |
number · double | Нет | Поле cost. |
totalSales |
number · double | Нет | Поле totalSales. |
percent |
number · double | Нет | Поле percent. |
absPercent |
number · double | Нет | Поле absPercent. |
costWithoutSpp |
number · double | Нет | Поле costWithoutSpp. |
totalSalesWithoutSpp |
number · double | Нет | Поле totalSalesWithoutSpp. |
percentWithoutSpp |
number · double | Нет | Поле percentWithoutSpp. |
direction |
stringDEBIT, CREDIT | Да | Направление транзакции (доход или расход) |
totalCostpercentDiff{
"currentPeriod": "string",
"previousPeriod": "string",
"difference": "string"
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Поиск платежей
/api/finance/transaction/findВозвращает список платежей по фильтру
Параметры запроса
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filter |
TransactionFilter | Да | Поле filter. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
string | Нет | Поле сортировки записей. Работает только при получении списка. |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
query |
string | Нет | Поисковый запрос для платежей |
dateFrom |
string · date-time | Нет | Фильтр по дате операции - от |
dateTo |
string · date-time | Нет | Фильтр по дате операции - до |
organizationId |
integer · int64 | Нет | Идентификатор организации. (Теперь используем organizationIds) |
organizationIds |
integer[] | Нет | Идентификаторы организаций |
services |
string[] | Нет | Идентификатор сервисов |
direction |
stringDEBIT, CREDIT | Нет | Идентификатор расход/доход |
incomeId |
integer · int64 | Нет | Идентификатор транзакции |
contractorId |
integer · int64 | Нет | Идентификатор контрагента |
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC |
showIncomes |
boolean | Нет | Включать взаиморасчеты с поставщиками |
accountId |
integer · int64 | Нет | Поле accountId. |
curl --request GET 'https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/transaction/find?filter=%5Bobject+Object%5D"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
FindResponseTransaction
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rows |
Transaction[] | Нет | Строки с результатом поиска | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transactionId |
integer · int64 | Нет | Поле transactionId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceId |
integer · int64 | Нет | Поле invoiceId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customerOrganizationId |
integer · int64 | Нет | Поле customerOrganizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditureId |
integer · int64 | Нет | идентификатор статьи расходов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenditure |
ExpenditureObject | Нет | Поле expenditure. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
directionscheduleIdcommentcontractorIdcontractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически |
name |
string | Да | Наименование контрагента |
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи |
clientId |
integer · int64 | Нет | Идентификатор клиента |
createdUser |
string | Нет | Логин пользователя, который создал контрагента |
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки |
deleted |
boolean | Нет | Признак удаления контрагента |
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента |
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную |
phoneNumber |
string | Нет | Номер телефона |
email |
string | Нет | Адрес электронной почты |
contactName |
string | Нет | Имя контакта |
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад |
url |
string | Нет | Ссылка на сайт |
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId |
recipientKpprecipientInnrecipientAccountrecipientNamepayerKpppayerInnpayerAccountpayerNamekbkrecipientAgentBikrecipientAgentAccountrecipientAgentNamepayerAgentBikpayerAgentAccountpayerAgentNameaccountCurrencypaymentAmountRubpaymentAmountpaymentPurposepaymentDocumentCodepaymentDocumentNumberdateaccountIdaccount
Поля объекта
Account
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. |
name |
string | Нет | Поле name. |
number |
string | Нет | Поле number. |
clientId |
integer · int64 | Нет | Поле clientId. |
organizationId |
integer · int64 | Нет | Поле organizationId. |
bank |
Bank | Нет | Поле bank. |
accountNumber |
Account | Нет | Поле accountNumber. |
accountName |
Account | Нет | Поле accountName. |
organizationIddeletedincludeInPnlincomeIdexpenditureOperationTypeisSuppliersPurchaseTransactionproductIdproductNameproductLinkChangedarticlebarcode{
"rows": "string"
}Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_max_pageПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_max_page; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_user_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_not_found; localMessage содержит приведённый выше перевод.
Структура платежей
/api/finance/getTransactionStructureByDirectionВозвращает список платежей по фильтру
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
query |
string | Нет | Поисковый запрос для платежей |
dateFrom |
string · date-time | Нет | Фильтр по дате операции - от |
dateTo |
string · date-time | Нет | Фильтр по дате операции - до |
organizationId |
integer · int64 | Нет | Идентификатор организации. (Теперь используем organizationIds) |
organizationIds |
integer[] | Нет | Идентификаторы организаций |
services |
string[] | Нет | Идентификатор сервисов |
direction |
stringDEBIT, CREDIT | Нет | Идентификатор расход/доход |
incomeId |
integer · int64 | Нет | Идентификатор транзакции |
contractorId |
integer · int64 | Нет | Идентификатор контрагента |
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC |
showIncomes |
boolean | Нет | Включать взаиморасчеты с поставщиками |
accountId |
integer · int64 | Нет | Поле accountId. |
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
string | Нет | Поле сортировки записей. Работает только при получении списка. |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
curl --request GET 'https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/getTransactionStructureByDirection?limit=50&page=1"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Структура элемента массива
TransactionStructure[]
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int32 | Нет | Поле id. |
name |
string | Нет | Поле name. |
cost |
number · double | Нет | Поле cost. |
totalSales |
number · double | Нет | Поле totalSales. |
percent |
number · double | Нет | Поле percent. |
absPercent |
number · double | Нет | Поле absPercent. |
costWithoutSpp |
number · double | Нет | Поле costWithoutSpp. |
totalSalesWithoutSpp |
number · double | Нет | Поле totalSalesWithoutSpp. |
percentWithoutSpp |
number · double | Нет | Поле percentWithoutSpp. |
direction |
stringDEBIT, CREDIT | Да | Направление транзакции (доход или расход) |
[
"string"
]Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_direction_cant_findПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_direction_cant_find; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_user_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_not_found; localMessage содержит приведённый выше перевод.
Получить список счетов
/api/finance/getAccountsПолучить список счетов.
curl --request GET 'https://api.selsup.ru/api/finance/getAccounts' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/getAccounts', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/getAccounts', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/getAccounts',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/getAccounts',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/getAccounts", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/getAccounts"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Структура элемента массива
Account[]
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountName[
"string"
]Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Получить счет по идентификатору
/api/finance/getAccountByIdПолучить счет по идентификатору.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Да | Поле id. |
curl --request GET 'https://api.selsup.ru/api/finance/getAccountById?id=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/getAccountById?id=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/getAccountById?id=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/getAccountById?id=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/getAccountById?id=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/getAccountById?id=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/getAccountById?id=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Account
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||
number |
string | Нет | Поле number. | ||||||||||||||||||||||||||||||||||||||||||||||||
clientId |
integer · int64 | Нет | Поле clientId. | ||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | Нет | Поле organizationId. | ||||||||||||||||||||||||||||||||||||||||||||||||
bank |
Bank | Нет | Поле bank. | ||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
accountNumberaccountName{
"accountId": 1001,
"name": "Example",
"number": "string",
"clientId": 1001,
"organizationId": 1001,
"bank": "string"
}Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Поиск регулярных платежей
/api/finance/findScheduleПозволяет найти регулярные платежи, которые по расписанию добавляют обычные платежи
Параметры запроса
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filter |
TransactionSchedulerFilter | Да | Поле filter. | ||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
string | Нет | Поле сортировки записей. Работает только при получении списка. |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
query |
string | Нет | Поле query. |
curl --request GET 'https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/findSchedule?filter=%5Bobject+Object%5D"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
FindResponseTransactionSchedule
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rows |
TransactionSchedule[] | Нет | Строки с результатом поиска | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
scheduleId |
integer · int64 | Нет | Поле scheduleId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
direction |
stringDEBIT, CREDIT | Нет | Поле direction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
comment |
string | Нет | Поле comment. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
accountId |
integer · int64 | Нет | Поле accountId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account |
Account | Нет | Поле account. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
accountId |
integer · int64 | Нет | Поле accountId. |
name |
string | Нет | Поле name. |
number |
string | Нет | Поле number. |
clientId |
integer · int64 | Нет | Поле clientId. |
organizationId |
integer · int64 | Нет | Поле organizationId. |
bank |
Bank | Нет | Поле bank. |
accountNumber |
Account | Нет | Поле accountNumber. |
accountName |
Account | Нет | Поле accountName. |
datepaymentAmountfrequencycontractorIdexpenditureIdexpenditure
Поля объекта
ExpenditureObject
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
contractor
Поля объекта
Contractor
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор контрагента. Проставляется автоматически |
name |
string | Да | Наименование контрагента |
versionId |
integer · int64 | Нет | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи |
clientId |
integer · int64 | Нет | Идентификатор клиента |
createdUser |
string | Нет | Логин пользователя, который создал контрагента |
lastIncomeDate |
string · date-time | Нет | Дата последнего поступления для этого контрагента для сортировки |
deleted |
boolean | Нет | Признак удаления контрагента |
organizationId |
integer · int64 | Нет | Организация для реквизитов контрагента |
legalAddress |
string | Нет | Юридический адрес для документов, заданный вручную |
phoneNumber |
string | Нет | Номер телефона |
email |
string | Нет | Адрес электронной почты |
contactName |
string | Нет | Имя контакта |
moySkladId |
string | Нет | Идентификатор в сервисе МойСклад |
url |
string | Нет | Ссылка на сайт |
organization |
Organization | Нет | Организация для документов. Можно передать как сам объект, так и просто organizationId |
clientIdorganizationIdcreatorcreatedDatecontractorInnincludeInPnl{
"rows": "string"
}Ошибки6
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Получить список статей расходов
/api/finance/fetchExpenditureПолучить список статей расходов.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
query |
string | Да | Поле query. |
direction |
stringDEBIT, CREDIT | Нет | Поле direction. |
limit |
integer · int32 | Да | Поле limit. |
curl --request GET 'https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/fetchExpenditure?query=string&limit=50"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Структура элемента массива
ExpenditureObject[]
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
expenditureId |
integer · int64 | Нет | Поле expenditureId. |
name |
string | Нет | Поле name. |
type |
stringDEBIT, CREDIT | Нет | Поле type. |
clientId |
integer · int64 | Нет | Поле clientId. |
isCommon |
boolean | Нет | Поле isCommon. |
expenditureName |
ExpenditureObject | Нет | Поле expenditureName. |
expenditureType |
ExpenditureObject | Нет | Поле expenditureType. |
[
"string"
]Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Поиск банков
/api/finance/fetchBankПроизводит поиск банков по БИК, названию
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
query |
string | Нет | Поле query. |
limit |
integer · int32 | Да | Поле limit. |
curl --request GET 'https://api.selsup.ru/api/finance/fetchBank?limit=50' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/fetchBank?limit=50', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/fetchBank?limit=50', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/fetchBank?limit=50',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/fetchBank?limit=50',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/fetchBank?limit=50", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/fetchBank?limit=50"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Структура элемента массива
Bank[]
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
bik |
string | Нет | Поле bik. |
name |
string | Нет | Поле name. |
address |
string | Нет | Поле address. |
isBank |
boolean | Нет | Поле isBank. |
account |
string | Нет | Поле account. |
integration |
stringSBER, TOCHKA, TBANK, ALFA_BANK | Нет | Поле integration. |
bankBik |
Bank | Нет | Поле bankBik. |
bankName |
Bank | Нет | Поле bankName. |
bankAddress |
Bank | Нет | Поле bankAddress. |
bankAccount |
Bank | Нет | Поле bankAccount. |
bankIntegration |
Bank | Нет | Поле bankIntegration. |
[
"string"
]Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Экспорт платежей в Excel файл
/api/finance/exportTransactionInExcelFileМетод ставит задачу по экспорту платежей в файл.
Параметры запроса
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request |
AnalyticsRequest | Да | Поле request. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
period |
stringDAY, WEEK, MONTH, QUARTER, YEAR, MONTH_3, MONTH_6, END_OF_TARIFF, MONTH_7, MONTH_14, YEAR_2 | Нет | Период агрегации | ||||||||||||||||||||||||
dateFrom |
string · date-time | Да | Дата начала отчета | ||||||||||||||||||||||||
dateTo |
string · date-time | Да | Дата окончания отчета | ||||||||||||||||||||||||
services |
string[] | Нет | Список маркетплейсов для которых отдать данные | ||||||||||||||||||||||||
categories |
integer[] | Нет | Фильтр категорий для которых отдать данные | ||||||||||||||||||||||||
brands |
integer[] | Нет | Фильтр брендов для которых отдать данные | ||||||||||||||||||||||||
clientOrganizationId |
integer · int64 | Нет | Идентификатор организации, для которой отдать данные | ||||||||||||||||||||||||
organizations |
integer[] | Нет | Идентификаторы организаций клиента | ||||||||||||||||||||||||
ids |
integer[] | Нет | Список идентификаторов | ||||||||||||||||||||||||
type |
stringFBM, FBS, INCOME, RETAIL, WHOLESALE, FBO, MOVEMENT, WRITE_OFF, PRODUCTION | Нет | Тип заказа | ||||||||||||||||||||||||
types |
string[] | Нет | Типы заказа | ||||||||||||||||||||||||
status |
stringCREATED, REVOKING, REVOKED, ORDER_CREATED, CARDS_CREATED, BOX_BARCODES, IMAGES_UPLOADED, INVOICE_UPLOADED, READY_TO_SUPPLY, SUPPLIED, FINISHED, COLLECTED, SEND, DELIVERY, REFUND, COLLECTING, PACKING, PAYMENT_REQUIRED, CANCELED, CONTROVERSIAL, OVERDUE, READY_FOR_PICKUP, WAITING_SUPPLY, PICK_UP_REFUND, REFUND_RECEIVED, DELETED, RESTORE, PRODUCTION_CONFIRMED, REVERSED | Нет | Фильтр по статусу заказа | ||||||||||||||||||||||||
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC | ||||||||||||||||||||||||
previousDateFrom |
string · date-time | Нет | Дата начала периода для сравнения | ||||||||||||||||||||||||
clientOrganizationIds |
integer[] | Нет | Идентификаторы организаций, для которых отдать данные | ||||||||||||||||||||||||
ignoreCredit |
boolean | Нет | Не учитывать кредит в прочих удержаниях | ||||||||||||||||||||||||
productAnalyticField |
stringBARCODE, COLOR, ARTICLE, BRAND, CATEGORY | Да | Агрегировать данные по сущности | ||||||||||||||||||||||||
query |
string | Нет | Поисковый запрос для фильтрации аналитики | ||||||||||||||||||||||||
withDuplicate |
boolean | Нет | Отдавать аналитику по дубликатам товаров | ||||||||||||||||||||||||
withBonus |
boolean | Нет | Вычитать бонусы Ozon и Яндекс Маркета, а также СПП Wildberries из выручки и расходов | ||||||||||||||||||||||||
distributeUnallocatedExpenses |
boolean | Нет | Распределять расходы без привязки к карточке пропорционально выручке | ||||||||||||||||||||||||
byOrgAndService |
boolean | Нет | Для Excel финансового отчёта: true — колонки по паре организация + маркетплейс, false/null — агрегировать по организации как раньше | ||||||||||||||||||||||||
byCategory |
boolean | Нет | Группировать финансовый отчёт по категории товара | ||||||||||||||||||||||||
byOrderType |
boolean | Нет | Разбивать финансовый отчёт по типу заказа: отдельные строки для маркетплейсов, розницы и опта | ||||||||||||||||||||||||
limit |
integer · int32 | Нет | Количество записей в ответе | ||||||||||||||||||||||||
page |
integer · int32 | Нет | Страница для навигации по страницам, начиная с 1 | ||||||||||||||||||||||||
sortBy |
string | Нет | Поле сортировки | ||||||||||||||||||||||||
ascending |
boolean | Нет | Сортировать по возрастанию по полю sortBy | ||||||||||||||||||||||||
id |
integer · int64 | Нет | Поле id. | ||||||||||||||||||||||||
isMarketPlaceStructure |
boolean | Нет | Идентификатор, получать данные только по маркетплейсу или по всем. | ||||||||||||||||||||||||
isDashboard |
boolean | Нет | Идентификатор, запрос с дашборда или нет. | ||||||||||||||||||||||||
analyticsField |
stringPRODUCT, MODEL, GROUP, ORGANIZATION, CLIENT, CATEGORY, PRODUCT_VIEW, BRAND, REGION, WAREHOUSE | Нет | Агрегировать данные по model/product/view | ||||||||||||||||||||||||
planDayCount |
integer · int32 | Нет | Кол-во дней для отчетов | ||||||||||||||||||||||||
daysToSupply |
integer · int32 | Нет | Через сколько дней ожидается поставка | ||||||||||||||||||||||||
plannedSupplyDate |
string · date-time | Нет | Планируемая дата поставки | ||||||||||||||||||||||||
groupByView |
boolean | Нет | Сгруппировать по цвету | ||||||||||||||||||||||||
warehouses |
integer[] | Нет | Список идентификаторов складов | ||||||||||||||||||||||||
salesModels |
string[] | Нет | Модели продаж для отчёта экономики складов | ||||||||||||||||||||||||
aggregation |
stringWAREHOUSE, WAREHOUSE_PRODUCT | Нет | Уровень агрегации отчёта экономики складов | ||||||||||||||||||||||||
columns |
FileExportColumn[] | Нет | Настроенные пользователем колонки Excel | ||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | ID записи |
fileExportId |
integer · int64 | Нет | ID конфигурации экспорта |
columnName |
string | Нет | Название столбца |
columnOrder |
integer · int32 | Нет | Порядок столбца в файле |
isEnabled |
boolean | Нет | Включен ли столбец для экспорта |
regionsgroupcalculationByOrdersordersByCreatedDatesourceReportskipDayWithoutStocksreplaceSetsByComponentsdistributeFbsByWarehousedistributeFbsStockignoreDumpingisSaleStructureisAveragePerOneUnitupdateDateuseWeightedGroupisFindirRequestbrandIdscategoryIdsarticlescolorssizesbarcodestagIdspenaltyFrompenaltyTologisticsFromlogisticsTomarginFrommarginTosalesAmountFromsalesAmountTototalSalesAmountFromtotalSalesAmountTogrossProfitFromgrossProfitTotaxNdsuseOsnoozonOnlyunmatchcurl --request GET 'https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/finance/exportTransactionInExcelFile?request=%5Bobject+Object%5D"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки7
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_user_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_not_found; localMessage содержит приведённый выше перевод.