Files
accounting/README.md

2.4 KiB

docker run --rm -p 3030:3000 gotenberg/gotenberg:8

Configuration

This application is configured using a config.json file in the root of the project. You can use the config.json.example file as a starting point.

{
  "email": {
    "smtp": {
      "host": "smtp.example.com",
      "port": 587,
      "username": "user",
      "password": "password"
    },
    "from": "from@example.com"
  },
  "pdf": {
    "hostname": "http://localhost:3030"
  },
  "gitea": {
    "url": "https://gitea.example.com",
    "token": "your-gitea-token"
  }
}

API Endpoints

POST /invoice

Creates a new invoice.

curl -X POST -H "Content-Type: application/json" -d '{
  "debtor": {
    "name": "John Doe",
    "Address": {
      "street": "Musterstrasse",
      "number": "1",
      "zipCode": "1234",
      "place": "Musterstadt",
      "country": "CH"
    },
    "contact": "john.doe@example.com"
  },
  "creditor": {
    "name": "Jane Doe",
    "Address": {
      "street": "Beispielweg",
      "number": "2",
      "zipCode": "5678",
      "place": "Beispielhausen",
      "country": "CH"
    },
    "contact": "jane.doe@example.com",
    "iban": "CH1234567890123456789"
  },
  "durationThreshold": "1h",
  "hourlyRate": 100,
  "repositories": [
    "lou-taylor/accounting"
  ]
}' http://localhost:8080/invoice

POST /invoice/send

Creates a new invoice and sends it by email.

curl -X POST -H "Content-Type: application/json" -d '{
  "to": ["john.doe@example.com"],
  "subject": "Invoice for project lou-taylor/accounting",
  "body": "Hi John,\n\nPlease find attached the invoice for the project lou-taylor/accounting.\n\nBest regards,\nJane Doe",
  "invoice": {
    "debtor": {
      "name": "John Doe",
      "Address": {
        "street": "Musterstrasse",
        "number": "1",
        "zipCode": "1234",
        "place": "Musterstadt",
        "country": "CH"
      },
      "contact": "john.doe@example.com"
    },
    "creditor": {
      "name": "Jane Doe",
      "Address": {
        "street": "Beispielweg",
        "number": "2",
        "zipCode": "5678",
        "place": "Beispielhausen",
        "country": "CH"
      },
      "contact": "jane.doe@example.com",
      "iban": "CH1234567890123456789"
    },
    "durationThreshold": "1h",
    "hourlyRate": 100,
    "repositories": [
      "lou-taylor/accounting"
    ]
  }
}' http://localhost:8080/invoice/send