文档中心 > API类目 > 电子发票

alibaba.einvoice.merchant.createreq (商家自研ERP开票请求接口)

商家自研ERP发起开票请求,无需授权,API只能使用商家入驻的税号进行开票

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
platform_code String 必须 TM 电商平台代码。TB=淘宝 、TM=天猫 、JD=京东、DD=当当、PP=拍拍、YX=易讯、EBAY=ebay、QQ=QQ网购、AMAZON=亚马逊、SN=苏宁、GM=国美、WPH=唯品会、JM=聚美、LF=乐蜂、MGJ=蘑菇街、JS=聚尚、PX=拍鞋、YT=银泰、YHD=1号店、VANCL=凡客、YL=邮乐、YG=优购、1688=阿里巴巴、POS=POS门店、OTHER=其他, (只传英文编码)
payee_bankaccount String 可选 92523123213412341234
  • 最大长度:100
  • 开票方银行及 帐号
    invoice_items InvoiceItem [] 必须
  • 最大列表长度:100
  • 电子发票明细
    • └ sum_price
    • String
    • 必须
    • 1000.00
    • 总价,格式:100.00; 当开红票时,该字段为负数
    • └ tax
    • String
    • 必须
    • 170.00
    • 税额; 当开红票时,该字段为负数
    • └ price
    • String
    • 可选
    • 100.00
    • 单价,格式:100.00。新版电子发票,折扣行此参数不能传,非折扣行必传;红票、蓝票都为正数
    • └ item_no
    • String
    • 可选
    • 123456
    • 发票项目编号(或商品编号)
    • └ unit
    • String
    • 可选
    • 单位。新版电子发票,折扣行不能传,非折扣行必传
    • └ item_name
    • String
    • 必须
    • 电视机
    • 发票项目名称(或商品名称)
    • └ tax_rate
    • String
    • 必须
    • 0.17
    • 税率。税率只能为0或0.03或0.04或0.06或0.11或0.13或0.17
    • └ row_type
    • String
    • 必须
    • 0
    • 发票行性质。0表示正常行,1表示折扣行,2表示被折扣行。比如充电器单价100元,折扣10元,则明细为2行,充电器行性质为2,折扣行性质为1。如果充电器没有折扣,则值应为0
    • └ quantity
    • String
    • 可选
    • 10
    • 数量。新版电子发票,折扣行此参数不能传,非折扣行必传; 当开红票时,该字段需为负数
    • └ specification
    • String
    • 可选
    • X100
    • 规格型号,可选
    • └ amount
    • String
    • 必须
    • 1170.00
    • 价税合计。(等于sumPrice和tax之和) 当开红票时,该字段为负数
    payee_receiver String 可选 小张
  • 最大长度:8
  • 收款人
    payee_operator String 必须 小张
  • 最大长度:8
  • 开票人
    invoice_amount String 必须 1170.00 开票金额; 当开红票时,该字段为负数
    payee_checker String 可选 小林
  • 最大长度:8
  • 复核人
    payer_phone String 可选 18234561212
  • 最大长度:20
  • 消费者联系电话
    payer_register_no String 可选 2015020123123
  • 最大长度:20
  • 付款方税务登记证号。对企业开具电子发票时必填。目前北京地区暂未开放对企业开具电子发票,若北京地区放开后,对于向企业开具的情况,付款方税务登记证号和名称也不能为空
    payee_phone String 可选 18234561212
  • 最大长度:20
  • 收款方电话
    payer_email String 可选 mytest@xxx.com 消费者电子邮箱
    payee_name String 必须 海尔商城
  • 最大长度:100
  • 开票方名称,公司名(如:XX商城)
    payer_address String 可选 浙江省杭州市余杭区文一西路xxx号
  • 最大长度:100
  • 消费者地址
    invoice_memo String 可选 电子发票测试
  • 最大长度:200
  • 发票备注,有些省市会把此信息打印到PDF中
    payer_bankaccount String 可选 123412341234
  • 最大长度:100
  • 付款方开票开户银行及账号
    sum_price String 必须 1000.00 合计金额(新版中为必传) 当开红票时,该字段为负数
    normal_invoice_no String 可选 00004349
  • 最大长度:8
  • 原发票号码(开红票时传入)
    invoice_type String 必须 blue 发票(开票)类型,蓝票blue,红票red,默认blue
    payee_register_no String 必须 20150201321123
  • 最大长度:20
  • 收款方税务登记证号
    normal_invoice_code String 可选 111100000000
  • 最大长度:12
  • 原发票代码(开红票时传入)
    business_type Number 必须 0 默认:0。对于商家对个人开具,为0;对于商家对企业开具,为1;
    erp_tid String 可选 123456789 ERP系统中的单据号。如果没有erp的唯一单据号。建议使用platform_code+”_”+ platform_tid的组合方式
    serial_no String 必须 20141234123412341
  • 最大长度:20
  • 开票流水号,唯一标志开票请求。如果两次请求流水号相同,则表示重复请求。请调用平台统一流水号获取接口,alibaba.einvoice.serialno.generate。
    platform_tid String 必须 123412341234 电商平台对应的主订单号
    payee_address String 必须 山东省青岛市
  • 最大长度:100
  • 开票方地址(新版中为必传)
    sum_tax String 必须 170.00 合计税额 当开红票时,该字段为负数
    payer_name String 必须 张三
  • 最大长度:100
  • 付款方名称, 对应发票台头
    apply_id String 可选 438fjew823kj9 开票申请ID,接收了开票申请消息后,需要把apply_id带上
    invoice_kind Number 可选 0
  • 默认值:0
  • 发票种类,0=电子发票,1=纸质发票,2=专票
    red_notice_no String 可选 32342343454 红字通知单号,冲红时需要,商家跟税局申请

    响应参数

    名称 类型 示例值 描述
    is_success Boolean true 开票信息是否成功接受

    请求示例

    • JAVA
    • .NET
    • PHP
    • CURL
    • Python
    • C/C++
    • NodeJS
    TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
    AlibabaEinvoiceMerchantCreatereqRequest req = new AlibabaEinvoiceMerchantCreatereqRequest();
    req.setPlatformCode("TM");
    req.setPayeeBankaccount("92523123213412341234");
    List<AlibabaEinvoiceMerchantCreatereqRequest.InvoiceItem> list2 = new ArrayList<AlibabaEinvoiceMerchantCreatereqRequest.InvoiceItem>();
    AlibabaEinvoiceMerchantCreatereqRequest.InvoiceItem obj3 = new AlibabaEinvoiceMerchantCreatereqRequest.InvoiceItem();
    list2.add(obj3);
    obj3.setSumPrice("1000.00");
    obj3.setTax("170.00");
    obj3.setPrice("100.00");
    obj3.setItemNo("123456");
    obj3.setUnit("台");
    obj3.setItemName("电视机");
    obj3.setTaxRate("0.17");
    obj3.setRowType("0");
    obj3.setQuantity("10");
    obj3.setSpecification("X100");
    obj3.setAmount("1170.00");
    req.setInvoiceItems(list2);
    req.setPayeeReceiver("小张");
    req.setPayeeOperator("小张");
    req.setInvoiceAmount("1170.00");
    req.setPayeeChecker("小林");
    req.setPayerPhone("18234561212");
    req.setPayerRegisterNo("2015020123123");
    req.setPayeePhone("18234561212");
    req.setPayerEmail("mytest@xxx.com");
    req.setPayeeName("海尔商城");
    req.setPayerAddress("浙江省杭州市余杭区文一西路xxx号");
    req.setInvoiceMemo("电子发票测试");
    req.setPayerBankaccount("123412341234");
    req.setSumPrice("1000.00");
    req.setNormalInvoiceNo("00004349");
    req.setInvoiceType("blue");
    req.setPayeeRegisterNo("20150201321123");
    req.setNormalInvoiceCode("111100000000");
    req.setBusinessType(0L);
    req.setErpTid("123456789");
    req.setSerialNo("20141234123412341");
    req.setPlatformTid("123412341234");
    req.setPayeeAddress("山东省青岛市");
    req.setSumTax("170.00");
    req.setPayerName("张三");
    req.setApplyId("438fjew823kj9");
    req.setInvoiceKind(0L);
    req.setRedNoticeNo("32342343454");
    AlibabaEinvoiceMerchantCreatereqResponse rsp = client.execute(req);
    System.out.println(rsp.getBody());

    响应示例

    • XML示例
    • JSON示例
    <alibaba_einvoice_merchant_createreq_response>
        <is_success>true</is_success>
    </alibaba_einvoice_merchant_createreq_response>

    异常示例

    • XML示例
    • JSON示例
    <error_response>
        <code>50</code>
        <msg>Remote service error</msg>
        <sub_code>isv.invalid-parameter</sub_code>
        <sub_msg>非法参数</sub_msg>
    </error_response>

    错误码解释

    错误码 错误描述 解决方案
    isv.invalid-parameter 参数错误 修改参数重新传入
    isv.invalid-permission 权限错误 检查权限
    isp.system-error 系统错误 联系小二排查

    API工具

    如何获得此API

    FAQ

    返回
    顶部