发票接口

发票等相关接口用于接入方应用关于发票创建草稿、申请发票、开票等需求场景, 支撑业务方及公司财务人员的日常运营工作

创建草稿

请求

POST https://apigate.glodon.com/ngtrade/invoice/draft

说明

可通过该接口将用户在接入方系统填写的发票信息, 同步到支付中心, 后续业务人员在支付中心的后台申请相关订单的发票时, 可以直接预读取发票草稿, 不需要重新填写。

参数

参数名 参数类型 参数含义 是否必填
b64 String JSON报文的Base64编码数据
g_signature String 签名

JSON报文格式

{
    "inputCharset":"UTF-8",
    "signType":"MD5",
    "appKey":"35l3AAQv9kByIUKVT7UXR7DdDV8xfPuL",
    "type":1,
    "orderIds":["365854575212756992","364766295645880320"],
    "name":"接口测试普通发票合并开票",
    "taxPayerId":"测试",
    "registerAddr":"测试",
    "registerPhone":"测试",
    "taxPayerBank":"",
    "bankAccount":"",
    "remark":"remark",
    "extra":"extra",
    "taxRate":0.06,
    "checkBy": "checkBy",
    "responsibleBy": "responsibleBy",
    "products":[
        {
            "productName":"产品1",
            "productAmount":1
        },
        {
            "productName":"产品2",
            "productAmount":1
        }
    ],
    "address":{
        "name": "name",
        "mobile":"18901031876",
        "address": "hhhhhhhhhhh",
        "email":"email"
    }
}

JSON字段说明

参数名 参数类型 参数含义 是否必填
inputCharset String 字符编码, 固定为UTF-8
signType String 签名算法, 可选择SHA-256, SHA-1, MD5, 推荐使用SHA-256
appKey String 应用Key
type Integer 发票类型:1为普通发票,2为增值税发票, 3为电子发票
orderIds JSONArray 发票关联的交易平台订单ID, 多个订单ID用英文逗号分隔,如"orderIds":["365854575212756992","364766295645880320"]
name String 单位名称
taxPayerId String 税务证号, 长度必须为15、17、18或20位, 且内容必须为字母或数字 当type为2时必填
registerAddr String 注册地址 当type为2时必填
registerPhone String 注册电话 当type为2时必填
taxPayerBank String 开户银行 当type为2时必填
bankAccount String 开户账号 当type为2时必填
remark String 发票备注
extra String 扩展属性, 可自定义
taxRate Float 税率, 目前只支持0.06, 0.09或0.13
checkBy String 复核人
responsibleBy String 业务负责人
products JSON节点 发票产品信息,可以包含0或多个产品
products[0].productName String 发票产品名称 若存在发票产品时必填
products[0].productAmount Integer 发票产品金额, 单位为分 若存在发票产品时必填
address.name String 收件人姓名 若存在发票地址时必填
address.mobile String 收件人手机 若存在发票地址时必填
address.address String 收件人地址 若存在发票地址时必填
address.email String 收件人电子邮件 否, 电子发票可为接收人电子邮件地址

HTTP请求示例

curl -v -X POST -d "b64=ewogICAgImlucHV0Q2hhcnNldCI6IlVURi04IiwKICAgICJzaWduVHlwZSI6Ik1ENSIsCiAgICAiYXBwS2V5IjoidnVlY3NneDQ3N0lxRXgydUxENFhRZzVyRkQ1ZmhJbVQiLAogICAgInR5cGUiOjEsCiAgICAib3JkZXJJZHMiOiIyNDQ0OTA1NTg1MzU2NDcyMzIiLAogICAgIm5hbWUiOiLmtYvor5UiLAogICAgInRheFBheWVySWQiOiIiLAogICAgInJlZ2lzdGVyQWRkciI6IiIsCiAgICAicmVnaXN0ZXJQaG9uZSI6IiIsCiAgICAidGF4UGF5ZXJCYW5rIjoiIiwKICAgICJiYW5rQWNjb3VudCI6IiIsCiAgICAicmVjaWV2ZUVpbnZvaWNlQWRkcmVzcyI6IiIsCiAgICAicmVtYXJrIjoicmVtYXJrIiwKICAgICJleHRyYSI6ImV4dHJhIiwKICAgICJ0YXhSYXRlIjowLjA2LAogICAgInByb2R1Y3RzIjpbCiAgICAgICAgewogICAgICAgICAgICAicHJvZHVjdE5hbWUiOiIxMTExMTExMSIsCiAgICAgICAgICAgICJwcm9kdWN0QW1vdW50IjoyCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJwcm9kdWN0TmFtZSI6IjExMTExMTExIiwKICAgICAgICAgICAgInByb2R1Y3RBbW91bnQiOjEKICAgICAgICB9CiAgICBdLAogICAgImFkZHJlc3MiOnsKICAgICAgICAibmFtZSI6ICJuYW1lIiwKICAgICAgICAibW9iaWxlIjoiMTg5MDEwMzE4NzYiLAogICAgICAgICJhZGRyZXNzIjogImhoaGhoaGhoaGhoIiwKICAgICAgICAiZW1haWwiOiJlbWFpbCIKICAgIH0KfQ==" -d "g_signature=97D50C4D85A2C4A3D4FD2C5667707917" https://apigate.glodon.com/ngtrade-test/invoice/draft

