API ReferenceView as MarkdownOpenAPI

Invoices

View as Markdown

Invoices and price quotes the site issues for orders and subscriptions, generated from the invoice settings (business details, taxes, numbering).

Endpoints that need a token: the site owner creates it in their admin (Developers > API reference). AI assistants: how to ask the user for one.

19 endpoints in 5 parts: Invoice, Invoice Settings, Nra Audit, Recurring Invoice, AI builder.

Retrieve the can alter invoice sequence

Return boolean if invoice sequence can be alteerd.

Admin token

Needs a site admin token.

Status codes

200 401 500

GET/can_alter_invoice_sequence
curl -X GET 'http://www.multibeton-bulgaria.com/can_alter_invoice_sequence?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "stripeNumber": "example",
  "is_credit_note": false,
  "credit_note_invoice_number": "Text shown on the site.",
  "credit_note_invoice_date": "Text shown on the site.",
  "is_debit_note": false,
  "debit_note_invoice_number": "Text shown on the site.",
  "debit_note_invoice_date": "Text shown on the site.",
  "number": 1,
  "stripeInvoiceId": "example",
  "has_price_quote": false,
  "customer_name": "Example",
  "customer_address": "example",
  "customer_postal_code": "example",
  "customer_city": "example",
  "customer_country": "example",
  "customer_phone": "+359 888 123 456",
  "customer_email": "jane@example.com",
  "customer_tax_id": "example",
  "customer_vat_id": "example",
  "customer_responsible_official": "example",
  "customer_organization_name": "Example",
  "billing_customer_address": "example",
  "billing_customer_postal_code": "example",
  "billing_customer_city": "example",
  "invoice_settings": {
    "number": 0,
    "price_quote_number": "example",
    "bic": "example",
    "swift": "example",
    "tax_id": "example",
    "vat_id": "example",
    "logo": "example",
    "business_name": "Example",
    "business_name_translated": "Example",
    "responsible_official": "example",
    "responsible_official_translated": "example",
    "business_email": "jane@example.com"
  }
}

Retrieve a download invoice

Download invoice.

Public

Public - no token needed.

Path parameters
idstringRequired

The ID of the download invoice.

translatestringRequired

The download invoice's translate.

filenamestringRequired

The download invoice's filename.

Status codes

200 400 500

GET/download-invoice/:id/:translate/:filename
curl -X GET 'http://www.multibeton-bulgaria.com/download-invoice/{id}/{translate}/{filename}?ionic=true'

Delete an invoice

Delete Invoicerecord by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the invoice.

Returns

Returns an empty answer on success.

Status codes

200 400 401 404 500

DELETE/invoices/:id
curl -X DELETE 'http://www.multibeton-bulgaria.com/invoices/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

List all invoice settings

Returns the site's invoice settings, newest first unless a sort is given.

Admin token

Needs a site admin token.

Returns

Returns a list of InvoiceSettings objects.

Status codes

200 401 500

GET/invoice-settings
curl -X GET 'http://www.multibeton-bulgaria.com/invoice-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
[
  {
    "number": 1,
    "price_quote_number": "example",
    "bic": "example",
    "swift": "example",
    "tax_id": "example",
    "vat_id": "example",
    "logo": "6543210fedcba98765432100",
    "business_name": "Example",
    "business_name_translated": "Example",
    "responsible_official": "example",
    "responsible_official_translated": "example",
    "business_email": "jane@example.com",
    "company_id": "example",
    "business_address": "example",
    "business_address_translated": "example",
    "business_phone_number": "+359 888 123 456",
    "business_country": "example",
    "business_country_translated": "example",
    "footer": "example",
    "footer_translated": "example",
    "foreign_tax": 0,
    "home_tax": 0,
    "currency_symbol": "EUR",
    "_id": "6543210fedcba98765432100"
  }
]

Create an invoice setting

Create new Invoice Settings.

Admin token

Needs a site admin token.

Returns

Returns the InvoiceSettings object.

Status codes

201 400 401 500

