vnsc5858威尼斯城官网 > vnsc5858威尼斯城官网 > 发票扫描OCR识别,增值税发票代码验证

原标题:发票扫描OCR识别,增值税发票代码验证

浏览次数:93 时间:2019-09-11

同大陆身份证验证一样,该部分是按照国家增值税发票代码的定制规则,进行发票代码验证,如果需要查验发票信息是否正确,应该通过第三方接口(大约一毛钱查验一次),或者直接上国家税务总局全国增值税发票查验平台进行查验。

目前能识别的增值税发票代码包含以下几类:增值税专用发票增值税普通发票(纸质非卷票)增值税普通发票(卷票)增值税电子普通发票。在类库中,增值税代码验证相关的代码均在NumberValidators.Invoices下,其包含接口定义以及具体实现。

奥普快票通发票扫描识别系统演示视频

IVATCodeValidator(增值税代码识别接口)定义如下:

增值税专用发票、增值税普通发票、增值税电子普通发票。对于日常生活中常见的这几种票据,财务人员每个月都会收到大量的单据,财务人员无论是报税,还是费控,都需要对企业发生的票据进行人工的录入和审核。经常可以看到财务人员望着一叠一叠的发票唉声叹气。因为全靠一双手和一双眼睛来录入发票上密密麻麻的信息,简直是累上加累。最关键的是这种重复而又机械性的工作没有对财务工作质量有半点的提升。

    /// <summary>
    /// 增值税发票代码验证接口
    /// </summary>
    public interface IVATCodeValidator <out TResult>: IValidator<TResult>
        where TResult : VATCodeValidationResult, new()
    {
        /// <summary>
        /// 用于验证的字典数据
        /// </summary>
        IValidationDictionary<int, string> Dictionary { get; set; }
        /// <summary>
        /// 生成增值税发票代码
        /// </summary>
        /// <param name="areaNumber">行政区划</param>
        /// <param name="year">年份</param>
        /// <param name="batch">批次</param>
        /// <param name="kind">要生成的发票类型</param>
        /// <returns></returns>
        string GenerateVATCode(int areaNumber, ushort year, ushort batch, VATKind kind);
        /// <summary>
        /// 发票代码验证
        /// </summary>
        /// <param name="vatCode">待验证的发票代码</param>
        /// <param name="kind">要验证的发票类型,不指定则传null</param>
        /// <param name="minYear">允许的最小年份(注:2012年1月1日营改增开始上海试点)</param>
        /// <returns></returns>
        TResult Validate(string vatCode, VATKind? kind = null, ushort minYear = 2012);
    }

由于财务人员的信息化一般靠公司内部的IT部门来推进,相对而言比较闭塞。很多时候市面上已经有非常成熟的解决方案,而财务人员往往一无所知,继续埋头苦干。就拿增值税发票来说,在企业的往来业务中,占比非常的大,制造业或者物流等公司每个月收到的供应商发票基本都是万级以上。如此多的发票全靠人力录入,核验,可以想象是多么巨大的一个工程。

增值税发票代码验证定义了两种验证结果
VATCodeValidationResult这是默认验证结果,其定义如下:

发票扫描OCR识别技术,早在二十年前就有雏形了,当时都是基于图片的文字检测,并没有专业的发票识别产品。后来随着税局的不断规范和改革,基本形成了现在大家看到的通用型增值税发票,同时也让OCR识别厂家可以针对性的做发票识别的研究。

    /// <summary>
    /// 增值税发票代码验证结果
    /// </summary>
    public class VATCodeValidationResult : ValidationResult
    {
        /// <summary>
        /// 行政区划代码
        /// </summary>
        public int AreaNumber { get; internal set; }
        /// <summary>
        /// 行政区域名称
        /// </summary>
        public string AreaName { get; internal set; }
        /// <summary>
        /// 发票类型
        /// </summary>
        public VATKind? Category { get; internal set; }
        /// <summary>
        /// 印刷年份
        /// </summary>
        public int Year { get; internal set; }
        /// <summary>
        /// 印刷批次
        /// </summary>
        public int Batch { get; internal set; }
        /// <summary>
        /// 发票联次,仅10位长度和12位长度折叠票发票才有
        /// </summary>
        public int DuplicateNumber { get; internal set; }
    }

奥普快票通发票扫描识别系统,基于清华大学的OCR识别引擎,可以对增值税专用发票、普通发票、电子发票、火车票等格式化发票,进行专门的扫描,形成影像的同时,利用专业的识别技术,把全票面信息输出,并且支持识别结果导出到Excel。

VATCode10ValidationResult是在VATCodeValidationResult的基础上,额外定义了发票金额版本,其定义如下:

尤其在最新的版本中,加入了权威的国税网站查验接口,先利用专业的发票扫描仪对纸质发票进行扫描识别,然后把相关的发票号码、代码、日期、金额、校验码等关键要素自动输送到国税后台进行权威核验,最关键是可以返回百分之百的全票面信息,同时支持导出到Excel。

    /// <summary>
    /// 增值税发票和普通(纸质)专有的验证结果
    /// </summary>
    public class VATCode10ValidationResult : VATCodeValidationResult
    {
        /// <summary>
        /// 发票金额版本号,仅10位长度发票才有
        /// </summary>
        public AmountVersion AmountVersion { get; internal set; }
    }

发票扫描OCR识别+发票查验真伪+导出全票面的Excel,这个可以说是发票完美的录入方案。

本文由vnsc5858威尼斯城官网发布于vnsc5858威尼斯城官网,转载请注明出处:发票扫描OCR识别,增值税发票代码验证

关键词:

上一篇:vnsc5858威尼斯城官网RESTful API

下一篇:没有了