UNPKG

zatca-xml-ts

Version:

An implementation of Saudi Arabia ZATCA's E-Invoicing requirements, processes, and standards.

74 lines 2.21 kB
import { EGSUnitInfo } from "../egs"; export declare enum ZATCAPaymentMethods { CASH = "10", CREDIT = "30", BANK_ACCOUNT = "42", BANK_CARD = "48" } export declare enum ZATCAInvoiceTypes { INVOICE = "388", DEBIT_NOTE = "383", CREDIT_NOTE = "381" } export interface ZATCAInvoiceLineItemDiscount { amount: number; reason: string; } export interface ZATCAInvoiceLineItemTax { percent_amount: number; } interface InvoiceLineItem { id: string; name: string; quantity: number; tax_exclusive_price: number; other_taxes?: ZATCAInvoiceLineItemTax[]; discounts?: ZATCAInvoiceLineItemDiscount[]; } declare type ZeroTaxLineItem = InvoiceLineItem & { VAT_percent: 0; vat_category: { code: "O" | "Z" | "E"; reason_code?: string; reason?: string; }; }; declare type LineItem = InvoiceLineItem & { VAT_percent: 0.15 | 0.05; }; export declare type ZATCAInvoiceLineItem = LineItem | ZeroTaxLineItem; export interface ZATCAInvoicCancelation { canceled_serial_invoice_number: string; payment_method: ZATCAPaymentMethods; reason: string; } interface ZatcaInvoice { egs_info: EGSUnitInfo; invoice_counter_number: number; invoice_serial_number: string; issue_date: string; issue_time: string; previous_invoice_hash: string; line_items: ZATCAInvoiceLineItem[]; } declare type CreditDebitInvoice = ZatcaInvoice & { invoice_type: ZATCAInvoiceTypes.CREDIT_NOTE | ZATCAInvoiceTypes.DEBIT_NOTE; cancelation: ZATCAInvoicCancelation; }; declare type CashInvoice = ZatcaInvoice & { invoice_type: ZATCAInvoiceTypes.INVOICE; actual_delivery_date?: string; latest_delivery_date?: string; payment_method?: "10" | "30" | "42" | "48"; }; declare type TaxInvoice = (CashInvoice | CreditDebitInvoice) & { invoice_code: "0100000"; actual_delivery_date?: string; }; declare type SimplifiedInvoice = (CashInvoice | CreditDebitInvoice) & { invoice_code: "0200000"; }; export declare type ZATCAInvoiceProps = SimplifiedInvoice | TaxInvoice; export default function populate(props: ZATCAInvoiceProps): string; export {}; //# sourceMappingURL=simplified_tax_invoice_template.d.ts.map