响应

状态码说明

HTTP代码 说明 类型
200 ok 无内容

响应报文

{
    "code": "000000",
    "message": "成功",
    "data": "402162410389110784"
}

响应报文字段说明

参数名 参数含义
code 响应状态码, 000000代表成功, 其余代表失败
message 响应信息
data 发票ID

查询订单关联发票

请求

GET https://apigate.glodon.com/ngtrade/order/{orderId}/invoice

说明

根据支付中心的订单编号, 查询订单关联的发票

参数

参数名 参数类型 参数含义 是否必填
orderId 订单ID 是支付系统生成的订单唯一标识
appKey String 应用Key
inputCharset String 字符编码, 固定填写UTF-8
signType String 签名算法, 固定填写SHA-256
g_signature String 签名

HTTP请求示例

curl -v -X GET "https://apigate.glodon.com/ngtrade-test/order/1/invoice?appKey=vuecsgx477IqEx2uLD4XQg5rFD5fhImT&g_signature=165f265bf1f5c7f2639be5d3ce28c8af927f81c8be898cf2c882d245314b2e47&signType=SHA-256&inputCharset=UTF-8"

响应

状态码说明

HTTP代码 说明 类型
200 ok 无内容

响应报文

{
    "code": "000000",
    "message": "成功",
    "data": {
        "id": "442059602561990656",
        "appKey": "vuecsgx477IqEx2uLD4XQg5rFD5fhImT",
        "type": 3,
        "status": 1,
        "name": "name",
        "payAmount": 10000.00,
        "taxPayerId": "taxPayerId",
        "registerAddr": "registerAddr",
        "registerPhone": "registerPhone",
        "taxPayerBank": "taxPayerBank",
        "bankAccount": "bankAccount",
        "checkBy": "checkBy",
        "responsibleBy": "responsibleBy",
        "invoiceAmount": 333300.00,
        "taxRate": 0.06,
        "taxAmount": 19998.00,
        "invoiceApplyTime": null,
        "invoiceBornTime": null,
        "invoiceNumber": null,
        "invoiceCode": null,
        "remark": "remark",
        "merged": 0,
        "updateTime": null,
        "orders": [
            {
                "ngtradeOrderId": "1",
                "outOrderId": "1",
                "payId": 1
            }
        ],
        "products": [
            {
                "productName": "productName1",
                "productAmount": 1111.00
            },
            {
                "productName": "productName2",
                "productAmount": 2222.00
            }
        ],
        "address": {
            "name": "1",
            "mobile": "1",
            "address": "1",
            "email": "email"
        }
    }
}

响应报文字段说明

参数名 参数含义
code 响应状态码, 000000代表成功
message 响应信息
data 业务数据节点
id 发票ID
appKey 应用Key
type 1为普通发票,2为增值税发票, 3为电子发票
status 0草稿、1已申请、2已开票、3待作废、4已作废 5已驳回
name 发票名称
payAmount 用户支付金额
taxPayerId 税务证号(增值税发票)
registerAddr 注册地址(增值税发票)
registerPhone 注册电话(增值税发票)
taxPayerBank 开户银行(增值税发票)
bankAccount 开户账号(增值税发票)
checkBy 复核人
responsibleBy 业务负责人
invoiceAmount 开票合计
taxRate 税率
taxAmount 税金
invoiceApplyTime 申请时间
invoiceBornTime 开票日期
invoiceNumber 发票号
invoiceCode 发票代码
remark 备注
merged 是否为合并开票, 0不是, 1是
updateTime 更新时间
orders[0].ngtradeOrderId 交易订单ID
orders[0].outOrderId 业务渠道订单ID
orders[0].payId 交易支付流水ID
products[0].productName 产品名
address[0].name 收件人姓名
address[0].mobile 收件人手机
address[0].address 收件人地址
address[0].email 收件人电子邮箱