以前金税接口这块一直是销售顾问在做,虽然和财务相关,也没有怎么关注。这次项目把金税接口分到了财务模块,结果遇到了一些问题,趁此机会把这块总结一下方案,供各位看官参考。
方案1: 文本方案,这个方案最早出现,也是最早使用的,其基本方式是从前端SAP系统把开票信息导出形成文本文件(现在有些也支持excel,要看金税开票系统支持哪种格式),然后把文本文件放到(怎么放都可以,U盘拷贝,或者通过局域网传输,或者通过ERP系统导出的时候直接放在开票机的文件夹下)开票机下,开票员通过上载文本文件完成开票,开票完成后,再下载回传的文本文件,ERP读取回传的文本文件,更新金税发票信息到SAP的会计凭证和系统发票中。
文本方案SAP标准方案也是支持的,可参考note:1868902,配置后就可以使用。
方案2: 第三方开票软件,这个方案目前是比较普遍的,对于SAP来说比较简单,和文本的区别在于在第三方开票软件中可以进行发票的拆分、合并、税收编码分类的自动确定等,SAP只需把系统发票信息通过接口传输到第三方开票软件即可,第三方开票软件直接调用金税开票系统进行开票,然后把开票后的信息返回到SAP,第三方软件充当了中间件的作用。
说明:第三方开票软件也是需要安装在开票机上的。
方案3:这个方案是在此次项目中才知道的(以前只知道方案1和方案2),就是金税系统提供一个基于ActiveX的接口(.COM接口或者叫dll组件,.COM接口是微软标准接口规范),SAP直接调用这个组件进行开票(据说国内的ERP软件都是使用这个接口开发相应的金税接口方案),不过这个方案SAP没有类似的案例,后来尝试过通过JAVA写一个小程序作为中间件,也就是SAP把开票信息传给JAVA,JAVA再调用.COM接口完成开票,测试调用成功过,不过没有把握把所有情况都调用通,并保证接口的稳定,因此这个方案没有继续实施下去。
说明:如果这个方案能够实施,好处是在SAP端直接就可以开票成功,无需在开票机上登陆第三方软件或者导入文本进行开票。当然,这个前提还是需要有个中间的小软件作为中转(接收SAP开票信息,返回开票后信息),因为这个接口也是需要在开票机上才能进行调用。如果在开票机上安装SAP,SAP能够直接调用这个.COM接口,就无需中间的小软件了。另外,按照SAP note:2448114的说法,上海金税的某家公司可以提供和SAP进行直联的金税方案,没有具体了解实现方式。
顺便也说一下进项税的接口,目前了解的方案是金税方可以提供一个网站的接口,通过调用这个接口,可以把在前端业务系统(如OA/SAP)收集的进行发票信息,按照接口要求格式传输后进行自动勾选认证。