Skip to Content

AutoCount Integration Workflow

We provide several methods for system integration with AutoCount, based on the customer’s operational needs and technical environment.

Choose the most suitable integration method based on your workflow, data structure, and automation requiments.


Request Consultation


Key Benefits

  • Reduce manual data entry
  • Minimize human error
  • Improve data accuracy
  • Speed up document processing
  • Connect external systems with AutoCount
  • Support customized business workflows
  • Suitable for API, XML, Excel, and CSV integration


The available integration methods include:

AutoCount On-Premise - API ( Application Programming Interface )


Resources For AutoCount Software Developers

Sample with data model

Create New Sale Invoice

public void NewSaleInvoice(AutoCount.Authentication.UserSession userSession, SaleInvoiceSource source)
{
    string newDocStr = AutoCount.Const.AppConst.NewDocumentNoAutoCount.Const.AppConst.NewDocumentNo;
    AutoCount.Invoicing.Sales.Invoice.InvoiceCommand cmd =
        AutoCount.Invoicing.Sales.Invoice.InvoiceCommand.Create(userSession, userSession.DBSetting);
    AutoCount.Invoicing.Sales.Invoice.Invoice doc = cmd.AddNew();

    doc.DebtorCode = source.CustomerCode;
    //if source.DocumentNo is null, then will use a new running number.
    doc.DocNo = source.DocumentNo ?? newDocStr;
    doc.DocDate = source.DocumentDate;
    doc.Description = source.Description;
    doc.CurrencyRate = source.CurrencyRate;
    doc.Agent = source.SalesPerson;

    //Set to apply rounding method of either by Document or by Each Line,
    //this may affect different result in GST Calculation due to decimal point.
    doc.RoundingMethod = source.RoundMethod;

    //Document Level Inclusive Tax
    doc.InclusiveTax = source.Inclusive;

    source.Details.ForEach(s => AddSaleInvoiceDetail(s, doc.AddDetail));

    try
    {
        doc.Save();
        //log success
        //AutoCount.AppMessage.ShowMessage(string.Format("{0} is created.", doc.DocNo));
    }
    catch (AutoCount.AppException ex)
    {
        //log ex.Message
        //AutoCount.AppMessage.ShowMessage(ex.Message);
    }
}

private void AddSaleInvoiceDetail(SaleInvoiceDetail sourceDtl,
    Func<AutoCount.Invoicing.Sales.Invoice.InvoiceDetail> addToDoc)
{
    AutoCount.Invoicing.Sales.Invoice.InvoiceDetail dtl = addToDoc();

    dtl.AccNo = sourceDtl.Account;
    //When ItemCode is assigned, AccNo will be refreshed based on ItemGroup's SaleAccNo;
    //If ItemGroup is not maintained, then default Sale AccNo will be assigned.
    dtl.ItemCode = sourceDtl.ItemCode;
    dtl.Description = sourceDtl.Description ?? dtl.Description;
    if (sourceDtl.Project != null)
        dtl.ProjNo = sourceDtl.Project;
    if (sourceDtl.Department != null)
        dtl.DeptNo = sourceDtl.Department;
    if (sourceDtl.Location != null)
        dtl.Location = sourceDtl.Location;
    dtl.Qty = sourceDtl.Quantity ?? dtl.Qty;
    dtl.UOM = sourceDtl.Uom ?? dtl.UOM;
    dtl.UnitPrice = sourceDtl.UnitPrice ?? dtl.UnitPrice;
    dtl.Discount = sourceDtl.Discount ?? dtl.Discount;
    dtl.SubTotal = sourceDtl.Amount ?? dtl.SubTotal;
    if (sourceDtl.GSTCode != null)
        dtl.TaxType = sourceDtl.GSTCode;
    dtl.TaxAdjustment = sourceDtl.GSTAdjustment;
}

Classes of source

public class SaleInvoiceSource
{
    public string CustomerCode { get; set; }
    public string DocumentNo { get; set; }
    public DateTime DocumentDate { get; set; }
    public string Description { get; set; }
    public decimal CurrencyRate { get; set; } = 1;
    public string SalesPerson { get; set; }
    public AutoCount.Document.DocumentRoundingMethod RoundMethod { get; set; } = 
        AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2;
    public bool Inclusive { get; set; } = false;
    public List<SaleInvoiceDetail> Details { get; set; } = new List<SaleInvoiceDetail>();
}

public class SaleInvoiceDetail
{
    public string Account { get; set; }
    public string ItemCode { get; set; }
    public string Description { get; set; }
    public string Location { get; set; }
    public string Project { get; set; }
    public string Department { get; set; }
    public decimal? Quantity { get; set; }
    public string Uom { get; set; }
    public decimal? UnitPrice { get; set; }
    public string Discount { get; set; }
    public decimal? Amount { get; set; }
    public string GSTCode { get; set; }
    public decimal GSTAdjustment { get; set; }
}

Implementation

