# Документация к библиотеке ## Общий алгоритм 1. Задать настройки ККТ 2. Собрать данные о покупателе 3. Собрать данные о продавце 4. Собрать данные о предметах расчёта (товары, услуги и пр.) 5. Создать документ, добавив в него покупателя, продавца и предметы расчёта 6. Отправить документ на регистрацию: 6.1. *Необязательно:* задать `callback_url`, на который АТОЛ отправит HTTP POST о состоянии документа. 7. Запомнить `uuid` из пришедшего ответа, поскольку он пригодится для последующей проверки статуса фискализации. > Если с документом был передан `callback_url`, то ответ придёт на этот самый URL. Если с документом **НЕ** был передан `callback_url` **либо** callback от АТОЛа не пришёл в течение 300 секунд (5 минут), нужно запрашивать вручную по `uuid`, пришедшему от АТОЛа в ответ на регистрацию документа. 8. Проверить состояние документа: 8.1. взять `uuid` ответа, полученного на запрос фискализации; 8.2. отправить его в запросе состояния документа. > Данные о документе можно получить только в течение 32 суток после успешной фискализации. В зависимости от специфики бизнеса, в документах можно/нужно передавать также и другую информацию. Подробности в документациях и исходниках. ### Об отправке электронного чека покупателю После успешной фискализации документа покупатель автоматически получит уведомление **от ОФД**, который используется в связке с вашей ККТ: * **по email**, если в документе указан email клиента; * **по смс**: * если в документе указан номер телефона клиента; * если на стороне ОФД необходима и подключена услуга СМС-информирования (уточняйте подробности о своего ОФД). > Если заданы email и телефон, то ОФД отдаёт приоритет email. ## Подготовка документа 1. [Работа с клиентами (покупателями)](client.md) 2. [Работа с компанией (продавцом)](company.md) 3. [Работа с оплатами](payments.md) 4. [Работа со ставками НДС](vats.md) 5. [Работа с предметами расчёта](items.md) 6. [Работа с данными коррекции](correction_info.md) 7. [Работа с документами](documents.md) 8. [Работа с ККТ](kkt.md) 9. [Мониторинг ККТ](monitoring.md) --- Если вы нашли опечатку или какое-то несоответствие — делайте pull-request.