POST/invoice-settings
curl -X POST 'http://www.multibeton-bulgaria.com/invoice-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "number": 1,
  "price_quote_number": "example",
  "bic": "example",
  "swift": "example",
  "tax_id": "example",
  "vat_id": "example",
  "logo": "6543210fedcba98765432100",
  "business_name": "Example",
  "business_name_translated": "Example",
  "responsible_official": "example",
  "responsible_official_translated": "example",
  "business_email": "jane@example.com",
  "company_id": "example",
  "business_address": "example",
  "business_address_translated": "example",
  "business_phone_number": "+359 888 123 456",
  "business_country": "example",
  "business_country_translated": "example",
  "footer": "example",
  "footer_translated": "example",
  "foreign_tax": 0,
  "home_tax": 0,
  "currency_symbol": "EUR",
  "_id": "6543210fedcba98765432100"
}

Retrieve an invoice setting

Returns one invoice setting, found by its ID.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the invoice setting.

Returns

Returns the InvoiceSettings object.

Status codes

200 401 404 500

GET/invoice-settings/:id
curl -X GET 'http://www.multibeton-bulgaria.com/invoice-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "number": 1,
  "price_quote_number": "example",
  "bic": "example",
  "swift": "example",
  "tax_id": "example",
  "vat_id": "example",
  "logo": "6543210fedcba98765432100",
  "business_name": "Example",
  "business_name_translated": "Example",
  "responsible_official": "example",
  "responsible_official_translated": "example",
  "business_email": "jane@example.com",
  "company_id": "example",
  "business_address": "example",
  "business_address_translated": "example",
  "business_phone_number": "+359 888 123 456",
  "business_country": "example",
  "business_country_translated": "example",
  "footer": "example",
  "footer_translated": "example",
  "foreign_tax": 0,
  "home_tax": 0,
  "currency_symbol": "EUR",
  "_id": "6543210fedcba98765432100"
}

Update an invoice setting

Update InvoiceSettings by id.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the invoice setting.

Returns

Returns the InvoiceSettings object.

Status codes

200 400 401 404 500

PATCH/invoice-settings/:id
curl -X PATCH 'http://www.multibeton-bulgaria.com/invoice-settings/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "number": 1,
  "price_quote_number": "example",
  "bic": "example",
  "swift": "example",
  "tax_id": "example",
  "vat_id": "example",
  "logo": "6543210fedcba98765432100",
  "business_name": "Example",
  "business_name_translated": "Example",
  "responsible_official": "example",
  "responsible_official_translated": "example",
  "business_email": "jane@example.com",
  "company_id": "example",
  "business_address": "example",
  "business_address_translated": "example",
  "business_phone_number": "+359 888 123 456",
  "business_country": "example",
  "business_country_translated": "example",
  "footer": "example",
  "footer_translated": "example",
  "foreign_tax": 0,
  "home_tax": 0,
  "currency_symbol": "EUR",
  "_id": "6543210fedcba98765432100"
}

Retrieve the NRA audit file

The audit file itself, as a windows-1251 XML attachment.

Admin token

Needs a site admin token.

Query parameters
monthstring

Only NRA audit files with this month.

yearstring

Only NRA audit files with this year.

Status codes

200 400 401 500

GET/nra-audit-file
curl -X GET 'http://www.multibeton-bulgaria.com/nra-audit-file?ionic=true&month=...&year=...' \
  -H 'Authorization: Bearer <TOKEN>'

Retrieve the NRA audit summary

Dry run - what the file would contain, without producing it.

Admin token

Needs a site admin token.

Query parameters
monthstring

Only NRA audit summaries with this month.

yearstring

Only NRA audit summaries with this year.

Status codes

200 400 401 500

GET/nra-audit-summary
curl -X GET 'http://www.multibeton-bulgaria.com/nra-audit-summary?ionic=true&month=...&year=...' \
  -H 'Authorization: Bearer <TOKEN>'

List all NRA settings

Current NRA audit-file settings, with the default payment map.

Admin token

Needs a site admin token.

Status codes

200 401 500

GET/nra-settings
curl -X GET 'http://www.multibeton-bulgaria.com/nra-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Create a NRA setting

Create or update the tenant's NRA audit-file settings.

Admin token

Needs a site admin token.

Status codes

200 400 401 500

POST/nra-settings
curl -X POST 'http://www.multibeton-bulgaria.com/nra-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

List all recurring invoices

All recurring invoices, the next due first.

Admin token

Needs a site admin token.

Returns

Returns a list of RecurringInvoice objects.

Status codes

200 401 500

