Centurio Documentación de sistemas y módulos
🏛️ Arquitectura de la plataforma 🔑 Login
🏠 Todos los módulos / sales_billing / Cuentas y créditos
💶

Cuentas y créditos

invoices sales_billing 🛡️ RLS Protected

Flujo de venta de extremo a extremo: cálculo, aceptación de ofertas, transformación de proyectos, facturación y servicios de recuerdo.

Fachliche Bestimmung: El sistema de facturación y distribución de las ofertas se recoge, calcula y envía. Cuando se acepta, el sistema se casca automáticamente en proyecto y en en encomenda de estado de trabajo y en compras (Strecke o BTO).

⚡ Flujos de trabajo y ciclos de vida

Capacidad de trabajo de cotización en efectivo quote_to_cash_cascade

Desde la presupuesto hasta la aceptación, la conversión automática de la orden, la entrega parcial hasta la facturación final.

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
Proyecto
Recopilación de posiciones, descuentos, objetivos de pago y direcciones de entrega.
Aktionen: Calculación de precios
2. SENT
Enviado
Generación de PDF y envío a los clientes por correo electrónico o portal.
Aktionen: Supervisión del plazo de validez
3. ACCEPTED
El artículo 2
La Comisión aprobó el proyecto de ley de la Unión Europea en el marco de la aplicación del Reglamento (UE) n.o 1295/2013 del Consejo.
Aktionen: ejecutar conver_to_project
4. CONVERTED
Cáscate
Generación automática de pedidos de trabajo, orden de trayecto o reserva de materiales.
Aktionen: Los sistemas de control de las emisiones de gases de efecto invernadero
5. INVOICED
Consignado
La Comisión ha adoptado una decisión en el marco de la cual se ha adoptado una decisión de la Comisión.
Aktionen: Generar estables de contabilidad para DATEV

En el caso de las empresas de la Unión, el importe de la ayuda se calcula en el importe de la ayuda. plan:command_billing_agent

Plan durable comprobado (durable_plan), inicio: manual_command.

1. billing_agent
billing_agent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aktionen: billing_agent

En el caso de los Estados miembros, el importe de los gastos de la empresa se calcula en el importe de los gastos de la empresa. plan:command_billing_general_agent

Plan durable comprobado (durable_plan), inicio: manual_command.

1. billing_general_agent
billing_general_agent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aktionen: billing_general_agent

En el caso de los productos de la industria de la industria de la Unión, el producto de la industria de la industria de la Unión debe ser utilizado en el mercado de la Unión. plan:command_dunning_agent

Plan durable comprobado (durable_plan), inicio: manual_command.

1. dunning_agent
dunning_agent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aktionen: dunning_agent

Envío de las autoridades competentes plan:invoice_lifecycle

Plan durable verificado (durable_plan), inicio: dominio_event.

1. payment_matching_agent
payment_matching_agent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aktionen: payment_matching_agent
2. dunning_agent
dunning_agent
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aktionen: dunning_agent

Trabajo adicional status:extra_work

Las operaciones de la máquina de estado observable (solo observable) no se obligan a realizar.

1. detected
detectado
Estado <unk>detectado<unk> de la máquina de estado
2. accepted
Acogido
Estado <unk>acceptado<unk> de la máquina de estado
3. rejected
Rechazado
Estado <unk> rechazado <unk> de la máquina de estado
4. quoted
Citación
Estado <unk>citado <unk> de la máquina de estado
5. invoiced
facturados
Estado de la máquina de estado

El importe de la ayuda status:invoice

Las operaciones de la máquina de estado observable (solo observable) no se obligan a realizar.

1. draft
proyecto
Estatus <unk>proyecto <unk> de la máquina de estado GT11_0__.
2. proforma
de la misma forma
Estado de la máquina de estado <unk>proforma <unk>GT11_0__.
3. issued
de las
Estado <unk>emissado<unk> de la máquina de estado GT11_0__.
4. sent
Enviado
Estado de la máquina de estado <unk>sent<unk> GT11_0__.
5. partially_paid
partially_paid
Estado <unk>partialmente_pagado<unk> de la máquina de estado factura.
6. paid
A los
Estado <unk>pagado<unk> de la máquina de estado factura.
7. overdue
tardío
Estado <unk>excedente <unk> de la máquina de estado GT11_0__.
8. cancelled
cancelado
Status «cancelled» der Zustandsmaschine Rechnung.

Transporte de peppol status:peppol_transmission

Las operaciones de la máquina de estado observable (solo observable) no se obligan a realizar.

