Centurio System and module documentation
๐Ÿ›๏ธ Platform architecture ๐Ÿ”‘ Login
๐Ÿ  All modules / sales_billing / Invoices and credits
๐Ÿ’ถ

Invoices and credits

invoices sales_billing ๐Ÿ›ก๏ธ RLS Protected

End-to-end sales flow: calculation, acceptance of offers, project conversion, accounting and reminder.

Fachliche Bestimmung: The central part of the distribution and invoicing process. Offers are collected, calculated and sent. When accepted, the system automatically cascades into project and works state order and procurement (Strecke or BTO).

โšก Workflows and life cycles

The following information shall be provided: quote_to_cash_cascade

From the quote to the acceptance, automatic order conversion, partial delivery to final settlement.

stateDiagram-v2 [*] --> DRAFT: Angebot anlegen DRAFT --> SENT: Versenden an Kunden SENT --> ACCEPTED: Kunde bestรคtigt Angebot ACCEPTED --> CONVERTED: convert_to_project() state CONVERTED { direction LR WorkOrder: Arbeitsauftrag Dropship: Streckenbestellung BTO: Einkaufslager } CONVERTED --> INVOICED: Rechnung erstellen (ZUGFeRD/DATEV) INVOICED --> PAID: Zahlungseingang (SEPA/Bank) PAID --> [*]
1. DRAFT
Draft
The Commission shall adopt delegated acts in accordance with Article 21 of Regulation (EC) No 1272/2009.
Aktionen: Price calculation
2. SENT
Shipment
PDF generation and dispatch to customers by e-mail or portal.
Aktionen: Monitoring of the period of validity
3. ACCEPTED
The Commission
The _GT19_1__ accepts the _GT13_0__ (online or in the ERP).
Aktionen: to execute convert_to_project
4. CONVERTED
Other, of a kind used for the manufacture of goods
Automatic generation of work orders, ordering of routes or reservation of materials.
Aktionen: Other electrical equipment
5. INVOICED
Manufacture from materials of heading 810
The Commission shall adopt the following measures:
Aktionen: The following information shall be provided:

The following is the list of the following: plan:command_billing_agent

The following is the list of the main functions of the system:

1. billing_agent
billing_agent
The following is the list of the products:
Aktionen: billing_agent

User order: billing general agent plan:command_billing_general_agent

The following is the list of the main functions of the system:

1. billing_general_agent
billing_general_agent
The following is the list of the products:
Aktionen: billing_general_agent

Other information: plan:command_dunning_agent

The following is the list of the main functions of the system:

1. dunning_agent
dunning_agent
The following is the list of the products:
Aktionen: dunning_agent

The following information shall be provided: plan:invoice_lifecycle

The following is the list of the types of data that are used for the purpose of the report:

1. payment_matching_agent
payment_matching_agent
The following is the list of the products:
Aktionen: payment_matching_agent
2. dunning_agent
dunning_agent
The following is the list of the products:
Aktionen: dunning_agent

Other work status:extra_work

The following information is provided by the Commission on the basis of the information provided by the Member States:

1. detected
detected
Status of the state machine
2. accepted
accepted
Status of the condition machine
3. rejected
Rejected
Status of the condition machine
4. quoted
Cited
Status of the condition machine
5. invoiced
invoiced
Status of the condition machine

Other status:invoice

The following information is provided by the Commission on the basis of the information provided by the Member States:

1. draft
Draft
State of the machine <unk>draft <unk> state of the machine GT11_0__.
2. proforma
the following:
The following conditions shall apply:
3. issued
issued
Status of the conditioning machine <unk>issued <unk>
4. sent
(c)
The following information is provided for the purpose of this Regulation:
5. partially_paid
partially_paid
Status of the state machine <unk>partially_paid <unk> GT11_0__.
6. paid
Payment
Status of the conditioning machine <unk>paid <unk> GT11_0__.
7. overdue
late
The condition of the machine is <unk> over______________________________________________________________________________________________________________________
8. cancelled
cancelled
Status of the state machine <unk>cancelled<unk> invoice.

Transmission of peppol status:peppol_transmission

The following information is provided by the Commission on the basis of the information provided by the Member States:

1. draft
Draft
The Commission shall adopt the following measures:
2. queued
Counting
The status of the peppol transmission machine.
3. transmitting
transmitting
State of the transmission of the State machine Peppol transmission.
4. delivered
Delivered
The status of the peppol transmission machine
5. rejected
Rejected
The status of the peppol transmission machine
6. failed
Failed
The status of the Peppol transmission machine

๐Ÿ—„๏ธ Data models and fields

InvoiceItems invoice_items RLS Aktiv
34 Fields and columns

Tabelle invoice_items

