Работа со счетом-фактурой
Порядок обмена СФ описан на странице Документооборот счетов-фактур. Базовый алгоритм работы с формализованными документами приведен в разделе Работа с формализованными документами. Особенности сценариев работы с документом зависит от вида документооборота для его формата.
Примечание
Методы и подходы, описанные ниже, можно использовать для работы со счетами-фактурами (СФ), корректировочными счетами-фактурами (КСФ), исправлениями счета-фактуры (ИСФ) и исправлениями корректировочных счетов-фактур (ИКСФ).
Сценарий работы со счетом-фактурой включает следующие шаги:
- Покупатель:
генерирует извещение о получении счета-фактуры и отправляет его продавцу,
парсит полученный документ — при необходимости,
отправляет продавцу уведомление об уточнении — при необходимости.
Генерация счета-фактуры
Для генерации СФ, ИСФ, КСФ, ИКСФ используйте метод GenerateTitleXml. Инструкция о генерации приведена в разделе Генерация титула отправителя.
Чтобы сгенерировать документ, нужно получить необходимую информацию из метода GetDocumentTypes (V2). Инструкция о получении данных для титула из метода GetDocumentTypes
приведена в разделе Данные для генерации титула.
Из ответа метода GetDocumentTypes
для счета-фактуры возьмем следующие значения для параметров метода GenerateTitleXml
:
documentTypeNamedId = Invoice
documentFunction = default
documentVersion = utd970_05_03_01
titleIndex = 0
documentTypeNamedId = InvoiceRevision
documentFunction = default
documentVersion = utd970_05_03_01
titleIndex = 0
documentTypeNamedId = InvoiceCorrection
documentFunction = default
documentVersion = ucd736_05_01_02
titleIndex = 0
Документы СФ, ИСФ, КСФ, ИКСФ — однотитульные, поэтому значение titleIndex
для них всегда будет равно нулю.
Кроме этого нужно подготовить содержимое документа — упрощенный XML-файл UserDataXml.
С помощью полученных данных можно сгенерировать документ методом GenerateTitleXml.
Пример HTTP-запроса метода GenerateTitleXml:
POST GenerateTitleXml?boxId={{boxId}}&documentTypeNamedId=Invoice&documentFunction=default&documentVersion=utd970_05_03_01&titleIndex=0 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
POST GenerateTitleXml?boxId={{boxId}}&documentTypeNamedId=InvoiceRevision&documentFunction=default&documentVersion=utd970_05_03_01&titleIndex=0 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
POST GenerateTitleXml?boxId={{boxId}}&documentTypeNamedId=InvoiceCorrection&documentFunction=default&documentVersion=ucd736_05_01_02&titleIndex=0 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
Пример тела запроса метода GenerateTitleXml (UserDataXml):
<?xml version="1.0" encoding="utf-8"?>
<UniversalTransferDocument DocumentDate="01.03.2025" DocumentNumber="123456" Currency="643" Function="СЧФ" SenderFnsParticipantId="2BM-6125600311-732644811-202407101103418496883" RecipientFnsParticipantId="2BM-9147414342-757645784-202407101104400484330" DocumentCreator="Организация-отправитель, ИНН 6125600311, КПП 732644811" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Sellers>
<Seller>
<OrganizationDetails FnsParticipantId="2BM-6125600311-732644811-202407101103418496883" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<GarAddress AddressCode="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Region="72" ZipCode="450133" LandPlot="ЗемелУчасток">
<MunicipalTerritory Type="1" NameOrNumber="МуниципРайон-Наим"/>
<UrbanSettlement Type="1" NameOrNumber="ГородСелПоселен-Наим"/>
<Locality Type="НаселенПункт" NameOrNumber="НаселенПункт-Наим"/>
<ElementPlanningStructure Type="ЭлПланСтруктур" NameOrNumber="ЭлПланСтруктур-Наим"/>
<ElementRoadNetwork Type="ЭлУлДорСети" NameOrNumber="ЭлУлДорСети-Наим"/>
<Buildings>
<Building Type="Здание" NameOrNumber="Здание-Номер"/>
</Buildings>
<RoomBuilding Type="ПомещЗдания" NameOrNumber="ПомещЗдания-Номер"/>
<RoomApartment Type="ПомещКвартиры" NameOrNumber="ПомещКвартиры-Номер"/>
</GarAddress>
</Address>
</OrganizationDetails>
</Seller>
</Sellers>
<PaymentDocuments>
<Document Number="123456" Date="01.03.2025" />
</PaymentDocuments>
<DocumentShipments>
<DocumentShipment DocumentName="Документ об отгрузке" DocumentNumber="123" DocumentDate="01.03.2025" />
</DocumentShipments>
<Buyers>
<Buyer>
<OrganizationDetails FnsParticipantId="2BM-9147414342-757645784-202407101104400484330" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Buyer>
</Buyers>
<Table TotalWithVatExcluded="1230.00" Vat="246.00" Total="1476.00">
<Item TaxRate="TwentyPercent" Product="Позиция" Quantity="10" Price="123.00" SubtotalWithVatExcluded="1230.00" Vat="246.00" Subtotal="1476.00" />
</Table>
<Signers>
<Signer SignerPowersConfirmationMethod="6">
<Fio FirstName="Имя" LastName="Фамилия" MiddleName="Отчество" />
<Position PositionSource="Manual">Должность</Position>
</Signer>
</Signers>
</UniversalTransferDocument>
<?xml version="1.0" encoding="utf-8"?>
<UniversalTransferDocument DocumentDate="01.03.2025" DocumentNumber="123456" Currency="643" Function="СЧФ" SenderFnsParticipantId="2BM-6125600311-732644811-202407101103418496883" RecipientFnsParticipantId="2BM-9147414342-757645784-202407101104400484330" RevisionDate="01.03.2025" RevisionNumber="123" DocumentCreator="Организация-отправитель, ИНН 6125600311, КПП 732644811" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Sellers>
<Seller>
<OrganizationDetails FnsParticipantId="2BM-6125600311-732644811-202407101103418496883" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Seller>
</Sellers>
<PaymentDocuments>
<Document Number="123456" Date="01.03.2025" />
</PaymentDocuments>
<DocumentShipments>
<DocumentShipment DocumentName="Документ об отгрузке" DocumentNumber="123" DocumentDate="01.03.2025" />
</DocumentShipments>
<Buyers>
<Buyer>
<OrganizationDetails FnsParticipantId="2BM-9147414342-757645784-202407101104400484330" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<GarAddress AddressCode="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Region="72" ZipCode="450133" LandPlot="ЗемелУчасток">
<MunicipalTerritory Type="1" NameOrNumber="МуниципРайон-Наим"/>
<UrbanSettlement Type="1" NameOrNumber="ГородСелПоселен-Наим"/>
<Locality Type="НаселенПункт" NameOrNumber="НаселенПункт-Наим"/>
<ElementPlanningStructure Type="ЭлПланСтруктур" NameOrNumber="ЭлПланСтруктур-Наим"/>
<ElementRoadNetwork Type="ЭлУлДорСети" NameOrNumber="ЭлУлДорСети-Наим"/>
<Buildings>
<Building Type="Здание" NameOrNumber="Здание-Номер"/>
</Buildings>
<RoomBuilding Type="ПомещЗдания" NameOrNumber="ПомещЗдания-Номер"/>
<RoomApartment Type="ПомещКвартиры" NameOrNumber="ПомещКвартиры-Номер"/>
</GarAddress>
</Address>
</OrganizationDetails>
</Buyer>
</Buyers>
<Table TotalWithVatExcluded="1230.00" Vat="246.00" Total="1476.00">
<Item TaxRate="TwentyPercent" Product="Позиция" Quantity="10" Price="123.00" SubtotalWithVatExcluded="1230.00" Vat="246.00" Subtotal="1476.00" />
</Table>
<Signers>
<Signer SignerPowersConfirmationMethod="6">
<Fio FirstName="Имя" LastName="Фамилия" MiddleName="Отчество" />
<Position PositionSource="Manual">Должность</Position>
</Signer>
</Signers>
</UniversalTransferDocument>
<?xml version="1.0" encoding="utf-8"?>
<UniversalCorrectionDocument DocumentDate="01.03.2025" DocumentNumber="123" Currency="643" DocumentCreator="Организация-отправитель, ИНН 6125600311, КПП 732644811" Function="КСЧФ" CurrencyName="1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Invoices>
<Invoice Date="01.03.2025" Number="123456" />
</Invoices>
<Seller>
<OrganizationDetails OrgType="1" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811" FnsParticipantId="2BM-6125600311-732644811-202407101103418496883">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Seller>
<Buyer>
<OrganizationDetails OrgType="1" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811" FnsParticipantId="2BM-9147414342-757645784-202407101104400484330">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Buyer>
<Signers>
<SignerDetails LastName="Фамилия" FirstName="Имя" MiddleName="Отчество" SignerPowers="0" SignerPowersBase="Должностные обязанности" SignerStatus="1" SignerType="1" Inn="8645873925" Position="Должность" SignerOrganizationName="ООО 'НИКА'" />
</Signers>
<EventContent OperationContent="Изменение стоимости товаров и услуг" NotificationDate="01.03.2025">
<TransferDocDetails BaseDocumentName="название документа" BaseDocumentDate="01.03.2025" />
<CorrectionBase BaseDocumentName="Без документа-основания" />
</EventContent>
<Table>
<Items>
<Item OriginalNumber="1" Product="Позиция">
<TaxRate OriginalValue="20%" CorrectedValue="20%" />
<Quantity OriginalValue="10" CorrectedValue="20" />
<Price OriginalValue="123.00" CorrectedValue="123.00" />
<Subtotal OriginalValue="1476.00" CorrectedValue="2952.00">
<AmountsInc>1476.00</AmountsInc>
</Subtotal>
<SubtotalWithVatExcluded OriginalValue="1230.00" CorrectedValue="2460.00">
<AmountsInc>1230.00</AmountsInc>
</SubtotalWithVatExcluded>
<Vat OriginalValue="246.00" CorrectedValue="492.00">
<AmountsInc>246.00</AmountsInc>
</Vat>
</Item>
</Items>
<TotalsInc Total="1476.00" TotalWithVatExcluded="1230.00" Vat="246.00" />
<TotalsDec Total="0.00" TotalWithVatExcluded="0.00" Vat="0.00" />
</Table>
</UniversalCorrectionDocument>
Пример тела ответа метода GenerateTitleXml:
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600311-732644811-202407101103418496883_20250829_654bf61c-1e92-4094-95ae-a2f153aef4f6_0_0_0_0_0_00" ВерсФорм="5.03" ВерсПрог="Diadoc 1.0">
<Документ КНД="1115131" ВремИнфПр="16.34.17" ДатаИнфПр="29.08.2025" Функция="СЧФ" НаимЭконСубСост="Организация-отправитель, ИНН 6125600311, КПП 732644811">
<СвСчФакт НомерДок="123456" ДатаДок="01.03.2025">
<СвПрод>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрГАР ИдНом="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Индекс="450133">
<Регион>72</Регион>
<НаимРегион>Тюменская область</НаимРегион>
<МуниципРайон ВидКод="1" Наим="МуниципРайон-Наим" />
<ГородСелПоселен ВидКод="1" Наим="ГородСелПоселен-Наим" />
<НаселенПункт Вид="НаселенПункт" Наим="НаселенПункт-Наим" />
<ЭлПланСтруктур Тип="ЭлПланСтруктур" Наим="ЭлПланСтруктур-Наим" />
<ЭлУлДорСети Тип="ЭлУлДорСети" Наим="ЭлУлДорСети-Наим" />
<ЗемелУчасток>ЗемелУчасток</ЗемелУчасток>
<Здание Тип="Здание" Номер="Здание-Номер" />
<ПомещЗдания Тип="ПомещЗдания" Номер="ПомещЗдания-Номер" />
<ПомещКвартиры Тип="ПомещКвартиры" Номер="ПомещКвартиры-Номер" />
</АдрГАР>
</Адрес>
</СвПрод>
<СвПРД НомерПРД="123456" ДатаПРД="01.03.2025" />
<ДокПодтвОтгрНом РеквНаимДок="Документ об отгрузке" РеквНомерДок="123" РеквДатаДок="01.03.2025" />
<СвПокуп>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ КодРегион="66" НаимРегион="Свердловская область" Индекс="987654" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПокуп>
<ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" />
</СвСчФакт>
<ТаблСчФакт>
<СведТов НомСтр="1" НалСт="20%" НаимТов="Позиция" КолТов="10" ЦенаТов="123.00" СтТовБезНДС="1230.00" СтТовУчНал="1476.00">
<ДопСведТов />
<Акциз>
<БезАкциз>без акциза</БезАкциз>
</Акциз>
<СумНал>
<СумНал>246.00</СумНал>
</СумНал>
</СведТов>
<ВсегоОпл СтТовБезНДСВсего="1230.00" СтТовУчНалВсего="1476.00">
<СумНалВсего>
<СумНал>246.00</СумНал>
</СумНалВсего>
</ВсегоОпл>
</ТаблСчФакт>
<Подписант СпосПодтПолном="6" Должн="Должность">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
</Подписант>
</Документ>
</Файл>
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600311-732644811-202407101103418496883_20250829_84999e95-4d13-4840-90c0-853e3f69d5c3_0_0_0_0_0_00" ВерсФорм="5.03" ВерсПрог="Diadoc 1.0">
<Документ КНД="1115131" ВремИнфПр="16.49.44" ДатаИнфПр="29.08.2025" Функция="СЧФ" НаимЭконСубСост="Организация-отправитель, ИНН 6125600311, КПП 732644811">
<СвСчФакт НомерДок="123456" ДатаДок="01.03.2025">
<ИспрДок НомИспр="123" ДатаИспр="01.03.2025" />
<СвПрод>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ КодРегион="66" НаимРегион="Свердловская область" Индекс="987654" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПрод>
<СвПРД НомерПРД="123456" ДатаПРД="01.03.2025" />
<ДокПодтвОтгрНом РеквНаимДок="Документ об отгрузке" РеквНомерДок="123" РеквДатаДок="01.03.2025" />
<СвПокуп>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрГАР ИдНом="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Индекс="450133">
<Регион>72</Регион>
<НаимРегион>Тюменская область</НаимРегион>
<МуниципРайон ВидКод="1" Наим="МуниципРайон-Наим" />
<ГородСелПоселен ВидКод="1" Наим="ГородСелПоселен-Наим" />
<НаселенПункт Вид="НаселенПункт" Наим="НаселенПункт-Наим" />
<ЭлПланСтруктур Тип="ЭлПланСтруктур" Наим="ЭлПланСтруктур-Наим" />
<ЭлУлДорСети Тип="ЭлУлДорСети" Наим="ЭлУлДорСети-Наим" />
<ЗемелУчасток>ЗемелУчасток</ЗемелУчасток>
<Здание Тип="Здание" Номер="Здание-Номер" />
<ПомещЗдания Тип="ПомещЗдания" Номер="ПомещЗдания-Номер" />
<ПомещКвартиры Тип="ПомещКвартиры" Номер="ПомещКвартиры-Номер" />
</АдрГАР>
</Адрес>
</СвПокуп>
<ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" />
</СвСчФакт>
<ТаблСчФакт>
<СведТов НомСтр="1" НалСт="20%" НаимТов="Позиция" КолТов="10" ЦенаТов="123.00" СтТовБезНДС="1230.00" СтТовУчНал="1476.00">
<ДопСведТов />
<Акциз>
<БезАкциз>без акциза</БезАкциз>
</Акциз>
<СумНал>
<СумНал>246.00</СумНал>
</СумНал>
</СведТов>
<ВсегоОпл СтТовБезНДСВсего="1230.00" СтТовУчНалВсего="1476.00">
<СумНалВсего>
<СумНал>246.00</СумНал>
</СумНалВсего>
</ВсегоОпл>
</ТаблСчФакт>
<Подписант СпосПодтПолном="6" Должн="Должность">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
</Подписант>
</Документ>
</Файл>
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="ON_NKORSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600311-732644811-202407101103418496883_20250308_662ebd1d-9590-4fdd-8e27-08ef05400e2f" ВерсФорм="5.01" ВерсПрог="Diadoc 1.0">
<СвУчДокОбор ИдОтпр="2BM-6125600311-732644811-202407101103418496883" ИдПол="2BM-9147414342-757645784-202407101104400484330">
<СвОЭДОтпр ИННЮЛ="6663003127" ИдЭДО="2BM" НаимОрг="АО "ПФ "СКБ Контур"" />
</СвУчДокОбор>
<Документ КНД="1115133" ДатаИнфПр="08.03.2025" ВремИнфПр="17.20.00" НаимЭконСубСост="Организация-отправитель, ИНН 6125600311, КПП 732644811" Функция="КСЧФ">
<СвКСчФ НомерКСчФ="123" ДатаКСчФ="01.03.2025" КодОКВ="643">
<СчФ НомерСчФ="123456" ДатаСчФ="01.03.2025" />
<СвПрод>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ Индекс="987654" КодРегион="66" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПрод>
<СвПокуп>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ Индекс="987654" КодРегион="66" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПокуп>
<ДопСвФХЖ1 НаимОКВ="Российский рубль" />
</СвКСчФ>
<ТаблКСчФ>
<СведТов НомСтр="1" НаимТов="Позиция" ПорНомТовВСЧФ="1" КолТовДо="10" КолТовПосле="20" ЦенаТовДо="123.00" ЦенаТовПосле="123.00" НалСтДо="20%" НалСтПосле="20%">
<СтТовБезНДС СтоимДоИзм="1230.00" СтоимПослеИзм="2460.00" СтоимУвел="1230.00" />
<АкцизДо>
<БезАкциз>без акциза</БезАкциз>
</АкцизДо>
<АкцизПосле>
<БезАкциз>без акциза</БезАкциз>
</АкцизПосле>
<СумНалДо>
<СумНДС>246.00</СумНДС>
</СумНалДо>
<СумНалПосле>
<СумНДС>492.00</СумНДС>
</СумНалПосле>
<СумНалРазн>
<СумУвел>246.00</СумУвел>
</СумНалРазн>
<СтТовУчНал СтоимДоИзм="1476.00" СтоимПослеИзм="2952.00" СтоимУвел="1476.00" />
</СведТов>
<ВсегоУвел СтТовБезНДСВсего="1230.00" СтТовУчНалВсего="1476.00">
<СумНал>
<СумНДС>246.00</СумНДС>
</СумНал>
</ВсегоУвел>
<ВсегоУм СтТовБезНДСВсего="0.00" СтТовУчНалВсего="0.00">
<СумНал>
<СумНДС>0.00</СумНДС>
</СумНал>
</ВсегоУм>
</ТаблКСчФ>
<СодФХЖ3 СодОпер="Изменение стоимости товаров и услуг" ДатаНапр="01.03.2025">
<ПередатДокум НаимОсн="название документа" ДатаОсн="01.03.2025" />
<ДокумОснКор НаимОсн="Без документа-основания" />
</СодФХЖ3>
<Подписант ОснПолн="Должностные обязанности" ОблПолн="0" Статус="1">
<ЮЛ ИННЮЛ="8645873925" Должн="Должность" НаимОрг="ООО 'НИКА'">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
</ЮЛ>
</Подписант>
</Документ>
</Файл>
Отправка счета-фактуры
Сформированный счет-фактуру можно подписать и отправить покупателю с помощью метода PostMessage (V3), передав его в поле DocumentAttachment
структуры MessageToPost. Инструкция об отправке документа приведена в разделе Отправка документа.
Обратите внимание, что в документе должны быть заполнены данные подписанта. Указать их можно либо сразу при генерации счета-фактуры, либо с помощью процедуры подготовки к подписанию.
В структуре DocumentAttachment укажите значения, которые были получены для генерации методом GetDocumentTypes (V2):
TypeNamedId = Invoice
Function = default
Version = utd970_05_03_01
TypeNamedId = InvoiceRevision
Function = default
Version = utd970_05_03_01
TypeNamedId = InvoiceCorrection
Function = default
Version = ucd736_05_01_02
Пример тела запроса метода PostMessage:
{
"FromBoxId": "{{boxId_sender}}",
"ToBoxId": "{{boxId_recipient}}",
"DocumentAttachments": [
{
"SignedContent": {
"Content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0...NC50Ls+", // содержимое XML-файла в кодировке base-64
"Signature": "MIIN5QYJKoZIhvcNAQcCoIIN1jCCDdIA...kA9MJfsplqgW" // содержимое файла подписи в кодировке base-64
},
"TypeNamedId": "Invoice",
"Function": "default",
"Version": "utd970_05_03_01"
}
]
}
{
"FromBoxId": "{{boxId_sender}}",
"ToBoxId": "{{boxId_recipient}}",
"DocumentAttachments": [
{
"SignedContent": {
"Content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0...NC50Ls+", // содержимое XML-файла в кодировке base-64
"Signature": "MIIN5QYJKoZIhvcNAQcCoIIN1jCCDdIA...kA9MJfsplqgW" // содержимое файла подписи в кодировке base-64
},
"TypeNamedId": "InvoiceRevision",
"Function": "default",
"Version": "utd970_05_03_01"
}
]
}
{
"FromBoxId": "{{boxId_sender}}",
"ToBoxId": "{{boxId_recipient}}",
"DocumentAttachments": [
{
"SignedContent": {
"Content": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0...NC50Ls+", // содержимое XML-файла в кодировке base-64
"Signature": "MIIN5QYJKoZIhvcNAQcCoIIN1jCCDdIA...kA9MJfsplqgW" // содержимое файла подписи в кодировке base-64
},
"TypeNamedId": "InvoiceCorrection",
"Function": "default",
"Version": "ucd736_05_01_02"
}
]
}
После отправки документа:
Диадок автоматически сформирует подтверждение оператора о дате получения документа и отправит его продавцу и покупателю. Получить его можно по инструкции Получение подтверждения оператора.
Покупатель должен сформировать извещение о получении документа и отправить его продавцу. Получить его можно по инструкции Получение извещения о получении.
Получение счета-фактуры в ящике покупателя
Покупатель может найти входящий счет-фактуру в своем ящике с помощью чтения ленты событий или с помощью поиска. Инструкция о получении документов приведена на странице Получение документов.
Чтобы найти СФ, ИСФ, КСФ или ИКСФ в ящике покупателя через поиск, передайте в метод GetDocuments (V3) значения параметров:
boxId
— идентификатор ящика покупателя,filterCategory = Invoice.InboundNotFinished
— для СФ,filterCategory = InvoiceRevision.InboundNotFinished
— для ИСФ,filterCategory = InvoiceCorrection.InboundNotFinished
— для КСФ,filterCategory = InvoiceCorrectionRevision.InboundNotFinished
— для ИКСФ.
Пример HTTP-запроса метода GetDocuments:
GET /V3/GetDocuments?filterCategory=Invoice.InboundNotFinished&boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8
GET /V3/GetDocuments?filterCategory=InvoiceRevision.InboundNotFinished&boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8
GET /V3/GetDocuments?filterCategory=InvoiceCorrection.InboundNotFinished&boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8
Из полученного в ответе метода списка DocumentList можно получить информацию о каждом документе. Инструкция приведена в разделе Получение информации о найденных документах.
После того как покупатель получил счет-фактуру, он должен сформировать и отправить извещение о получении.
Генерация и отправка извещения о получении счета-фактуры
На полученный счет-фактуру покупатель должен сгенерировать и отправить в ответ подписанное извещение о получении (ИоП) счета-фактуры.
Сгенерировать ИоП можно с помощью метода GenerateReceiptXml (V2), а отправить с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4). Инструкция о генерации и отправке ИоП приведена в разделе Генерация и отправка извещения о получении.
После того как покупатель отправит ИоП, Диадок автоматически сформирует подтверждение оператора о дате получения ИоП и отправит его продавцу и покупателю. О том, как получить подтверждение оператора, написано в разделе Получение подтверждения оператора.
После этого документооборот счета-фактуры считается завершенным, никакие действия по документу больше не требуются.
Парсинг счета-фактуры
Чтобы получить данные из полученного счета-фактуры, используйте метод ParseTitleXml. Инструкция о парсинге приведена на странице Парсинг формализованного документа.
В теле запроса метода ParseTitleXml
нужно передать XML-файл полученного документа.
Пример HTTP-запроса метода ParseTitleXml:
POST /ParseTitleXml?boxId={{boxId}}&documentTypeNamedId=Invoice&documentFunction=default&documentVersion=utd970_05_03_01&titleIndex=0 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
POST /ParseTitleXml?boxId={{boxId}}&documentTypeNamedId=InvoiceRevision&documentFunction=default&documentVersion=utd970_05_03_01&titleIndex=0 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
POST /ParseTitleXml?boxId={{boxId}}&documentTypeNamedId=InvoiceCorrection&documentFunction=default&documentVersion=ucd736_05_01_02 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
Пример тела запроса метода ParseTitleXml:
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600311-732644811-202407101103418496883_20250829_654bf61c-1e92-4094-95ae-a2f153aef4f6_0_0_0_0_0_00" ВерсФорм="5.03" ВерсПрог="Diadoc 1.0">
<Документ КНД="1115131" ВремИнфПр="16.34.17" ДатаИнфПр="29.08.2025" Функция="СЧФ" НаимЭконСубСост="Организация-отправитель, ИНН 6125600311, КПП 732644811">
<СвСчФакт НомерДок="123456" ДатаДок="01.03.2025">
<СвПрод>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрГАР ИдНом="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Индекс="450133">
<Регион>72</Регион>
<НаимРегион>Тюменская область</НаимРегион>
<МуниципРайон ВидКод="1" Наим="МуниципРайон-Наим" />
<ГородСелПоселен ВидКод="1" Наим="ГородСелПоселен-Наим" />
<НаселенПункт Вид="НаселенПункт" Наим="НаселенПункт-Наим" />
<ЭлПланСтруктур Тип="ЭлПланСтруктур" Наим="ЭлПланСтруктур-Наим" />
<ЭлУлДорСети Тип="ЭлУлДорСети" Наим="ЭлУлДорСети-Наим" />
<ЗемелУчасток>ЗемелУчасток</ЗемелУчасток>
<Здание Тип="Здание" Номер="Здание-Номер" />
<ПомещЗдания Тип="ПомещЗдания" Номер="ПомещЗдания-Номер" />
<ПомещКвартиры Тип="ПомещКвартиры" Номер="ПомещКвартиры-Номер" />
</АдрГАР>
</Адрес>
</СвПрод>
<СвПРД НомерПРД="123456" ДатаПРД="01.03.2025" />
<ДокПодтвОтгрНом РеквНаимДок="Документ об отгрузке" РеквНомерДок="123" РеквДатаДок="01.03.2025" />
<СвПокуп>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ КодРегион="66" НаимРегион="Свердловская область" Индекс="987654" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПокуп>
<ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" />
</СвСчФакт>
<ТаблСчФакт>
<СведТов НомСтр="1" НалСт="20%" НаимТов="Позиция" КолТов="10" ЦенаТов="123.00" СтТовБезНДС="1230.00" СтТовУчНал="1476.00">
<ДопСведТов />
<Акциз>
<БезАкциз>без акциза</БезАкциз>
</Акциз>
<СумНал>
<СумНал>246.00</СумНал>
</СумНал>
</СведТов>
<ВсегоОпл СтТовБезНДСВсего="1230.00" СтТовУчНалВсего="1476.00">
<СумНалВсего>
<СумНал>246.00</СумНал>
</СумНалВсего>
</ВсегоОпл>
</ТаблСчФакт>
<Подписант СпосПодтПолном="6" Должн="Должность">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
</Подписант>
</Документ>
</Файл>
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600311-732644811-202407101103418496883_20250829_84999e95-4d13-4840-90c0-853e3f69d5c3_0_0_0_0_0_00" ВерсФорм="5.03" ВерсПрог="Diadoc 1.0">
<Документ КНД="1115131" ВремИнфПр="16.49.44" ДатаИнфПр="29.08.2025" Функция="СЧФ" НаимЭконСубСост="Организация-отправитель, ИНН 6125600311, КПП 732644811">
<СвСчФакт НомерДок="123456" ДатаДок="01.03.2025">
<ИспрДок НомИспр="123" ДатаИспр="01.03.2025" />
<СвПрод>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ КодРегион="66" НаимРегион="Свердловская область" Индекс="987654" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПрод>
<СвПРД НомерПРД="123456" ДатаПРД="01.03.2025" />
<ДокПодтвОтгрНом РеквНаимДок="Документ об отгрузке" РеквНомерДок="123" РеквДатаДок="01.03.2025" />
<СвПокуп>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрГАР ИдНом="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Индекс="450133">
<Регион>72</Регион>
<НаимРегион>Тюменская область</НаимРегион>
<МуниципРайон ВидКод="1" Наим="МуниципРайон-Наим" />
<ГородСелПоселен ВидКод="1" Наим="ГородСелПоселен-Наим" />
<НаселенПункт Вид="НаселенПункт" Наим="НаселенПункт-Наим" />
<ЭлПланСтруктур Тип="ЭлПланСтруктур" Наим="ЭлПланСтруктур-Наим" />
<ЭлУлДорСети Тип="ЭлУлДорСети" Наим="ЭлУлДорСети-Наим" />
<ЗемелУчасток>ЗемелУчасток</ЗемелУчасток>
<Здание Тип="Здание" Номер="Здание-Номер" />
<ПомещЗдания Тип="ПомещЗдания" Номер="ПомещЗдания-Номер" />
<ПомещКвартиры Тип="ПомещКвартиры" Номер="ПомещКвартиры-Номер" />
</АдрГАР>
</Адрес>
</СвПокуп>
<ДенИзм КодОКВ="643" НаимОКВ="Российский рубль" />
</СвСчФакт>
<ТаблСчФакт>
<СведТов НомСтр="1" НалСт="20%" НаимТов="Позиция" КолТов="10" ЦенаТов="123.00" СтТовБезНДС="1230.00" СтТовУчНал="1476.00">
<ДопСведТов />
<Акциз>
<БезАкциз>без акциза</БезАкциз>
</Акциз>
<СумНал>
<СумНал>246.00</СумНал>
</СумНал>
</СведТов>
<ВсегоОпл СтТовБезНДСВсего="1230.00" СтТовУчНалВсего="1476.00">
<СумНалВсего>
<СумНал>246.00</СумНал>
</СумНалВсего>
</ВсегоОпл>
</ТаблСчФакт>
<Подписант СпосПодтПолном="6" Должн="Должность">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
</Подписант>
</Документ>
</Файл>
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="ON_NKORSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600311-732644811-202407101103418496883_20250308_662ebd1d-9590-4fdd-8e27-08ef05400e2f" ВерсФорм="5.01" ВерсПрог="Diadoc 1.0">
<СвУчДокОбор ИдОтпр="2BM-6125600311-732644811-202407101103418496883" ИдПол="2BM-9147414342-757645784-202407101104400484330">
<СвОЭДОтпр ИННЮЛ="6663003127" ИдЭДО="2BM" НаимОрг="АО "ПФ "СКБ Контур"" />
</СвУчДокОбор>
<Документ КНД="1115133" ДатаИнфПр="08.03.2025" ВремИнфПр="17.20.00" НаимЭконСубСост="Организация-отправитель, ИНН 6125600311, КПП 732644811" Функция="КСЧФ">
<СвКСчФ НомерКСчФ="123" ДатаКСчФ="01.03.2025" КодОКВ="643">
<СчФ НомерСчФ="123456" ДатаСчФ="01.03.2025" />
<СвПрод>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ Индекс="987654" КодРегион="66" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПрод>
<СвПокуп>
<ИдСв>
<СвЮЛУч НаимОрг="Организация-отправитель" ИННЮЛ="6125600311" КПП="732644811" />
</ИдСв>
<Адрес>
<АдрРФ Индекс="987654" КодРегион="66" Город="Екатеринбург" Улица="Павлодарская" Дом="17" />
</Адрес>
</СвПокуп>
<ДопСвФХЖ1 НаимОКВ="Российский рубль" />
</СвКСчФ>
<ТаблКСчФ>
<СведТов НомСтр="1" НаимТов="Позиция" ПорНомТовВСЧФ="1" КолТовДо="10" КолТовПосле="20" ЦенаТовДо="123.00" ЦенаТовПосле="123.00" НалСтДо="20%" НалСтПосле="20%">
<СтТовБезНДС СтоимДоИзм="1230.00" СтоимПослеИзм="2460.00" СтоимУвел="1230.00" />
<АкцизДо>
<БезАкциз>без акциза</БезАкциз>
</АкцизДо>
<АкцизПосле>
<БезАкциз>без акциза</БезАкциз>
</АкцизПосле>
<СумНалДо>
<СумНДС>246.00</СумНДС>
</СумНалДо>
<СумНалПосле>
<СумНДС>492.00</СумНДС>
</СумНалПосле>
<СумНалРазн>
<СумУвел>246.00</СумУвел>
</СумНалРазн>
<СтТовУчНал СтоимДоИзм="1476.00" СтоимПослеИзм="2952.00" СтоимУвел="1476.00" />
</СведТов>
<ВсегоУвел СтТовБезНДСВсего="1230.00" СтТовУчНалВсего="1476.00">
<СумНал>
<СумНДС>246.00</СумНДС>
</СумНал>
</ВсегоУвел>
<ВсегоУм СтТовБезНДСВсего="0.00" СтТовУчНалВсего="0.00">
<СумНал>
<СумНДС>0.00</СумНДС>
</СумНал>
</ВсегоУм>
</ТаблКСчФ>
<СодФХЖ3 СодОпер="Изменение стоимости товаров и услуг" ДатаНапр="01.03.2025">
<ПередатДокум НаимОсн="название документа" ДатаОсн="01.03.2025" />
<ДокумОснКор НаимОсн="Без документа-основания" />
</СодФХЖ3>
<Подписант ОснПолн="Должностные обязанности" ОблПолн="0" Статус="1">
<ЮЛ ИННЮЛ="8645873925" Должн="Должность" НаимОрг="ООО 'НИКА'">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
</ЮЛ>
</Подписант>
</Документ>
</Файл>
Пример тела ответа метода ParseTitleXml:
<?xml version="1.0" encoding="utf-8"?>
<UniversalTransferDocument DocumentDate="01.03.2025" DocumentNumber="123456" Currency="643" Function="СЧФ" SenderFnsParticipantId="2BM-6125600311-732644811-202407101103418496883" RecipientFnsParticipantId="2BM-9147414342-757645784-202407101104400484330" DocumentCreator="Организация-отправитель, ИНН 6125600311, КПП 732644811" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Sellers>
<Seller>
<OrganizationDetails FnsParticipantId="2BM-6125600311-732644811-202407101103418496883" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<GarAddress AddressCode="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Region="72" ZipCode="450133" LandPlot="ЗемелУчасток">
<MunicipalTerritory Type="1" NameOrNumber="МуниципРайон-Наим" />
<UrbanSettlement Type="1" NameOrNumber="ГородСелПоселен-Наим" />
<Locality Type="НаселенПункт" NameOrNumber="НаселенПункт-Наим" />
<ElementPlanningStructure Type="ЭлПланСтруктур" NameOrNumber="ЭлПланСтруктур-Наим" />
<ElementRoadNetwork Type="ЭлУлДорСети" NameOrNumber="ЭлУлДорСети-Наим" />
<Buildings>
<Building Type="Здание" NameOrNumber="Здание-Номер" />
</Buildings>
<RoomBuilding Type="ПомещЗдания" NameOrNumber="ПомещЗдания-Номер" />
<RoomApartment Type="ПомещКвартиры" NameOrNumber="ПомещКвартиры-Номер" />
</GarAddress>
</Address>
</OrganizationDetails>
</Seller>
</Sellers>
<PaymentDocuments>
<Document Number="123456" Date="01.03.2025" />
</PaymentDocuments>
<DocumentShipments>
<DocumentShipment DocumentName="Документ об отгрузке" DocumentNumber="123" DocumentDate="01.03.2025" />
</DocumentShipments>
<Buyers>
<Buyer>
<OrganizationDetails FnsParticipantId="2BM-9147414342-757645784-202407101104400484330" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Buyer>
</Buyers>
<Table TotalWithVatExcluded="1230.00" Vat="246.00" Total="1476.00">
<Item TaxRate="TwentyPercent" Product="Позиция" Quantity="10" Price="123.00" SubtotalWithVatExcluded="1230.00" Vat="246.00" Subtotal="1476.00" />
</Table>
<Signers>
<Signer SignerPowersConfirmationMethod="6">
<Fio FirstName="Имя" LastName="Фамилия" MiddleName="Отчество" />
<Position PositionSource="Manual">Должность</Position>
</Signer>
</Signers>
</UniversalTransferDocument>
<?xml version="1.0" encoding="utf-8"?>
<UniversalTransferDocument DocumentDate="01.03.2025" DocumentNumber="123456" Currency="643" Function="СЧФ" SenderFnsParticipantId="2BM-6125600311-732644811-202407101103418496883" RecipientFnsParticipantId="2BM-9147414342-757645784-202407101104400484330" RevisionDate="01.03.2025" RevisionNumber="123" DocumentCreator="Организация-отправитель, ИНН 6125600311, КПП 732644811" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Sellers>
<Seller>
<OrganizationDetails FnsParticipantId="2BM-6125600311-732644811-202407101103418496883" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Seller>
</Sellers>
<PaymentDocuments>
<Document Number="123456" Date="01.03.2025" />
</PaymentDocuments>
<DocumentShipments>
<DocumentShipment DocumentName="Документ об отгрузке" DocumentNumber="123" DocumentDate="01.03.2025" />
</DocumentShipments>
<Buyers>
<Buyer>
<OrganizationDetails FnsParticipantId="2BM-9147414342-757645784-202407101104400484330" OrgType="2" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811">
<Address>
<GarAddress AddressCode="03510210-e5f3-4bc6-bbd2-24d7fe25b3ed" Region="72" ZipCode="450133" LandPlot="ЗемелУчасток">
<MunicipalTerritory Type="1" NameOrNumber="МуниципРайон-Наим" />
<UrbanSettlement Type="1" NameOrNumber="ГородСелПоселен-Наим" />
<Locality Type="НаселенПункт" NameOrNumber="НаселенПункт-Наим" />
<ElementPlanningStructure Type="ЭлПланСтруктур" NameOrNumber="ЭлПланСтруктур-Наим" />
<ElementRoadNetwork Type="ЭлУлДорСети" NameOrNumber="ЭлУлДорСети-Наим" />
<Buildings>
<Building Type="Здание" NameOrNumber="Здание-Номер" />
</Buildings>
<RoomBuilding Type="ПомещЗдания" NameOrNumber="ПомещЗдания-Номер" />
<RoomApartment Type="ПомещКвартиры" NameOrNumber="ПомещКвартиры-Номер" />
</GarAddress>
</Address>
</OrganizationDetails>
</Buyer>
</Buyers>
<Table TotalWithVatExcluded="1230.00" Vat="246.00" Total="1476.00">
<Item TaxRate="TwentyPercent" Product="Позиция" Quantity="10" Price="123.00" SubtotalWithVatExcluded="1230.00" Vat="246.00" Subtotal="1476.00" />
</Table>
<Signers>
<Signer SignerPowersConfirmationMethod="6">
<Fio FirstName="Имя" LastName="Фамилия" MiddleName="Отчество" />
<Position PositionSource="Manual">Должность</Position>
</Signer>
</Signers>
</UniversalTransferDocument>
<?xml version="1.0" encoding="utf-8"?>
<UniversalCorrectionDocument DocumentDate="01.03.2025" DocumentNumber="123" Currency="643" DocumentCreator="Организация-отправитель, ИНН 6125600311, КПП 732644811" Function="КСЧФ" CurrencyName="1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Invoices>
<Invoice Date="01.03.2025" Number="123456" />
</Invoices>
<Seller>
<OrganizationDetails OrgType="1" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811" FnsParticipantId="2BM-6125600311-732644811-202407101103418496883">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Seller>
<Buyer>
<OrganizationDetails OrgType="1" OrgName="Организация-отправитель" Inn="6125600311" Kpp="732644811" FnsParticipantId="2BM-9147414342-757645784-202407101104400484330">
<Address>
<RussianAddress Region="66" ZipCode="987654" City="Екатеринбург" Street="Павлодарская" Building="17" />
</Address>
</OrganizationDetails>
</Buyer>
<Signers>
<SignerDetails LastName="Фамилия" FirstName="Имя" MiddleName="Отчество" SignerPowers="0" SignerPowersBase="Должностные обязанности" SignerStatus="1" SignerType="1" Inn="8645873925" Position="Должность" SignerOrganizationName="ООО 'НИКА'" />
</Signers>
<EventContent OperationContent="Изменение стоимости товаров и услуг" NotificationDate="01.03.2025">
<TransferDocDetails BaseDocumentName="название документа" BaseDocumentDate="01.03.2025" />
<CorrectionBase BaseDocumentName="Без документа-основания" />
</EventContent>
<Table>
<Items>
<Item OriginalNumber="1" Product="Позиция">
<TaxRate OriginalValue="20%" CorrectedValue="20%" />
<Quantity OriginalValue="10" CorrectedValue="20" />
<Price OriginalValue="123.00" CorrectedValue="123.00" />
<Subtotal OriginalValue="1476.00" CorrectedValue="2952.00">
<AmountsInc>1476.00</AmountsInc>
</Subtotal>
<SubtotalWithVatExcluded OriginalValue="1230.00" CorrectedValue="2460.00">
<AmountsInc>1230.00</AmountsInc>
</SubtotalWithVatExcluded>
<Vat OriginalValue="246.00" CorrectedValue="492.00">
<AmountsInc>246.00</AmountsInc>
</Vat>
</Item>
</Items>
<TotalsInc Total="1476.00" TotalWithVatExcluded="1230.00" Vat="246.00" />
<TotalsDec Total="0.00" TotalWithVatExcluded="0.00" Vat="0.00" />
</Table>
</UniversalCorrectionDocument>
Отправка уведомления об уточнении счета-фактуры
Если покупатель обнаружил в полученном счете-фактуре ошибку, он может запросить его исправление или корректировку.
Чтобы создать запрос на исправление или корректировку счета-фактуры, нужно сформировать уведомление об уточнении с помощью метода GenerateInvoiceCorrectionRequestXml (V2) и отправить его с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4). Инструкция о генерации уведомления об уточнении приведена в разделе Генерация уведомления об уточнении.
После отправки уведомления об уточнении Диадок автоматически сформирует подтверждение оператора о дате получения документа и отправит его продавцу и покупателю. Получить его можно по инструкции Получение подтверждения оператора.
Пример использования C# SDK
Ниже приведены примеры кода на C# с использованием SDK для работы со счетом-фактурой.
Отправка счета-фактуры
// Для работы с документами в Диадоке нужен авторизационный токен. Информация о нем приведена на странице «Авторизация».
public static string AuthTokenCert;
public static string BoxId = "идентификатор ящика отправителя";
// Генерация счета-фактуры
public static GeneratedFile GenerateInvoiceXml()
{
var content = new InvoiceInfo();
return Api.GenerateInvoiceXml(AuthTokenCert, content);
}
// Отправка счета-фактуры
public static Message SendInvoiceXml()
{
var invoice = GenerateInvoiceXml();
var messageAttachment = new XmlDocumentAttachment
{
SignedContent = new SignedContent
{
Content = invoice.Content,
// Подпись отправителя
Signature = Crypt.Sign(invoice.Content, ReadCertContent("путь к сертификату"))
}
};
var messageToPost = new MessageToPost
{
FromBoxId = BoxId,
ToBoxId = "идентификатор ящика получателя",
Invoices =
{
messageAttachment
}
};
return Api.PostMessage(AuthTokenCert, messageToPost);
}
// Получение извещения о получении счета-фактуры
public static byte[] GetInvoiceReceipt(Message invoiceMessage)
{
var receiptEntityId = "";
foreach (var entity in invoiceMessage.Entities)
{
if (entity.AttachmentType == AttachmentType.InvoiceReceipt && entity.ParentEntityId == invoiceMessage.Entities[0].EntityId)
{
receiptEntityId = entity.EntityId;
}
}
return Api.GetEntityContent(AuthTokenCert, BoxId, invoiceMessage.MessageId, receiptEntityId);
}
public static void Main()
{
var invoiceMessage = SendInvoiceXml();
// Оператор формирует подтверждение в течение нескольких секунд
// Для получения сообщения с подтверждением нужно вызвать метод GetMessage()
var invoiceMessageWithConfirmation = Api.GetMessage(AuthTokenCert, BoxId, invoiceMessage.MessageId);
// Технический документ можно получить в виде массива байтов
// Для получения сообщения с новыми вложениями нужно снова вызвать метод GetMessage()
var invoiceMessageWithReceipt = Api.GetMessage(AuthTokenCert, BoxId, invoiceMessage.MessageId);
// Технический документ можно получить в виде массива байтов
var invoiceReceipt = GetInvoiceReceipt(invoiceMessageWithReceipt);
}
Получение счета-фактуры
// Для работы с документами в Диадоке нужен авторизационный токен. Информация о нем приведена на странице «Авторизация».
public static string AuthTokenCert;
// Для работы с документом необходимо знать его уникальный идентификатор. Узнать его можно, например, выполнив поиск документов по заданным параметрам.
public static string BoxId = "идентификатор ящика получателя";
// Получение списка всех счетов-фактур, по которым не завершен документооборот
public static DocumentList SearchInboundInvoicesDocumentsWithNotFinishedDocflow()
{
// Параметры, по которым осуществляется фильтрация
var filterCategory = "Invoice.InboundNotFinished";
var counteragentBoxId = "идентификатор ящика отправителя";
return Api.GetDocuments(
AuthTokenCert,
new DocumentsFilter
{
BoxId = BoxId,
CounteragentBoxId = counteragentBoxId,
FilterCategory = filterCategory
});
}
// Получение сообщения, содержащего счет-фактуру
public static Message GetInvoice()
{
// Выбираем конкретный документ из полученного ранее списка, например, самый первый.
var document = SearchInboundInvoicesDocumentsWithNotFinishedDocflow().Documents[0];
// Получение счета-фактуры
return Api.GetMessage(AuthTokenCert, BoxId, document.MessageId, document.EntityId);
}
// Формирование и отправка извещения о получении счета-фактуры
public static void SendInvoiceReceipt(Entity invoiceDocument)
{
var receipt = Api.GenerateReceiptXml(
AuthTokenCert,
BoxId,
invoiceDocument.DocumentInfo.MessageId,
invoiceDocument.EntityId,
new Signer
{
// Подпись получателя
SignerCertificate = ReadCertContent("путь к сертификату"),
SignerDetails = new SignerDetails()
}
);
var receiptAttachment = new ReceiptAttachment
{
ParentEntityId = invoiceDocument.EntityId,
SignedContent = new SignedContent
{
Content = receipt.Content,
// Подпись получателя
Signature = Crypt.Sign(receipt.Content, ReadCertContent("путь к сертификату"))
}
};
var receiptPatch = new MessagePatchToPost
{
BoxId = BoxId,
MessageId = invoiceDocument.DocumentInfo.MessageId,
Receipts =
{
receiptAttachment
}
};
Api.PostMessagePatch(AuthTokenCert, receiptPatch);
}
public static void Main()
{
var invoiceMessage = GetInvoice();
var invoiceDocument = invoiceMessage.Entities.First(entity => entity.AttachmentType == AttachmentType.Invoice);
// Отправка извещения о получении счета-фактуры
SendInvoiceReceipt(invoiceDocument);
}
Отправка уведомления об уточнении счета-фактуры
// Формирование уведомления об уточнении счета-фактуры
public static GeneratedFile GetInvoiceCorrectionRequest(Document invoiceDocument)
{
var invoiceCorrectionRequestInfo = new InvoiceCorrectionRequestInfo()
{
ErrorMessage = "Текст уведомления об уточнении",
Signer = new Signer()
{
// Подпись отправителя
SignerCertificate = ReadCertContent("путь к сертификату"),
SignerDetails = new SignerDetails()
{
//Заполняется согласно структуре SignerDetails
}
}
};
return Api.GenerateInvoiceCorrectionRequestXml(AuthTokenCert, BoxId, invoiceDocument.MessageId, invoiceDocument.EntityId, invoiceCorrectionRequestInfo);
}
// Отправка уведомления об уточнении счета-фактуры
public static void SendInvoiceCorrectionRequest(Document invoiceDocument)
{
var invoiceCorrectionRequest = GetInvoiceCorrectionRequest(invoiceDocument);
var messagePatchToPost = new MessagePatchToPost
{
MessageId = invoiceDocument.MessageId,
CorrectionRequests =
{
new CorrectionRequestAttachment
{
ParentEntityId = invoiceDocument.EntityId,
SignedContent = new SignedContent // файл подписи
{
Content = invoiceCorrectionRequest.Content,
// Подпись получателя
Signature = Crypt.Sign(invoiceCorrectionRequest.Content, ReadCertContent("путь к сертификату"))
}
}
}
};
Api.PostMessagePatch(AuthTokenCert, messagePatchToPost);
}
public static void Main()
{
var invoiceDocument = GetInvoice().Entities.First(entity => entity.AttachmentType == AttachmentType.Invoice);;
SendInvoiceCorrectionRequest(invoiceDocument);
}