1. draft
proyecto
Estatus <unk>proyecto <unk> de la máquina de estado Peppol
2. queued
En la cola
Estado de la máquina de transmisión de Peppol.
3. transmitting
Transmitir
Estado de la máquina de transmisión de Peppol.
4. delivered
Entrega
Estado <unk>delivered<unk> de la máquina de transmisión de Peppol.
5. rejected
Rechazado
Estado <unk> rechazado <unk> de la máquina de transmisión de Peppol.
6. failed
No
Estado de la máquina de transmisión de Peppol.

🗄️ Modelos de datos y campos

InvoiceItems invoice_items RLS Aktiv
34 Cálculos y columnas

Tabelle invoice_items

Feldname Tipo de datos Obligado Schlüssel Importancia profesional
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 Cálculos y columnas

Tabelle invoices

Feldname Tipo de datos Obligado Schlüssel Importancia profesional
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

🔌 Puntos de inicio (UI y API)

Art El método Punto final / camino Titel & Zweck Reacción
⚡ REST API DELETE /api/v1/invoices/{invoice_id}
delete_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API DELETE /api/v1/invoices/{invoice_id}/items/{item_id:uuid}
delete_invoice_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API DELETE /api/v1/pricelists/{pricelist_id}/items/{item_id}
delete_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API GET /api/v1/invoices
list_invoices
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}
get_invoice
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/credit-remaining
get_credit_remaining
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/delivery-note.pdf
get_invoice_delivery_note
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/html
get_invoice_html
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/payments
list_invoice_payments
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/pdf
get_invoice_pdf
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/invoices/{invoice_id}/zugferd-xml
get_zugferd_xml
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/invoices/{invoice_id}/ubl
get_invoice_peppol_ubl
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/lookup
lookup_peppol_recipient
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/schemes
list_peppol_schemes
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/transmissions
list_peppol_transmissions
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/peppol/transmissions/{transmission_id}
get_peppol_transmission
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/pricelists
list_pricelists
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/pricelists/{pricelist_id}/items
list_items
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /api/v1/pricelists/{pricelist_id}/resolve
resolve_price
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /invoices
invoices_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /invoices/new
invoice_create_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /invoices/{invoice_id}
invoice_detail_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /portal/{slug}/rechnungen
invoices_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /portal/{slug}/rechnungen/{invoice_id}/pdf
invoice_pdf_download
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /pricelists
pricelists_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /pricelists/new
pricelists_new_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API GET /pricelists/{pricelist_id}/edit
pricelists_edit_page
Semantic binding: inventory_only; mutation=False
invoices
⚡ REST API PATCH /api/v1/invoices/{invoice_id}
update_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API PATCH /api/v1/invoices/{invoice_id}/items/reorder
reorder_invoice_items
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API PATCH /api/v1/invoices/{invoice_id}/items/{item_id:uuid}
update_invoice_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API PATCH /api/v1/pricelists/{pricelist_id}
update_pricelist
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices
create_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/collective-credit-note
create_collective_credit_note
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/final-from-partials
create_final_invoice_from_partials
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/from-work-order/{work_order_id}
create_invoice_from_work_order
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/convert-final
convert_to_final_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/convert-proforma
convert_to_proforma
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/credit-note
create_credit_note
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/dunning
escalate_invoice_dunning
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/escalate-ticket
escalate_invoice_to_ticket
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/issue
issue_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/items
add_invoice_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/partial-credit-note
create_partial_credit_note
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/payments
register_invoice_payment
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/send
send_invoice
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/invoices/{invoice_id}/stock-issue
create_invoice_stock_issue
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/peppol/invoices/{invoice_id}/transmit
transmit_invoice_via_peppol
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/pricelists
create_pricelist
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /api/v1/pricelists/{pricelist_id}/items
add_item
Semantic binding: operator_surface; mutation=True
invoices
⚡ REST API POST /portal/{slug}/rechnungen/{invoice_id}/gutschrift-anfordern
credit_note_request
Semantic binding: operator_surface; mutation=True
invoices
🖥️ WEB-UI GET /quotes
Revisar las ofertas
Lista de todas las ofertas con filtros de estado y insignia de trayectoria
quotes:read
⚡ REST API POST /api/v1/quotes/{id}/convert-to-workorder
La ejecución de las órdenes
Cascada de las empresas en las que se ha adoptado la Directiva
quotes:write

🛡️ Regulación y cumplimiento

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • El número de las empresas que se encuentran en el mercado de la Unión debe ser el número de las empresas que se encuentran en el mercado de la Unión.
  • UStG §14 (Datos obligatorios de facturas)
  • ZUGFeRD 2.2 / XRechnung (PEPPOL)
Modulos vinculados:
➔ dropship ➔ customers ➔ workorders ➔ purchasing ➔ accounting