GET/recurring-invoices
curl -X GET 'http://www.multibeton-bulgaria.com/recurring-invoices?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
[
  {
    "title": "Example",
    "active": true,
    "auto_send": false,
    "interval_count": 1,
    "interval_unit": "day",
    "start_date": "2026-11-04T12:00:00.000Z",
    "end_date": "2026-11-04T12:00:00.000Z",
    "due_days": 0,
    "next_run_at": "2026-11-04T12:00:00.000Z",
    "customer_name": "Example",
    "customer_address": "example",
    "customer_postal_code": "example",
    "customer_city": "example",
    "customer_country": "example",
    "customer_phone": "+359 888 123 456",
    "customer_email": "jane@example.com",
    "customer_tax_id": "example",
    "customer_vat_id": "example",
    "customer_responsible_official": "example",
    "customer_organization_name": "Example",
    "billing_customer_address": "example",
    "billing_customer_postal_code": "example",
    "billing_customer_city": "example",
    "billing_customer_country": "example"
  }
]

Create a recurring invoice

Creates a recurring invoice from the fields sent. POST /recurring-invoices - create; its first run is the start date (or the next one after now).

Admin token

Needs a site admin token.

Returns

Returns the RecurringInvoice object.

Status codes

201 400 401 500

POST/recurring-invoices
curl -X POST 'http://www.multibeton-bulgaria.com/recurring-invoices?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "active": true,
  "auto_send": false,
  "interval_count": 1,
  "interval_unit": "day",
  "start_date": "2026-11-04T12:00:00.000Z",
  "end_date": "2026-11-04T12:00:00.000Z",
  "due_days": 0,
  "next_run_at": "2026-11-04T12:00:00.000Z",
  "customer_name": "Example",
  "customer_address": "example",
  "customer_postal_code": "example",
  "customer_city": "example",
  "customer_country": "example",
  "customer_phone": "+359 888 123 456",
  "customer_email": "jane@example.com",
  "customer_tax_id": "example",
  "customer_vat_id": "example",
  "customer_responsible_official": "example",
  "customer_organization_name": "Example",
  "billing_customer_address": "example",
  "billing_customer_postal_code": "example",
  "billing_customer_city": "example",
  "billing_customer_country": "example"
}

Retrieve a recurring invoice

Returns one recurring invoice, found by its ID. GET /recurring-invoices/:id

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the recurring invoice.

Returns

Returns the RecurringInvoice object.

Status codes

200 401 404 500

GET/recurring-invoices/:id
curl -X GET 'http://www.multibeton-bulgaria.com/recurring-invoices/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "active": true,
  "auto_send": false,
  "interval_count": 1,
  "interval_unit": "day",
  "start_date": "2026-11-04T12:00:00.000Z",
  "end_date": "2026-11-04T12:00:00.000Z",
  "due_days": 0,
  "next_run_at": "2026-11-04T12:00:00.000Z",
  "customer_name": "Example",
  "customer_address": "example",
  "customer_postal_code": "example",
  "customer_city": "example",
  "customer_country": "example",
  "customer_phone": "+359 888 123 456",
  "customer_email": "jane@example.com",
  "customer_tax_id": "example",
  "customer_vat_id": "example",
  "customer_responsible_official": "example",
  "customer_organization_name": "Example",
  "billing_customer_address": "example",
  "billing_customer_postal_code": "example",
  "billing_customer_city": "example",
  "billing_customer_country": "example"
}

Update a recurring invoice

Changes the fields sent; the others stay as they are. PATCH /recurring-invoices/:id - a schedule change (or switching it on) reschedules it.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the recurring invoice.

Returns

Returns the RecurringInvoice object.

Status codes

200 400 401 404 500

PATCH/recurring-invoices/:id
curl -X PATCH 'http://www.multibeton-bulgaria.com/recurring-invoices/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "active": true,
  "auto_send": false,
  "interval_count": 1,
  "interval_unit": "day",
  "start_date": "2026-11-04T12:00:00.000Z",
  "end_date": "2026-11-04T12:00:00.000Z",
  "due_days": 0,
  "next_run_at": "2026-11-04T12:00:00.000Z",
  "customer_name": "Example",
  "customer_address": "example",
  "customer_postal_code": "example",
  "customer_city": "example",
  "customer_country": "example",
  "customer_phone": "+359 888 123 456",
  "customer_email": "jane@example.com",
  "customer_tax_id": "example",
  "customer_vat_id": "example",
  "customer_responsible_official": "example",
  "customer_organization_name": "Example",
  "billing_customer_address": "example",
  "billing_customer_postal_code": "example",
  "billing_customer_city": "example",
  "billing_customer_country": "example"
}

Delete a recurring invoice

Deletes the recurring invoice. This cannot be undone. DELETE /recurring-invoices/:id - the quotes and invoices it already made stay.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the recurring invoice.

Returns

Returns an empty answer on success.

Status codes

200 401 404 500

DELETE/recurring-invoices/:id
curl -X DELETE 'http://www.multibeton-bulgaria.com/recurring-invoices/{id}?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'

Create a recurring invoice

Creates a recurring invoice from the fields sent. auto_send), outside the schedule, which it leaves as it is.

Admin token

Needs a site admin token.

Path parameters
idstringRequired

The ID of the recurring invoice.

Returns

Returns the RecurringInvoice object.

Status codes

201 400 401 404 500

POST/recurring-invoices/:id/run
curl -X POST 'http://www.multibeton-bulgaria.com/recurring-invoices/{id}/run?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>'
Response
{
  "title": "Example",
  "active": true,
  "auto_send": false,
  "interval_count": 1,
  "interval_unit": "day",
  "start_date": "2026-11-04T12:00:00.000Z",
  "end_date": "2026-11-04T12:00:00.000Z",
  "due_days": 0,
  "next_run_at": "2026-11-04T12:00:00.000Z",
  "customer_name": "Example",
  "customer_address": "example",
  "customer_postal_code": "example",
  "customer_city": "example",
  "customer_country": "example",
  "customer_phone": "+359 888 123 456",
  "customer_email": "jane@example.com",
  "customer_tax_id": "example",
  "customer_vat_id": "example",
  "customer_responsible_official": "example",
  "customer_organization_name": "Example",
  "billing_customer_address": "example",
  "billing_customer_postal_code": "example",
  "billing_customer_city": "example",
  "billing_customer_country": "example"
}

Modify an invoice setting with AI

Use it to set up or update invoice document settings: legal business name, iban/swift for invoice PDFs, vat/tax ID, home/foreign tax rates, or invoice template field translations.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the invoice setting, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

Status codes

200 401 500

POST/modify-invoice-settings
curl -X POST 'http://www.multibeton-bulgaria.com/modify-invoice-settings?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "..." }'

Update an invoice setting with AI

Update an invoice setting from a prompt, written by the AI builder.

Admin token

Needs a site admin token.

Parameters
promptstring

What the AI should do with the invoice setting, in plain words - any language.

chatIdstring

The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.

aiVersionstring

Which version of the AI builder to use; leave it out for the current one.

item_idstring

The ID of the invoice setting to change.

Status codes

200 401 500

POST/update-invoice-settings-ai
curl -X POST 'http://www.multibeton-bulgaria.com/update-invoice-settings-ai?ionic=true' \
  -H 'Authorization: Bearer <TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{ "prompt": "...", "chatId": "...", "aiVersion": "...", "item_id": "..." }'
Response
{
  "chat_id": "6543210fedcba98765432100",
  "role": "user",
  "text": "Text shown on the site.",
  "target_url": "example-item",
  "action": "RESPONSE",
  "options": [
    "example"
  ],
  "medias": [
    {
      "media": "6543210fedcba98765432100",
      "gcs_url": "example-item",
      "gemini_uri": "example",
      "gemini_interaction_id": "example",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "products": [
    "6543210fedcba98765432101"
  ],
  "services": [
    "6543210fedcba98765432101"
  ],
  "blogposts": [
    "6543210fedcba98765432101"
  ],
  "programs": [
    "6543210fedcba98765432101"
  ],
  "suggestions": [
    {
      "text": "Text shown on the site.",
      "route": "example",
      "item_id": "6543210fedcba98765432100",
      "medias": [],
      "picture": "6543210fedcba98765432100",
      "_id": "6543210fedcba98765432100"
    }
  ],
  "is_system": false,
  "_id": "6543210fedcba98765432100",
  "updatedAt": "2026-11-04T12:00:00.000Z",
  "createdAt": "2026-11-04T12:00:00.000Z",
  "data": {
    "object": "example",
    "object_type": "example",
    "edit_summary": "example",
    "edit_diff": "example",
    "undo_record": "example",
    "hero_animation_offer": "example",
    "preview_state": "example",
    "pending_credit_cost": 0,
    "target_restore": "example",
    "media_request": "example",
    "item_request": "example",
    "reference_request": "example"
  }
}
↑↓ Navigate↵ GoEsc Close