public void MainEntry(AutoCount.Authentication.UserSession userSession)
{
    SaleInvoiceSource newDoc = new SaleInvoiceSource()
    {
        CustomerCode = "300-A001",
        Description = "SALES INVOICE GENERATED",
        //If let AutoCount auto assign running number, assign "<<New>>" is unnecessary
        //DocumentNo = "<<New>>",
        DocumentDate = new DateTime(2017, 11, 30),
        Inclusive = true
    };

    //There are many ways which data input can be entered into details, here are some of the common input.
    newDoc.Details.Add(new SaleInvoiceDetail() { Description = "Particulars" });
    newDoc.Details.Add(new SaleInvoiceDetail() { ItemCode = "FG00001", Quantity = 1, UnitPrice = 50.20M, GSTCode = "SR-S" });
    newDoc.Details.Add(new SaleInvoiceDetail() { ItemCode = "FG00001", Quantity = 2, UnitPrice = 50.20M, Discount = "5%", GSTCode = "SR-S" });
    newDoc.Details.Add(new SaleInvoiceDetail() { ItemCode = "FG00001", Quantity = 1, GSTCode = "SR-S", Amount = 50.20M });
    //Return stock is allowed, if the NetTotal is larger or equal to Zero after deduction.
    newDoc.Details.Add(new SaleInvoiceDetail() { ItemCode = "FG00002", Quantity = -1, GSTCode = "SR-S", Amount = -60.20M });
    newDoc.Details.Add(new SaleInvoiceDetail() { ItemCode = "FG00002", Quantity = -1, UnitPrice = 60.20M, Discount = "5%", GSTCode = "SR-S" });

    newDoc.Details.Add(new SaleInvoiceDetail() { Description = "Non-Stock Items" });
    //When AccNo & ItemCode both are not defined, system will retrieve from default Sale Account.
    //If default Sale Account is not maintained in Tools | Options, system will throw error on saving.
    newDoc.Details.Add(new SaleInvoiceDetail() { Description = "Misc. Charges", GSTCode = "SR-S", Amount = 30 });
    newDoc.Details.Add(new SaleInvoiceDetail() { Account = "500-0000", Description = "Transport", Amount = 50, GSTCode = "SR-S" });

    NewSaleInvoice(userSession, newDoc);
}



Import 3rd Paty XML
This method is to extract data from your system and write the source to XML Data file. The XML structure must be according to the structure defined by AutoCount Accounting system.

XML Schema specification, guideline and samples can be downloaded.

Download XML Samples & basic XML Schema




Let’s use MOLAV to help your business grow.


Plan Now

System Core Value

As a leading provider of business management solutions

AutoCount's core value lies in building a seamlessly integrated platform connecting online and offline operations, featuring diversified modules, flexible plug-in extensibility, and robust customization capabilities. 

This enables it to create highly effective and tailored system management solutions for various businesses, ranging from retail to manufacturing and beyond.


On Premise Product
Cloud Based Product

Customization and Scalability of AutoCount Accounting

  AutoCount Accounting offers a high degree of customization and scalability, making it an ideal solution for businesses of all sizes. Whether you're a small startup or a large enterprise, the software can be precisely tailored to meet your unique operational and financial requirements. 

Businesses can begin with essential features and progressively integrate more advanced modules as they expand, ensuring they always have access to the right tools for effective financial management. 

This flexible approach allows organizations to adapt seamlessly to growth and changing business dynamics.


Customization Options

AutoCount Accounting provides a wide range of customization features, allowing businesses to tailor the system according to their specific operational needs. For example, users can modify report formats, add custom fields, and design personalized workflows that align with their internal processes. 

These flexible customization options enable businesses to optimize efficiency and maintain better control over their operations. 

To fully leverage these capabilities, businesses are encouraged to explore AutoCount Customization, which offers deeper insights into how the software can be adapted to support unique business models and requirements. .



Adding New Modules

As your business expands, AutoCount Accounting can be seamlessly enhanced by integrating additional modules and advanced functionalities. For instance, businesses can implement modules such as Payroll, Advanced Inventory Management, or Project Accounting to support growing operational demands. 

With over 50 modules available, each offering specialized features, AutoCount ensures that businesses can continuously adapt and scale their financial and operational systems—effectively meeting evolving requirements while maintaining optimal performance and control.  


Adding New Plugins

AutoCount Accounting also supports over 100 specialized plugins, each designed to extend the software’s capabilities with targeted features and functions. 

These plugins empower businesses to further customize the system to align with their unique operational workflows and industry-specific requirements. By integrating the right plugins, companies can enhance productivity, streamline processes, and support scalable growth—ensuring the software evolves in tandem with their business expansion.

Scaling for Large Businesses

AutoCount Accounting is engineered to efficiently manage high volumes of transactions while supporting multi-user access, making it well-suited for businesses with complex operations. 

Additionally, it is designed with integration capabilities that allow seamless connectivity with other enterprise systems such as POS, CRM, and ERP solutions. This robust scalability ensures that larger businesses can maintain smooth operations, enhance data consistency across departments, and support long-term growth without compromising performance or accuracy.

Product Inquiry

We’d love to hear from you! Whether you have questions, feedback, or require assistance, our dedicated team is ready to help. Simply fill out the form below, and we’ll get back to you within 24 hours. Thank you for reaching out to us — we look forward to connecting with you!  

  uksoftware2u@gmail.com 

  +60127479966 

   HQ : 99 Jalan Kota, Taman Kota, 83700 Yong Peng, Johor