ym88659208ym87991671
Создание зарплатной ведомости | Документация для разработчиков

Создание зарплатной ведомости

Обновлено 29 ноября 2024

Alt text /fintech/api/v1/payrolls

Запрос позволяет создать зарплатную ведомость для осуществления выплаты в рамках зарплатного проекта. Отправьте POST-запрос /fintech/api/v1/payrolls с токеном доступа (access_token) пользователя в параметре Authorization заголовка и реквизитами зарплатной ведомости в теле запроса.

В параметре scope ссылки авторизации пользователя должен быть указан сервис PAYROLL для получения доступа к этому ресурсу.


Если в запросе на создание платежного документа передать ЭП к документу (объект digestSignatures), то Банк сразу начнет его обработку.

Если в запросе не передавать ЭП к документу, то документ будет создан в статусе черновик. Для начала его обработки Банком потребуется зайти в интерфейс СберБизнес и подписать его.


Для обращения к ресурсу необходимо отправлять запрос на:

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443
  • Промышленный контур https://fintech.sberbank.ru:9443

Request

/fintech/api/v1/payrolls
НаименованиеТипФорматRegexpОбязательностьОписание
HEADER
Authorizationstringstring^[a-zA-Z0-9]{38}$requiredAccess token пользователя, полученный через SSO.
Acceptstringstring^(application/json|application/jose)optionalУказывает на формат данных, который вы готовы принять от Банка.
Если ответ не требуется в зашифрованном виде, то может быть не указан или передан со значением application/json.
Если необходимо получить ответ на запрос токена в зашифрованном виде, то необходимо передать параметр со значением application/jose.
BODY
Payroll {
  accountstringstring^[0-9]{20}$required/optionalНомер счета для выплаты денежных средств в рамках зарплатной ведомости.
- Если выплата осуществляется по договору с резервированием (атрибут isReserve имеет значение true в запросе /fintech/api/v1/salary-agreements), то это поле обязательно необходимо заполнить.
- Если выплата осуществляется по договору без резервирования (атрибут isReserve имеет значение false в запросе /fintech/api/v1/salary-agreements) и со счета в СберБанке, то это поле обязательно необходимо заполнить.
- Если выплата осуществляется по договору без резервирования (атрибут isReserve имеет значение false в запросе /fintech/api/v1/salary-agreements) и со счета в другом банке, то заполнять это поле не требуется. Потребуется заполнить массив объектов payDocs.
  admissionValuestringstring^[0-9]{1,2}$requiredВид зачисления.
Указывается один вид зачисления на всю зарплатную ведомость. Если, к примеру, требуется осуществить выплату заработной платы для сотрудников компании и выплату в пользу самозанятых, вам потребуется создать 2 разных платежных документа.

Доступный перечень видов зачисления по вашему договору содержится в ответе запроса /fintech/api/v1/salary-agreements в атрибуте admissionCode,
  amountAmountCurrencyobjectrequiredИтоговая сумма зачисления,
  authPersonNamestringstring^[a-zA-Z0-9. _ -]{1,60}$optionalФИО уполномоченного сотрудника организации пользователя,
  authPersonTelfaxstringstring^[a-zA-Z0-9. _ -]{1,40}$optionalНомер телефона, факса уполномоченного сотрудника организации пользователя,
  bicstringstring^[0-9]{9}$requiredБИК банка пользователя,
  contractDatestringISO 8601 YYYY-MM-DD^[0-9]{4}-[0-9]{2}-[0-9]{2}$requiredДата договора.

Необходимо использовать значение атрибута contractStartDate, полученное из запроса /fintech/api/v1/salary-agreements,
  contractNumberstringstring^[a-zA-Z0-9. _ -]{1,255}$requiredНомер договора.

Необходимо использовать значение атрибута contractNumber, полученное из запроса /fintech/api/v1/salary-agreements,
  datestringISO 8601 YYYY-MM-DD^[0-9]{4}-[0-9]{2}-[0-9]{2}$requiredДата составления документа,
  digestSignaturesarray[Signature]arrayoptionalЭлектронные подписи по дайджесту документа.
- Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу.
- Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес.

О подписании дайджеста платежного документа подробно рассказали в соответствующем разделе документации.
  employeeSalariesarray[PayrollEmpSalary]arrayoptionalДанные сотрудников для зачисления выплаты
  employeesNumberintegerinteger^[0-9]$requiredКоличество сотрудников,
  externalIdstringUUID^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$requiredИдентификатор документа, который вы присваиваете самостоятельно,
  incomeTypeCodestringstring^(1|2|3|4|5)$optionalКод вида дохода получателей выплаты по 229-ФЗ.

Коды:
1 - Заработная плата и иные доходы, в отношении которых ст. 99 229-ФЗ установлены ограничения размеров удержания.
2 - Периодические доходы, на которые в соответствии с ч. 1 ст. 101 229-ФЗ не может быть обращено взыскание, за исключением доходов, указанных в ч. 2 ст. 101 229-ФЗ.
3 - Периодические доходы, к которым согласно ч. 2 ст. 101 229-ФЗ ограничения по взысканию не применяются.
4 - Единовременный доход, на который в соответствии с ч. 1 ст. 101 229-ФЗ не может быть обращено взыскание, за исключением доходов, указанных в ч. 2 ст. 101 229-ФЗ.
5 - Единовременный доход, к которому согласно ч. 2 ст. 101 229-ФЗ ограничения по взысканию не применяются.
null - Код дохода указывать не нужно, если денежные средства не относятся к доходам с установленными ограничениями согласно ст. 99 и запретом согласно ст. 101 229-ФЗ,
  loanAmountAmountCurrencyobjectoptionalСумма оплаты за счет кредитных средств.

При заполнении данного атрибута обязательно требуется заполнить атрибуты loanDate и loanNumber,
  loanDatestringISO 8601 YYYY-MM-DD^[0-9]{4}-[0-9]{2}-[0-9]{2}$optionalДата кредитного договора.

При заполнении данного атрибута обязательно требуется заполнить атрибуты loanAmount и loanNumber,
  loanNumberstringstring^[a-zA-Z0-9. _ -]{1,50}$optionalНомер кредитного договора.

При заполнении данного атрибута обязательно требуется заполнить атрибуты loanDate и loanAmount,
  monthstringstring^[0-9]{1,2}$requiredМесяц отчетного периода,
  numberstringstring^[a-zA-Z0-9. _ -]{1,50}$optionalНомер документа,
  orgNamestringstring^[a-zA-Z0-9. _ -]{1,160}$requiredНаименование организации пользователя,
  orgTaxNumberstringstring^([0-9]{10}|[0-9]{12})$requiredИНН организации пользователя
  payDocsarray[PayrollPayDoc]arrayrequired/optionalДанные платежных поручений по вашим счетам из других банков.
- Если выплата осуществляется по договору с резервированием (атрибут isReserve имеет значение true в запросе /fintech/api/v1/salary-agreements), то заполнять объект не требуется.
- Если выплата осуществляется по договору без резервирования (атрибут isReserve имеет значение false в запросе /fintech/api/v1/salary-agreements) и со счета в СберБанке, то заполнять объект не требуется.
- Если выплата осуществляется по договору без резервирования (атрибут isReserve имеет значение false в запросе /fintech/api/v1/salary-agreements) и со счета в другом банке, то объект обязательно необходимо заполнить,
  yearstringYYYY^[0-9]{4}$requiredГод отчетного периода
}
AmountCurrency {
  amountnumbernumber^[0-9]{1,16}\.[0-9]{2}$requiredСумма,
  currencyCodestringОКВ^[0-9]{1,3}$requiredЦифровой код валюты,
  currencyNamestringISO 4217^[A-Z]{3}$requiredБуквенный ISO-код валюты
}
Signature {
  base64Encodedstringbase64^[a-zA-Z0-9]+$requiredЗначение электронной подписи (ЭП), закодированное в Base64.
  certificateuuidstringUUID^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$requiredУникальный идентификатор сертификата ключа проверки электронной подписи
}
PayrollEmpSalary {
  accountstringstring^[0-9]{20}$requiredНомер счета сотрудника,
  amountAmountCurrencyobjectrequiredСумма начисления,
  bicstringstring^[0-9]{9}$optionalБИК банка сотрудника.
Заполняется в случае, если счет сотрудника открыт не в СберБанке,
  firstNamestringstring^[a-zA-Zа-яА-ЯеЁ]{1,1024}$requiredИмя
  withheldAmountnumbernumber^[0-9]{1,16}\.[0-9]{2}$optionalСумма удержанных средств по исполнительному документу,
  lastNamestringstring^[a-zA-Zа-яА-ЯеЁ]{1,1024}$requiredФамилия,
  middleNamestringstring^[a-zA-Zа-яА-ЯеЁ]{1,1024}$optionalОтчество,
}
PayrollPayDoc {
  amountAmountCurrencyobjectrequiredСумма начисления.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  docDatestringISO 8601 YYYY-MM-DD^[0-9]{4}-[0-9]{2}-[0-9]{2}$requiredДата расчетного документа.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  numberstringstring^[0-9]{1,6}$requiredНомер расчетного документа.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  payeeAccountstringstring^[0-9]{20}$requiredНомер счета получателя.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  payeeBicstringstring^[0-9]{9}$requiredБИК банка получателя.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  payerAccountstringstring^[0-9]{20}$requiredНомер счета плательщика.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  payerBicstringstring^[0-9]{9}$requiredБИК банка плательщика.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке,
  purposestringstring^[a-zA-Z0-9. _ -]{1,212}$requiredНазначение платежного документа.
Данные должны быть взяты из платежного поручения. Это платежное поручение для перевода денежных средств для выплаты по зарплатной ведомости со счета в другом банке на счет в Сбербанке
}