Feldname Type of data The Commission Schlรผssel The technical significance
invoice_id UUID Ja * FK โž” invoices.id Feld invoice_id
position INTEGER Ja * - Feld position
line_type VARCHAR(48) Ja * - Feld line_type
product_id UUID Nein FK โž” products.id Feld product_id
project_id UUID Nein FK โž” projects.id Feld project_id
work_order_id UUID Nein FK โž” work_orders.id Feld work_order_id
accounting_category_id UUID Nein FK โž” accounting_categories.id Feld accounting_category_id
cost_type_id UUID Nein FK โž” cost_types.id Feld cost_type_id
cost_center VARCHAR(64) Nein - Feld cost_center
cost_object VARCHAR(64) Nein - Feld cost_object
description TEXT Ja * - Feld description
quantity NUMERIC(14, 4) Ja * - Feld quantity
unit VARCHAR(16) Ja * - Feld unit
unit_price NUMERIC(14, 2) Ja * - Feld unit_price
discount_percent NUMERIC(5, 2) Ja * - Feld discount_percent
tax_rate NUMERIC(6, 4) Ja * - Feld tax_rate
tax_regime VARCHAR(32) Ja * - Feld tax_regime
purchase_price NUMERIC(14, 2) Nein - Feld purchase_price
margin_amount NUMERIC(14, 2) Nein - Feld margin_amount
margin_tax_amount NUMERIC(14, 2) Nein - Feld margin_tax_amount
net_amount NUMERIC(14, 2) Ja * - Feld net_amount
tax_amount NUMERIC(14, 2) Ja * - Feld tax_amount
gross_amount NUMERIC(14, 2) Ja * - Feld gross_amount
source_work_log_id UUID Nein FK โž” work_logs.id Feld source_work_log_id
source_expense_item_id UUID Nein FK โž” expense_items.id Feld source_expense_item_id
tracking_entries JSONB Ja * - Feld tracking_entries
deducted_invoice_id UUID Nein FK โž” invoices.id Feld deducted_invoice_id
purchase_item_id UUID Nein FK โž” purchase_items.id Feld purchase_item_id
source_invoice_item_id UUID Nein FK โž” invoice_items.id Feld source_invoice_item_id
id UUID Nein PK Feld id
tenant_id UUID Ja * FK โž” organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
metadata JSONB Ja * - Feld metadata
Invoices invoices RLS Aktiv
65 Fields and columns

Tabelle invoices

Feldname Type of data The Commission Schlรผssel The technical significance
invoice_type VARCHAR(48) Ja * - Feld invoice_type
invoice_subtype VARCHAR(48) Ja * - Feld invoice_subtype
invoice_number VARCHAR(64) Ja * - Feld invoice_number
customer_id UUID Nein FK โž” customers.id Feld customer_id
bill_to_customer_id UUID Nein FK โž” customers.id Feld bill_to_customer_id
supplier_id UUID Nein FK โž” suppliers.id Feld supplier_id
project_id UUID Nein FK โž” projects.id Feld project_id
work_order_id UUID Nein FK โž” work_orders.id Feld work_order_id
accounting_category_id UUID Nein FK โž” accounting_categories.id Feld accounting_category_id
cost_type_id UUID Nein FK โž” cost_types.id Feld cost_type_id
cost_center VARCHAR(64) Nein - Feld cost_center
cost_object VARCHAR(64) Nein - Feld cost_object
original_invoice_id UUID Nein FK โž” invoices.id Feld original_invoice_id
quote_id UUID Nein FK โž” quotes.id Feld quote_id
purchase_id UUID Nein FK โž” purchases.id Feld purchase_id
goods_receipt_id UUID Nein FK โž” goods_receipts.id Feld goods_receipt_id
contract_id UUID Nein - Feld contract_id
document_id UUID Nein FK โž” documents.id Feld document_id
issue_date DATE Nein - Feld issue_date
due_date DATE Nein - Feld due_date
sent_at DATETIME Nein - Feld sent_at
payment_terms VARCHAR(128) Nein - Feld payment_terms
payment_term_code VARCHAR(32) Nein - Feld payment_term_code
notes TEXT Nein - Feld notes
reference VARCHAR(128) Nein - Feld reference
delivery_date DATE Nein - Feld delivery_date
currency VARCHAR(3) Ja * - Feld currency
subtotal NUMERIC(14, 2) Ja * - Feld subtotal
discount_total NUMERIC(14, 2) Ja * - Feld discount_total
net_amount NUMERIC(14, 2) Ja * - Feld net_amount
tax_amount NUMERIC(14, 2) Ja * - Feld tax_amount
gross_amount NUMERIC(14, 2) Ja * - Feld gross_amount
paid_amount NUMERIC(14, 2) Ja * - Feld paid_amount
residual_amount NUMERIC(14, 2) Ja * - Feld residual_amount
skonto_days INTEGER Nein - Feld skonto_days
skonto_percent NUMERIC(5, 2) Nein - Feld skonto_percent
skonto_date DATE Nein - Feld skonto_date
skonto_amount NUMERIC(14, 2) Nein - Feld skonto_amount
tax_breakdown JSONB Nein - Feld tax_breakdown
tax_exemption_reason VARCHAR(255) Nein - Feld tax_exemption_reason
dunning_level INTEGER Ja * - Feld dunning_level
dunning_date DATE Nein - Feld dunning_date
dunning_fee NUMERIC(14, 2) Ja * - Feld dunning_fee
bank_name VARCHAR(255) Nein - Feld bank_name
iban VARCHAR(50) Nein - Feld iban
bic VARCHAR(20) Nein - Feld bic
billing_mode VARCHAR(48) Ja * - Feld billing_mode
cumulative_sequence INTEGER Nein - Feld cumulative_sequence
previous_invoices_net NUMERIC(14, 2) Ja * - Feld previous_invoices_net
total_performance_net NUMERIC(14, 2) Ja * - Feld total_performance_net
retention_rate NUMERIC(5, 2) Ja * - Feld retention_rate
retention_amount NUMERIC(14, 2) Ja * - Feld retention_amount
measurement_id UUID Nein FK โž” project_measurements.id Feld measurement_id
status VARCHAR(48) Ja * - Feld status
external_accounting_id VARCHAR(128) Nein - Feld external_accounting_id
idempotency_key VARCHAR(128) Nein - Feld idempotency_key
id UUID Nein PK Feld id
tenant_id UUID Ja * FK โž” organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata

