# Three Way Match Invoice

> Use when the user asks to check a supplier invoice against the purchase order and the goods receipt before payment, or says: сверь счёт с заказом и приёмкой, проверь счёт поставщика, три-стороннее сопоставление. Do not use for approving or paying the invoice: this skill only prepares the discrepancies for a person.

- Skill: `archplg/three-way-match-invoice` (Agent Skill)
- Install (CLI): `npx skillmds@latest add archplg/three-way-match-invoice`
- Raw SKILL.md: https://api.skillmd.com/api/skills/archplg/three-way-match-invoice/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Finance & Business
- License: MIT
- Author: archplg (https://skillmd.com/u/archplg)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/archplg/three-way-match-invoice

---


# Сверка счёта, заказа и приёмки

Сверяет три независимых свидетельства одной поставки и выдаёт список расхождений. Ничего не согласовывает и не оплачивает: решение принимает человек.

## Когда применять

Применяйте, когда перед оплатой нужно убедиться, что поставщик выставил счёт ровно на то, что было заказано и фактически принято.

Не применяйте, если документов меньше трёх: сверка двух документов даёт ложное спокойствие, потому что именно третий документ ловит недопоставку. В этом случае скажите об этом прямо и остановитесь.

## Что нужно на входе

1. **Счёт поставщика**: номер, дата, поставщик, строки с позициями (код, наименование, количество, цена, сумма), итог.
2. **Заказ на закупку**: номер, поставщик, строки с позициями, согласованные цены, допустимое отклонение по количеству.
3. **Акт приёмки**: номер, дата, ссылка на заказ, фактически принятые количества, отметки о браке.

Формат любой машиночитаемый: CSV, XLSX, JSON, выгрузка из учётной системы. Если пользователь дал только пути к файлам, прочитайте их. Если какого-то из трёх документов нет, не начинайте сверку: сообщите, какого документа не хватает, и попросите его.

## Как сопоставлять

Ключ сопоставления по умолчанию: **номер заказа + код позиции**. Если в счёте нет кода позиции, сопоставляйте по номеру заказа и наименованию, приведённому к нижнему регистру без двойных пробелов, и пометьте такие строки как сопоставленные по названию: это менее надёжно.

Частичные поставки — норма. Одному заказу могут соответствовать несколько приёмок и несколько счетов, поэтому сравнивайте накопленные итоги по позиции, а не отдельные строки.

Округление: расхождение суммы до 1 рубля включительно считайте округлением и не выносите в отчёт. Порог задаётся пользователем и по умолчанию равен 1.

## Шаги

1. Прочитайте три документа и приведите их к таблицам: заказ, приёмка, счёт.
2. Проверьте, что все три относятся к одному поставщику и одному заказу. Если нет, остановитесь и сообщите.
3. Постройте объединённую таблицу по ключу сопоставления: заказано, принято, выставлено.
4. Для каждой позиции вычислите три разницы: принято минус заказано, выставлено минус принято, сумма по счёту минус сумма по цене заказа.
5. Отнесите каждое расхождение к одному из типов ниже.
6. Отсортируйте расхождения по сумме влияния, от большей к меньшей.
7. Соберите отчёт в формате из раздела «Результат» и покажите его пользователю.

## Какие расхождения искать

| Тип | Признак | Кому адресовать |
|---|---|---|
| Счёт без приёмки | Позиция есть в счёте, но не принята | Снабжение: подтвердить получение |
| Недопоставка | Принято меньше заказанного | Снабжение: требование к поставщику |
| Перепоставка | Принято больше заказанного сверх допуска | Склад: решение о возврате |
| Цена выше заказа | Цена в счёте больше согласованной | Закупки: пересогласование или отказ |
| Дубль счёта | Тот же номер и поставщик уже встречался | Бухгалтерия: риск двойной оплаты |
| Брак в приёмке | Есть отметка о браке, но счёт выставлен полностью | Снабжение: удержание |

## Если что-то пошло не так

- Файл не читается или пустой: назовите файл и остановитесь, не додумывайте содержимое.
- Ключ не совпал ни по одной строке: скорее всего это документы от разных поставок. Сообщите и попросите проверить, те ли файлы.
- В документах разные валюты: остановитесь, конвертацию не выполняйте.
- Данных за период нет: скажите об этом прямо, пустой отчёт не выдавайте за успешную сверку.

## Результат

Готово, когда выдана таблица расхождений и сводка. Формат:

```
СВЕРКА: заказ 4512 · поставщик «Металлсервис» · 2026-09-11

Расхождений: 3 на сумму 84 200 ₽

| Позиция        | Заказано | Принято | В счёте | Тип                | Влияние, ₽ |
|----------------|----------|---------|---------|--------------------|-----------|
| Лист 3мм 1250  | 40       | 36      | 40      | Счёт без приёмки   |    72 000 |
| Уголок 50х50   | 100      | 100     | 100     | Цена выше заказа   |    11 400 |
| Круг 12        | 20       | 22      | 20      | Перепоставка       |       800 |

Сопоставлено позиций: 14 из 14. По названию, не по коду: 1.
К оплате без вопросов: 11 позиций на 512 300 ₽.
```

Если расхождений нет, так и напишите: «Расхождений нет, сопоставлено 14 позиций из 14», и покажите итоговую сумму. Пустой ответ недопустим.

## Чего этот скилл не делает

Не согласовывает счёт, не отправляет его в оплату, не пишет поставщику и не меняет данные в учётной системе. Все перечисленные действия необратимы и остаются за человеком.