digestSignatures

Формат дайджеста
Наименование поляОписание поляПример
accountНомер счета клиента40702810600000001523
admissionValueВид зачисления (цифровое значение вида зачисления) из справочника видов зачисления SalType01
amount.amountСумма по договору1240687.00
amount.currencyNameТрехбуквенный код валютыRUB
authPersonNameИмя уполномоченного сотрудника организации пользователяИванов Алексей Сергеевич
authPersonTelfaxНомер телефона, факса уполномоченного сотрудника организации пользователя8(495)3612541
bicБИК банка пользователя044525225
contractDateДата договора2018-02-20
contractNumberНомер договора456
dateДата составления документа2018-02-20
employeesNumberКоличество сотрудников300
externalIdИдентификатор документа, присвоенный сервисом (UUID)550e8400-e29b-41d4-a716-446655440000
incomeTypeCodeКод вида дохода получателей выплаты по 229-ФЗ1
loanAmountСумма оплаты за счет кредитных средств1000.00
loanDateДата кредитного договора04.03.2019
loanNumberНомер кредитного договора155
monthМесяц отчетного периодаЯнварь
orgNameНаименование организации пользователяООО Ромашка
orgTaxNumberИНН пользователя222201236445
yearГод отчетного периода2018
TABLES
TABLES=employeeSalaries
accountНомер счета физического лица Счет физического лица (получателя зарплаты) не может быть открыт в стороннем банке. Подразделение Сбербанка определяется в СББОЛ по счету, а именно по цифрам из отмеченных разрядов хххххххххХХХХххххххх40702810600000001673
amount.amountСумма675988.00
amount.currencyNameТрехбуквенный код валютыRUB
firstNameИмя физического лицаДмитрий
lastNameФамилия физического лицаПетров
middleNameОтчество физического лицаДмитриевич
withheldAmountСумма удержанных средств по исполнительному документу1010.01
Не заполняется если в зарплатном договоре стоит признак «с резервированием»!
TABLES=payDocs
amount.amountСумма675988.00
amount.currencyNameТрехбуквенный код валютыRUB
docDateДата расчетного документа (по местному времени обслуживающего подразделения банка)2018-02-20
numberНомер расчетного документа388
payeeAccountНомер счета получателя40702810500006103990
payeeBicБИК банка зачисления044525225
payerAccountНомер счета плательщика40702810500006103990
payerBicБИК банка плательщика044525225
purposeНазначение платежаЗачисление зарплаты

