Invoice as a Service: генерация PDF-счетов через REST API

Invoice as a Service — это REST API для генерации профессиональных PDF-счетов из JSON-запросов.

Проект упрощает процесс выставления счетов, позволяя интегрировать его в существующие приложения. В отличие от обычных библиотек для генерации PDF, этот сервис предлагает готовый API, который может работать с несколькими способами хранения итогового документа: от загрузки на AWS S3 до отправки по электронной почте или интеграции через Zapier. Это удобно для разработчиков, которым нужно быстро настроить функционал выставления счетов без лишних усилий.

Сервис написан на языке, подходящем для работы с REST API и доступен для запуска через curl, а также может быть развернут локально для большей конфиденциальности. Обрати внимание, что проект предоставляется с уже готовым хостингом, но ты также можешь его запустить на своей инфраструктуре без оплаты. Специфических ограничений нет, но стоит учитывать, что проект может находиться на ранней стадии — внимательно тестируй его перед использованием в продакшен.

Проект Invoice as a Service предназначен для генерации профессионально выглядящих PDF-счетов. Всего лишь нужно отправить один POST HTTP-запрос с JSON-данными, и система создаст счет в формате PDF.

Куда можно отправить готовый файл

Сгенерированные счета могут быть возвращены в HTTP-ответе или экспортированы в следующие места:

  • AWS S3 (и любые совместимые хранилища)
  • FTP-сервер
  • Webhook
  • Электронная почта (SMTP, PDF в приложении)
  • Zapier: триггер "Catch hook", можно связать с Drive, Dropbox и т.д.

Как использовать

Для быстрой и простой настройки я предоставляю полностью хостинг-среду по следующему адресу: https://invoice-as-a-service.cleverapps.io. Кроме того, для повышения конфиденциальности ты можешь развернуть проект на собственном сервере абсолютно бесплатно.

Использование хостинга

Пример команды для генерации счета:

$ curl "https://invoice-as-a-service.cleverapps.io/api/invoice/generate" \
     -X POST -H "content-type: application/json" \
     -d '{
        "id": "42",
        "currency": "€",
        ...
     }'

Самостоятельный хостинг

Для локального развертывания используй следующие команды:

$ composer install
$ php artisan serve

И снова пример запроса для генерации счета:

$ curl "http://localhost:8000/api/invoice/generate" \
     -X POST -H "content-type: application/json" \
     -d '{ ... }'

Свойства запроса

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

  • id: идентификатор счета
  • currency: валюта
  • lang: язык (в данный момент поддерживается только английский)
  • date: дата создания счета (timestamp)
  • due_date: дата платежа (timestamp)
  • items: список товаров или услуг, входящих в счет
  • customer: информация о клиенте
  • company: информация о компании, выставляющей счет

Ограничения

На данный момент поддержка других языков, кроме английского, отсутствует. Также необходимо убедиться, что указанный logo_url доступен из API проекта. Ошибки при отправке почты будут возвращаться с сообщением об ошибке в формате JSON.

Открыть на GitHub: samber/invoice-as-a-service →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте