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.
17 endpoints in 4 parts: Invoice, Invoice Settings, Nra Audit, Recurring Invoice.
Return boolean if invoice sequence can be alteerd. Answers { can_alter_invoice, can_alter_price_quote }: the starting numbers can only change before the first invoice or quote is issued.
Needs a site admin token.
curl -X GET 'http://hristovtintdetailng.com/can_alter_invoice_sequence?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}
}Download invoice. Answers the PDF; translate picks the second language. Reads no token.
Public - no token needed.
The ID of the download invoice.
The download invoice's translate.
The download invoice's filename.
curl -X GET 'http://hristovtintdetailng.com/download-invoice/{id}/{translate}/{filename}?ionic=true'Deletes an invoice; only the last one can be deleted, so numbering stays continuous. 400 when it is not the last one. Answers the deleted invoice.
Needs a site admin token.
The ID of the invoice.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/invoices/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'The invoice settings. The site's one record.
Needs a site admin token.
Returns a list of InvoiceSettings objects.
curl -X GET 'http://hristovtintdetailng.com/invoice-settings?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"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"
}
]Creates an invoice settings record. A site has one; update it with PATCH instead.
Needs a site admin token.
Returns the InvoiceSettings object.
curl -X POST 'http://hristovtintdetailng.com/invoice-settings?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}The invoice settings by id. 404 when there is no such record.
Needs a site admin token.
The ID of the invoice setting.
Returns the InvoiceSettings object.
curl -X GET 'http://hristovtintdetailng.com/invoice-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}Updates an invoice settings record. Applies to invoices issued from now on; issued ones keep the details they were made with. Answers the settings, or 404.
Needs a site admin token.
The ID of the invoice setting.
Returns the InvoiceSettings object.
curl -X PATCH 'http://hristovtintdetailng.com/invoice-settings/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}The audit file itself, as a windows-1251 XML attachment. For the Bulgarian revenue agency (НАП). 400 with the reasons when the period is invalid, settings are missing or a sale cannot be reported.
Needs a site admin token.
Only NRA audit files with this month.
Only NRA audit files with this year.
curl -X GET 'http://hristovtintdetailng.com/nra-audit-file?ionic=true&month=...&year=...' \ -H 'Authorization: Bearer <TOKEN>'
Dry run - what the file would contain, without producing it. Takes the same period as the file. Answers its totals and the errors that would stop it. 400 for an invalid period.
Needs a site admin token.
Only NRA audit summaries with this month.
Only NRA audit summaries with this year.
curl -X GET 'http://hristovtintdetailng.com/nra-audit-summary?ionic=true&month=...&year=...' \ -H 'Authorization: Bearer <TOKEN>'
Current NRA audit-file settings, with the default payment map. With the default payment code map, for fields not yet set.
Needs a site admin token.
curl -X GET 'http://hristovtintdetailng.com/nra-settings?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
Create or update the tenant's NRA audit-file settings. Answers the saved settings.
Needs a site admin token.
curl -X POST 'http://hristovtintdetailng.com/nra-settings?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
All recurring invoices, the next due first. Answers an array of every record.
Needs a site admin token.
Returns a list of RecurringInvoice objects.
curl -X GET 'http://hristovtintdetailng.com/recurring-invoices?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
[
{
"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"
}
]Creates a recurring invoice; its first run is the start date, or the next one after now. 400 "start_date is required". Answers 201 with it.
Needs a site admin token.
Returns the RecurringInvoice object.
curl -X POST 'http://hristovtintdetailng.com/recurring-invoices?ionic=true' \ -H 'Authorization: Bearer <TOKEN>'
{
"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"
}One recurring invoice. 404 when there is no such record.
Needs a site admin token.
The ID of the recurring invoice.
Returns the RecurringInvoice object.
curl -X GET 'http://hristovtintdetailng.com/recurring-invoices/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}Updates a recurring invoice; a schedule change, or switching it on, reschedules it. Answers it, or 404.
Needs a site admin token.
The ID of the recurring invoice.
Returns the RecurringInvoice object.
curl -X PATCH 'http://hristovtintdetailng.com/recurring-invoices/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}Deletes a recurring invoice; the quotes and invoices it already made stay. Answers the deleted record, or 404. Records that point to it are not changed.
Needs a site admin token.
The ID of the recurring invoice.
Returns an empty answer on success.
curl -X DELETE 'http://hristovtintdetailng.com/recurring-invoices/{id}?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'Creates a recurring invoice from the fields sent. auto_send), outside the schedule, which it leaves as it is.
Needs a site admin token.
The ID of the recurring invoice.
Returns the RecurringInvoice object.
curl -X POST 'http://hristovtintdetailng.com/recurring-invoices/{id}/run?ionic=true' \
-H 'Authorization: Bearer <TOKEN>'{
"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"
}