Responses

201 (Created)
НаименованиеТипОбязательностьОписание
Payroll {
  accountstringoptionalНомер счета клиента,
  admissionValuestringrequiredВид зачисления,
  amountAmountCurrencyrequiredИтоговая сумма зачисления,
  authPersonNamestringoptionalФИО уполномоченного сотрудника организации пользователя,
  authPersonTelfaxstringoptionalНомер телефона, факса уполномоченного сотрудника организации пользователя,
  bankCommentstringoptionalБанковский комментарий к статусу документа,
  bankStatusstringoptionalСтатус документа,
  bicstringrequiredБИК банка пользователя,
  commissionInfoPayrollCommissionInfooptionalТарифы и комиссия зарплатной ведомости,
  contractDatestringrequiredДата договора,
  contractNumberstringrequiredНомер договора,
  datestringrequiredДата составления документа,
  digestSignaturesArray[Signature]optionalЭлектронные подписи по дайджесту документа,
  employeeSalariesArray[PayrollEmpSalary]optionalДанные сотрудников для зачисления выплаты
  employeesNumberintegerrequiredКоличество сотрудников,
  externalIdstringrequiredИдентификатор документа, который вы присваиваете самостоятельно,
  incomeTypeCodestringoptionalКод вида дохода получателей выплаты по 229-ФЗ,
  loanAmountAmountCurrencyoptionalСумма оплаты за счет кредитных средств,
  loanDatestringoptionalДата кредитного договора,
  loanNumberstringoptionalНомер кредитного договора,
  monthstringrequiredМесяц отчетного периода,
  numberstringoptionalНомер документа,
  orgNamestringrequiredНаименование организации пользователя,
  orgTaxNumberstringrequiredИНН организации пользователя
  payDocsArray[PayrollPayDoc]optionalПлатежные документы перечисления зарплаты,
  yearstringrequiredГод отчетного периода
}
AmountCurrency {
  amountnumberrequiredСумма,
  currencyCodestringrequiredЦифровой код валюты,
  currencyNamestringrequiredБуквенный ISO-код валюты
}
PayrollCommissionInfo {
  actualRatenumberoptionalФактическая тарифная ставка комиссии (%),
  actualSumnumberoptionalФактическая сумма комиссии,
  estimatedRatenumberoptionalПредварительная тарифная ставка комиссии (%),
  estimatedSumnumberoptionalПредварительная сумма комиссии,
  invoiceDatestringoptionalДата выставления счета и направления детализации
}
Signature {
  base64EncodedstringrequiredЗначение электронной подписи (ЭП), закодированное в Base64,
  certificateuuidstringrequiredУникальный идентификатор сертификата ключа проверки электронной подписи
}
PayrollEmpSalary {
  accountstringrequiredНомер счета сотрудника,
  amountAmountCurrencyrequiredСумма начисления,
  bankMessagestringoptionalСообщение из банка по сотруднику,
  bicstringoptionalБИК банка сотрудника,
  firstNamestringrequiredИмя
  withheldAmountnumberoptionalСумма удержанных средств по исполнительному документу,
  lastNamestringrequiredФамилия,
  middleNamestringoptionalОтчество,
  receiptResultstringoptionalРезультат регистрации самозанятого в ФНС,
  receiptStatusstringoptionalСтатус регистрации самозанятого в ФНС,
  resultstringoptionalРезультат начисления
}
PayrollPayDoc {
  amountAmountCurrencyrequiredСумма начисления,
  docDatestringrequiredДата расчетного документа
  numberstringrequiredНомер расчетного документа
  payeeAccountstringrequiredНомер счета получателя,
  payeeBicstringrequiredБИК банка получателя,
  payerAccountstringrequiredНомер счета плательщика,
  payerBicstringrequiredБИК банка плательщика,
  purposestringrequiredНазначение платежного документа
}
400 (Bad request)
CauseMessageDescription
DESERIALIZATION_FAULTНеверный формат запросаДанные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос.
WORKFLOW_FAULTНе найден зарплатный договор с номером {contractNumber} от {contractDate}Проверьте корректность заполненных атрибутов contractNumber и contractDate.
При необходимости запросите повторно информацию по зарплатному договору /fintech/api/v1/salary-agreements и используйте данные из ответа.
Для внешнего сервиса недоступны операции по счету: {номер счета}Возможные причины ошибки: счет не добавлен в список разрешенных в оферте; внешний сервис заблокирован в СББОЛ; счет указан неверно. Отсутствует доступный открытый рублевый расчетный счет у организации плательщика
Документ с такими реквизитами уже существуетПроверка по идентификатору документа (externalId) в течение года.
VALIDATION_FAULTОбъект {название объекта} не соответствует моделиДанные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос.
НаименованиеТипОбязательностьОписание
ResourceFault {
  causestringoptionalПричина или основание сообщения,
  referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
  messagestringoptionalСообщение,
  checksarray[Check]optionalСписок проверок, приведших к ошибке,
  fieldNamesarray[string]optionalНазвания полей с некорректным значением (только для VALIDATION_FAULT)
}
Check {
  levelstringoptionalУровень результата = ['ERROR', 'WARNING'],
  messagestringoptionalСообщение,
  fieldsarray[string]optionalНазвания полей (при наличии связи с моделью)
}
401 (Unauthorized Error)
CauseMessageDescription
UNAUTHORIZEDaccessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос.
Некорректное значение Access TokenУказан некорректный access_token. Используйте refresh_token для обновления access_token и повторите запрос.
НаименованиеТипОбязательностьОписание
Notice {
  causestringoptionalПричина или основание сообщения,
  referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
  messagestringoptionalСообщение,
}
403 (Forbidden)
CauseMessageDescription
ACTION_ACCESS_EXCEPTIONОперация не может быть выполнена: доступ к ресурсу запрещенИспользуемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.
В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция PAYROLL. Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token.
НаименованиеТипОбязательностьОписание
Notice {
  causestringoptionalПричина или основание сообщения,
  referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
  messagestringoptionalСообщение,
}
429 (Too Many Requests)
CauseMessageDescription
TOO_MANY_REQUESTSПревышен лимит запросов. Повторите операцию позже.Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее
НаименованиеТипОбязательностьОписание
Notice{
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
429 (Too Many Requests)
CauseMessageDescription
TOO_MANY_REQUESTSПревышен лимит запросов. Повторите операцию позже.Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее
НаименованиеТипОбязательностьОписание
Notice {
  causestringoptionalПричина или основание сообщения,
  referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
  messagestringoptionalСообщение,
}
500 (Internal Server Error)
CauseMessageDescription
UNKNOWN_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
  causestringoptionalПричина или основание сообщения,
  referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
  messagestringoptionalСообщение,
}
503 (Service Temporarily Unavailable)
CauseMessageDescription
UNAVAILABLE_RESOURCE_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
  causestringoptionalПричина или основание сообщения,
  referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
  messagestringoptionalСообщение,
}

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.