zatca-xml-ts
Version:
An implementation of Saudi Arabia ZATCA's E-Invoicing requirements, processes, and standards.
74 lines • 2.21 kB
TypeScript
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