📘
Sistema de caixa (POS)
pos
sales_billing
🛡️ RLS Protected
Sistema de caixa (POS) <unk> Documentação processual e API derivada de código.
Fachliche Bestimmung: Sistema de caixa (POS) <unk> Documentação de processo e API derivada de código.
⚡ Fluxos de trabalho e ciclos de vida (0)
🗄️ Modelos de dados (9)
🔌 Pontos de partida (UI e APIs) (15)
🛡️ Regulação e conformidade
⚡ Fluxos de trabalho e ciclos de vida
Dieses Modul folgt dem standardisierten transaktionalen CRUD- und Event-Lifecycle.
🗄️ Modelos de dados
PortalInvites
portal_invites
RLS Aktiv
14 Fontes de cálculo
Tabelle portal_invites
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
customer_id
|
UUID |
Ja * | FK ➔ customers.id | Feld customer_id |
email
|
VARCHAR(320) |
Ja * | - | Feld email |
token_hash
|
VARCHAR(64) |
Ja * | - | Feld token_hash |
expires_at
|
DATETIME |
Ja * | - | Feld expires_at |
used_at
|
DATETIME |
Nein | - | Feld used_at |
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 |
PortalRequests
portal_requests
RLS Aktiv
19 Fontes de cálculo
Tabelle portal_requests
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
customer_id
|
UUID |
Ja * | FK ➔ customers.id | Feld customer_id |
portal_user_id
|
UUID |
Nein | FK ➔ portal_users.id | Feld portal_user_id |
request_type
|
VARCHAR(24) |
Ja * | - | Feld request_type |
asset_id
|
UUID |
Nein | FK ➔ assets.id | Feld asset_id |
payload
|
JSON |
Nein | - | Feld payload |
note
|
TEXT |
Nein | - | Feld note |
status
|
VARCHAR(16) |
Ja * | - | Feld status |
handled_by
|
UUID |
Nein | - | Feld handled_by |
handled_at
|
DATETIME |
Nein | - | Feld handled_at |
rejection_note
|
TEXT |
Nein | - | Feld rejection_note |
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 |
PortalSettings
portal_settings
RLS Aktiv
37 Fontes de cálculo
Tabelle portal_settings
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
enabled
|
BOOLEAN |
Ja * | - | Feld enabled |
allow_registration
|
BOOLEAN |
Ja * | - | Feld allow_registration |
registration_requires_review
|
BOOLEAN |
Ja * | - | Feld registration_requires_review |
show_products
|
BOOLEAN |
Ja * | - | Feld show_products |
show_quotes
|
BOOLEAN |
Ja * | - | Feld show_quotes |
show_contracts
|
BOOLEAN |
Ja * | - | Feld show_contracts |
show_assets
|
BOOLEAN |
Ja * | - | Feld show_assets |
show_stock
|
BOOLEAN |
Ja * | - | Feld show_stock |
show_invoices
|
BOOLEAN |
Ja * | - | Feld show_invoices |
show_tickets
|
BOOLEAN |
Ja * | - | Feld show_tickets |
show_prices
|
BOOLEAN |
Ja * | - | Feld show_prices |
show_workorders
|
BOOLEAN |
Ja * | - | Feld show_workorders |
show_projects
|
BOOLEAN |
Ja * | - | Feld show_projects |
show_service_reports
|
BOOLEAN |
Ja * | - | Feld show_service_reports |
show_appointments
|
BOOLEAN |
Ja * | - | Feld show_appointments |
show_returns
|
BOOLEAN |
Ja * | - | Feld show_returns |
show_shipments
|
BOOLEAN |
Ja * | - | Feld show_shipments |
show_rental
|
BOOLEAN |
Ja * | - | Feld show_rental |
show_tasks
|
BOOLEAN |
Ja * | - | Feld show_tasks |
allow_rental_booking
|
BOOLEAN |
Ja * | - | Feld allow_rental_booking |
return_allow_customer_return
|
BOOLEAN |
Ja * | - | Feld return_allow_customer_return |
return_allow_consignment_return
|
BOOLEAN |
Ja * | - | Feld return_allow_consignment_return |
return_allow_stored_goods_return
|
BOOLEAN |
Ja * | - | Feld return_allow_stored_goods_return |
return_allow_rental_return
|
BOOLEAN |
Ja * | - | Feld return_allow_rental_return |
return_window_days
|
INTEGER |
Nein | - | Feld return_window_days |
return_auto_approve
|
BOOLEAN |
Ja * | - | Feld return_auto_approve |
allow_document_downloads
|
BOOLEAN |
Ja * | - | Feld allow_document_downloads |
welcome_text
|
TEXT |
Nein | - | Feld welcome_text |
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 |
PortalUsers
portal_users
RLS Aktiv
16 Fontes de cálculo
Tabelle portal_users
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
customer_id
|
UUID |
Ja * | FK ➔ customers.id | Feld customer_id |
email
|
VARCHAR(320) |
Ja * | - | Feld email |
name
|
VARCHAR(255) |
Ja * | - | Feld name |
password_hash
|
VARCHAR(255) |
Ja * | - | Feld password_hash |
status
|
VARCHAR(16) |
Ja * | - | Feld status |
language
|
VARCHAR(10) |
Ja * | - | Feld language |
last_login_at
|
DATETIME |
Nein | - | Feld last_login_at |
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 |
PosDailyClosings
pos_daily_closings
RLS Aktiv
25 Fontes de cálculo
Tabelle pos_daily_closings
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
register_id
|
UUID |
Ja * | FK ➔ pos_registers.id | Feld register_id |
closing_number
|
INTEGER |
Ja * | - | Feld closing_number |
closing_date
|
DATE |
Ja * | - | Feld closing_date |
opening_balance
|
NUMERIC(14, 2) |
Ja * | - | Feld opening_balance |
total_sales_gross
|
NUMERIC(14, 2) |
Ja * | - | Feld total_sales_gross |
total_sales_net
|
NUMERIC(14, 2) |
Ja * | - | Feld total_sales_net |
total_tax_19
|
NUMERIC(14, 2) |
Ja * | - | Feld total_tax_19 |
total_tax_7
|
NUMERIC(14, 2) |
Ja * | - | Feld total_tax_7 |
total_cash_payments
|
NUMERIC(14, 2) |
Ja * | - | Feld total_cash_payments |
total_card_payments
|
NUMERIC(14, 2) |
Ja * | - | Feld total_card_payments |
total_deposits
|
NUMERIC(14, 2) |
Ja * | - | Feld total_deposits |
total_withdrawals
|
NUMERIC(14, 2) |
Ja * | - | Feld total_withdrawals |
calculated_cash_balance
|
NUMERIC(14, 2) |
Ja * | - | Feld calculated_cash_balance |
actual_cash_counted
|
NUMERIC(14, 2) |
Ja * | - | Feld actual_cash_counted |
cash_difference
|
NUMERIC(14, 2) |
Ja * | - | Feld cash_difference |
is_exported_to_accounting
|
BOOLEAN |
Ja * | - | Feld is_exported_to_accounting |
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 |
PosHeldSales
pos_held_sales
RLS Aktiv
12 Fontes de cálculo
Tabelle pos_held_sales
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
register_id
|
UUID |
Ja * | FK ➔ pos_registers.id | Feld register_id |
label
|
VARCHAR(120) |
Nein | - | Feld label |
cart_snapshot
|
JSONB |
Ja * | - | Feld cart_snapshot |
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 |
PosRegisters
pos_registers
RLS Aktiv
17 Fontes de cálculo
Tabelle pos_registers
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
register_number
|
VARCHAR(32) |
Ja * | - | Feld register_number |
name
|
VARCHAR(128) |
Ja * | - | Feld name |
status
|
VARCHAR(48) |
Ja * | - | Feld status |
warehouse_id
|
UUID |
Nein | FK ➔ locations.id | Feld warehouse_id |
tse_client_id
|
VARCHAR(128) |
Nein | - | Feld tse_client_id |
tse_serial_number
|
VARCHAR(128) |
Nein | - | Feld tse_serial_number |
tse_provider
|
VARCHAR(64) |
Ja * | - | Feld tse_provider |
current_cash_balance
|
NUMERIC(14, 2) |
Ja * | - | Feld current_cash_balance |
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 |
PosTransactionItems
pos_transaction_items
RLS Aktiv
17 Fontes de cálculo
Tabelle pos_transaction_items
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
transaction_id
|
UUID |
Ja * | FK ➔ pos_transactions.id | Feld transaction_id |
product_id
|
UUID |
Nein | FK ➔ products.id | Feld product_id |
position
|
INTEGER |
Ja * | - | Feld position |
item_name
|
VARCHAR(255) |
Ja * | - | Feld item_name |
quantity
|
NUMERIC(12, 3) |
Ja * | - | Feld quantity |
unit_price
|
NUMERIC(14, 2) |
Ja * | - | Feld unit_price |
net_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld net_amount |
tax_rate
|
NUMERIC(5, 2) |
Ja * | - | Feld tax_rate |
tax_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld tax_amount |
gross_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld gross_amount |
discount_percent
|
NUMERIC(5, 2) |
Ja * | - | Feld discount_percent |
discount_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld discount_amount |
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 |
PosTransactions
pos_transactions
RLS Aktiv
32 Fontes de cálculo
Tabelle pos_transactions
| Feldname | Tipo de dados | Oficácia | Schlüssel | Importância profissional |
|---|---|---|---|---|
register_id
|
UUID |
Ja * | FK ➔ pos_registers.id | Feld register_id |
customer_id
|
UUID |
Nein | FK ➔ customers.id | Feld customer_id |
invoice_id
|
UUID |
Nein | FK ➔ invoices.id | Feld invoice_id |
transaction_number
|
VARCHAR(64) |
Ja * | - | Feld transaction_number |
receipt_number
|
VARCHAR(64) |
Ja * | - | Feld receipt_number |
transaction_type
|
VARCHAR(48) |
Ja * | - | Feld transaction_type |
gross_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld gross_amount |
net_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld net_amount |
tax_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld tax_amount |
payment_method
|
VARCHAR(48) |
Ja * | - | Feld payment_method |
given_amount
|
NUMERIC(14, 2) |
Nein | - | Feld given_amount |
change_amount
|
NUMERIC(14, 2) |
Nein | - | Feld change_amount |
discount_amount
|
NUMERIC(14, 2) |
Ja * | - | Feld discount_amount |
secondary_payment_method
|
VARCHAR(48) |
Nein | - | Feld secondary_payment_method |
secondary_payment_amount
|
NUMERIC(14, 2) |
Nein | - | Feld secondary_payment_amount |
tse_transaction_number
|
BIGINT |
Nein | - | Feld tse_transaction_number |
tse_signature_counter
|
BIGINT |
Nein | - | Feld tse_signature_counter |
tse_signature_value
|
TEXT |
Nein | - | Feld tse_signature_value |
tse_algorithm
|
VARCHAR(32) |
Nein | - | Feld tse_algorithm |
tse_public_key
|
TEXT |
Nein | - | Feld tse_public_key |
tse_started_at
|
DATETIME |
Nein | - | Feld tse_started_at |
tse_finished_at
|
DATETIME |
Nein | - | Feld tse_finished_at |
tse_qr_code_payload
|
TEXT |
Nein | - | Feld tse_qr_code_payload |
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 |
🔌 Pontos de partida (UI e APIs)
| Art | Método | Ponto final / caminho | Titel & Zweck | Recurso |
|---|---|---|---|---|
| ⚡ REST API | DELETE | /api/v1/pos/held-sales/{held_sale_id} |
discard_held_sale
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | GET | /api/v1/pos/products/search |
search_products
Semantic binding: inventory_only; mutation=False
|
pos
|
| ⚡ REST API | GET | /api/v1/pos/registers |
list_registers
Semantic binding: inventory_only; mutation=False
|
pos
|
| ⚡ REST API | GET | /api/v1/pos/registers/{register_id} |
get_register
Semantic binding: inventory_only; mutation=False
|
pos
|
| ⚡ REST API | GET | /api/v1/pos/registers/{register_id}/held-sales |
list_held_sales
Semantic binding: inventory_only; mutation=False
|
pos
|
| ⚡ REST API | GET | /api/v1/pos/transactions/{transaction_id} |
get_transaction
Semantic binding: inventory_only; mutation=False
|
pos
|
| ⚡ REST API | GET | /pos |
pos_terminal_page
Semantic binding: inventory_only; mutation=False
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/held-sales/{held_sale_id}/resume |
resume_held_sale
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers |
create_register
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers/{register_id}/cash-movement |
cash_movement
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers/{register_id}/checkout |
Ação de pagamento
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers/{register_id}/close |
close_register
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers/{register_id}/daily-closing |
daily_closing
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers/{register_id}/held-sales |
hold_sale
Semantic binding: operator_surface; mutation=True
|
pos
|
| ⚡ REST API | POST | /api/v1/pos/registers/{register_id}/open |
open_register
Semantic binding: operator_surface; mutation=True
|
pos
|
🛡️ Regulação e conformidade
Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:
- - a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a) a)
- A solução de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados de dados