๐Ÿ”Œ The Commission shall adopt delegated acts in accordance with Article 21 of this Regulation.

Art The method Endpoint / path Titel & Zweck The Commission shall adopt the following:
โšก REST API DELETE /api/v1/invoices/{invoice_id}
delete_invoice
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API DELETE /api/v1/invoices/{invoice_id}/items/{item_id:uuid}
delete_invoice_item
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API DELETE /api/v1/pricelists/{pricelist_id}/items/{item_id}
delete_item
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API GET /api/v1/invoices
list_invoices
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}
get_invoice
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}/credit-remaining
get_credit_remaining
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}/delivery-note.pdf
get_invoice_delivery_note
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}/html
get_invoice_html
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}/payments
list_invoice_payments
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}/pdf
get_invoice_pdf
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/invoices/{invoice_id}/zugferd-xml
get_zugferd_xml
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/peppol/invoices/{invoice_id}/ubl
get_invoice_peppol_ubl
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/peppol/lookup
lookup_peppol_recipient
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/peppol/schemes
list_peppol_schemes
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/peppol/transmissions
list_peppol_transmissions
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/peppol/transmissions/{transmission_id}
get_peppol_transmission
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/pricelists
list_pricelists
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/pricelists/{pricelist_id}/items
list_items
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /api/v1/pricelists/{pricelist_id}/resolve
resolve_price
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /invoices
invoices_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /invoices/new
invoice_create_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /invoices/{invoice_id}
invoice_detail_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /portal/{slug}/rechnungen
invoices_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /portal/{slug}/rechnungen/{invoice_id}/pdf
invoice_pdf_download
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /pricelists
pricelists_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /pricelists/new
pricelists_new_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API GET /pricelists/{pricelist_id}/edit
pricelists_edit_page
Semantic binding: not_evaluated; mutation=False
invoices
โšก REST API PATCH /api/v1/invoices/{invoice_id}
update_invoice
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API PATCH /api/v1/invoices/{invoice_id}/items/reorder
reorder_invoice_items
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API PATCH /api/v1/invoices/{invoice_id}/items/{item_id:uuid}
update_invoice_item
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API PATCH /api/v1/pricelists/{pricelist_id}
update_pricelist
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices
create_invoice
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/collective-credit-note
create_collective_credit_note
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/final-from-partials
create_final_invoice_from_partials
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/from-work-order/{work_order_id}
create_invoice_from_work_order
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/convert-final
convert_to_final_invoice
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/convert-proforma
convert_to_proforma
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/credit-note
create_credit_note
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/dunning
escalate_invoice_dunning
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/escalate-ticket
escalate_invoice_to_ticket
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/issue
issue_invoice
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/items
add_invoice_item
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/partial-credit-note
create_partial_credit_note
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/payments
register_invoice_payment
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/send
send_invoice
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/invoices/{invoice_id}/stock-issue
create_invoice_stock_issue
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/peppol/invoices/{invoice_id}/transmit
transmit_invoice_via_peppol
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/pricelists
create_pricelist
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /api/v1/pricelists/{pricelist_id}/items
add_item
Semantic binding: not_evaluated; mutation=True
invoices
โšก REST API POST /portal/{slug}/rechnungen/{invoice_id}/gutschrift-anfordern
credit_note_request
Semantic binding: not_evaluated; mutation=True
invoices
๐Ÿ–ฅ๏ธ WEB-UI GET /quotes
The Commission shall adopt the following measures:
List of all offers with status filters and track badge
quotes:read
โšก REST API POST /api/v1/quotes/{id}/convert-to-workorder
The Commission shall adopt the following:
Cascading accepted quote in project & WorkOrder
quotes:write

๐Ÿ›ก๏ธ Regulatory and compliance

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • The number of the data set shall be the same as the number of the data set.
  • UStG ยง14 (compulsory declaration of accounts)
  • The Commission has also adopted a proposal for a regulation on the
Connected modules:
โž” dropship โž” customers โž” workorders โž” purchasing โž” accounting