交易账单文件格式说明

更新时间:2023.09.26

# 写在前面

本文将介绍交易账单文件的格式,阅读本文前可先浏览:

# 数据组成说明

微信支付的交易账单的出账周期是“每日”,日切时间是每日的00:00:00。

交易账单的数据包括支付订单和退订单款两类,不同单据的数据时间是不一样的:

数据类型 数据时间 备注
支付 支付成功时间 即下单成功但用户未支付的订单不会出账
退款 商户退款受理成功时间 出账后退款状态不会更新,原因见关键概念>账单的数据快照。如果需要获取最新退款状态,请使用查询单笔退款API查询。

支付和退款数据是相互独立的,即,当天若对同一笔订单,先支付成功再退款,在交易账单中会分别出现“支付”和“退款”两条数据。

基于上面两种单据数据的组合,微信支付提供了3份不同类型的账单文件:

  • ALL,包含了数据时间在当日的所有支付订单和退款订单,与商户平台内交易账单下载的“所有交易账单(不含可用余额退款)”相对应。
  • SUCCESS,仅包含数据时间在当日的支付订单,与商户平台内交易账单下载的“支付账单”相对应。
  • REFUND,仅包含数据时间在当日的退款单,与商户平台内交易账单下载的“退款账单(不含可用余额退款)”相对应。

# 文件格式说明

每一份账单文件在结构上都包含以下四个部分:

  • 明细数据表头
  • 明细数据
  • 汇总数据表头
  • 汇总数据

其中,文件内每个字段都使用英文逗号“,” 间隔。明细数据汇总数据每个字段前会增加1个字符(用于避免获取的内容被excel展示为科学计数法的格式、丢失数据细节)。

具体格式可参考以下文件样例:

注意

以上样例为文件展示示例,实际API下载的是数据流。

下面针对每一种类型的账单文件,说明具体字段含义:

# ALL类型账单

明细数据:

字段名 描述 示例值
交易时间 指该笔交易的支付成功时间或商户退款受理成功时间(注:不是退款成功时间),格式为yyyy-MM-dd HH:MM:SS 2015-01-01 10:00:00
公众账号ID 发起该笔交易时使用的AppID,AppID是由微信给公众号或App等分配的唯一标识 wxab8acb865bb11234
商户号 发起该笔交易下单的微信支付商户号,8~10位数字 1234567890
特约商户号 如果是普通受理模式下的交易,展示特约商户的商户号,8~10位数字
如果是普通直连模式交易,则展示成数字0
1234567890
设备号 对应在下单时传入的device_info字段,没填写则留空 casher001
微信订单号 微信支付为该笔订单(或该笔退款对应的订单)分配的订单号 4200000008201712143733500001
商户订单号 商户传入的该笔订单(或该笔退款对应的订单)的商户订单号,对应下单接口里的out_trade_no字段 outtradeno001
用户标识 微信为支付用户在公众账号ID(AppID)下分配的唯一标识(OpenID) testxt08c-XB5-QD208X1Aid0Cbs
交易类型 该笔订单(或该笔退款单对应的订单)的类型,使用英文缩写展示,包括但不限于(后续可能新增):
MICROPAY:付款码支付
JSAPI:JSAPI支付、小程序支付
NATIVE:NATIVE支付
APP:App支付
FACE:刷脸支付
NATIVE
交易状态 标识该笔明细数据的类型:
SUCCESS:支付成功,说明该行数据为一笔支付成功的订单
REFUND:转入退款,说明该行数据为一笔发起退款成功的退款单
REVOKED:已撤销,说明该行数据为一笔在用户支付成功后发起撤销的退款单
SUCCESS
付款银行 用户支付时使用的付款方式,包括但不限于(后续可能新增):
XXX_CREDIT:用户使用了XXX银行的一张信用卡付款
XXX_DEBIT:用户使用了XXX银行的一张储蓄卡付款
OTHERS:用户使用了零钱/零钱通等其他付款方式
CMB_CREDIT
货币种类 货币类型,符合ISO 4217标准的三位字母代码 CNY
应结订单金额 该笔订单参与计费的应结算金额(=订单金额-用户使用的免充值券金额),如果该行数据为退款或撤销则展示0.00,单位元,保留到小数点后2位 8.88
代金券金额 该笔订单中使用的微信支付代金券金额(包括充值券和免充值券),如果未使用代金券、或该行数据为退款或撤销则展示0.00,单位元,保留到小数点后2位 0.88
微信退款单号 微信支付为该笔退款分配的退款单号,如果该行数据为订单(交易状态SUCCESS)则展示0 50401010122021000000038202001
商户退款单号 商户发起退款时填入的商户退款单号,如果该行数据为订单(交易状态SUCCESS)则展示0 refundno001
退款金额 该笔退款单参与计费的应结算金额(申请退款金额-免充值券退款金额),如果该行数据为订单则展示为0.00,非负数、单位元,保留到小数点后2位 6.66
充值券退款金额 退款金额中包含的充值券退款金额,如果该行数据为订单或没有充值券退款则展示为0.00,非负数、单位元,保留到小数点后2位 0.66
退款类型 ORIGINAL:原路退款
BALANCE:转退到用户的微信支付零钱
PLATFORM-ORIGINAL:平台退款,原路退款
PLATFORM-BALANCE:平台退款,转退到用户的微信支付零钱
如果该行数据为订单(交易状态SUCCESS)则留空
ORIGINAL
退款状态 生成账单文件时该笔退款的状态、出账后不会更新,如果该行数据为订单(交易状态SUCCESS),则留空
SUCCESS:退款成功
PROCESSING:退款处理中
FAIL:退款失败
CHANGE:退款异常
SUCCESS
商品名称 商户传入的该笔订单(或该笔退款对应的订单)的商品名称,对应下单接口里的body字段 零食
商户数据包 商户传入的该笔订单(或该笔退款对应的订单)的商户数据包,对应下单接口里的attach字段,不传时留空 交易收款
手续费 该笔订单/退款对应的手续费金额,订单对应正数、退款对应负数,单位元,保留小数点后2位 0.01
费率 该笔交易计费所使用的费率,百分数 0.60%
订单金额 该笔订单的金额,包括用户支付金额、充值券金额、免充值券金额,如果该行数据为退款或撤销则填0.00,单位元,保留到小数点后2位 9.76
申请退款金额 商户发起退款的金额,包括退给用户的金额、充值券退款金额、免充值券退款金额,如果该行数据订单则填0.00,单位元,保留到小数点后2位 6.66
费率备注 对计费费率的补充说明,如入驻结算规则ID、优惠费率活动ID等,可为空 726

汇总数据:

字段名 描述 示例值
总交易单数 该份账单内明细数据的笔数 200
应结订单总金额 账单内所有应结订单金额字段之和,保留小数点后2位 888.00
退款总金额 账单内所有退款金额字段之和,保留小数点后2位 666.00
充值券退款总金额 账单内所有充值券退款金额字段之和,保留小数点后2位 6.60
手续费总金额 账单内所有交易手续费字段之和,保留小数点后2位 10.00
订单总金额 账单内所有交易订单金额字段之和,保留小数点后2位 976.00
申请退款总金额 账单内所有申请退款金额字段之和,保留小数点后2位 666.00

# SUCCESS类型账单

明细数据:

字段名 描述 示例值
交易时间 指该笔交易的支付成功时间,格式为yyyy-MM-dd HH:MM:SS 2015-01-01 10:00:00
公众账号ID 发起该笔交易时使用的AppID,AppID是由微信给公众号或App等分配的唯一标识 wxab8acb865bb11234
商户号 发起该笔交易下单的微信支付商户号,8~10位数字 1234567890
特约商户号 如果是普通受理模式下的交易,展示特约商户的商户号,8~10位数字
如果是普通直连模式交易,则展示成数字0
1234567890
设备号 对应在下单时传入的device_info字段,没填写则留空 casher001
微信订单号 微信支付为该笔订单(或该笔退款对应的订单)分配的订单号 4200000008201712143733500001
商户订单号 商户传入的该笔订单(或该笔退款对应的订单)的商户订单号,对应下单接口里的out_trade_no字段 outtradeno001
用户标识 微信为支付用户在公众账号ID(AppID)下分配的唯一标识(OpenID) testxt08c-XB5-QD208X1Aid0Cbs
交易类型 该笔订单(或该笔退款单对应的订单)的类型,使用英文缩写展示,包括但不限于(后续可能新增):
MICROPAY:付款码支付
JSAPI:JSAPI支付、小程序支付
NATIVE:NATIVE支付
APP:App支付
FACE:刷脸支付
NATIVE
交易状态 标识该笔明细数据的类型:
SUCCESS:支付成功,说明该行数据为一笔支付成功的订单
REFUND:转入退款,说明该行数据为一笔发起退款成功的退款单
REVOKED:已撤销,说明该行数据为一笔在用户支付成功后发起撤销的退款单
SUCCESS
付款银行 用户支付时使用的付款方式,包括但不限于(后续可能新增):
XXX_CREDIT:用户使用了XXX银行的一张信用卡付款
XXX_DEBIT:用户使用了XXX银行的一张储蓄卡付款
OTHERS:用户使用了零钱/零钱通等其他付款方式
CMB_CREDIT
货币种类 货币类型,符合ISO 4217标准的三位字母代码 CNY
应结订单金额 该笔订单参与计费的应结算金额(=订单金额-用户使用的免充值券金额),如果该行数据为退款或撤销则展示0.00,单位元,保留到小数点后2位 8.88
代金券金额 该笔订单中使用的微信支付代金券金额(包括充值券和免充值券),如果未使用代金券、或该行数据为退款或撤销则展示0.00,单位元,保留到小数点后2位 0.88
商品名称 商户传入的该笔订单(或该笔退款对应的订单)的商品名称,对应下单接口里的body字段 零食
商户数据包 商户传入的该笔订单(或该笔退款对应的订单)的商户数据包,对应下单接口里的attach字段,不传时留空 交易收款
手续费 该笔订单/退款对应的手续费金额,订单对应正数、退款对应负数,单位元,保留小数点后2位 0.01
费率 该笔交易计费所使用的费率,百分数 0.60%
订单金额 该笔订单的金额,包括用户支付金额、充值券金额、免充值券金额,如果该行数据为退款或撤销则填0.00,单位元,保留到小数点后2位 9.76
费率备注 对计费费率的补充说明,如入驻结算规则ID、优惠费率活动ID等,可为空 726

汇总数据:

字段名 描述 示例值
总交易单数 该份账单内明细数据的笔数 200
应结订单总金额 账单内所有应结订单金额字段之和,保留小数点后2位 888.00
手续费总金额 账单内所有交易手续费字段之和,保留小数点后2位 10.00
订单总金额 账单内所有交易订单金额字段之和,保留小数点后2位 976.00

# REFUND类型账单

明细数据:

字段名 描述 示例值
交易时间 指商户退款受理成功时间(注:不是退款成功时间),格式为yyyy-MM-dd HH:MM:SS 2015-01-01 10:00:00
公众账号ID 发起该笔交易时使用的AppID,AppID是由微信给公众号或App等分配的唯一标识 wxab8acb865bb11234
商户号 发起该笔交易下单的微信支付商户号,8~10位数字 1234567890
特约商户号 如果是普通受理模式下的交易,展示特约商户的商户号,8~10位数字
如果是普通直连模式交易,则展示成数字0
1234567890
设备号 对应在下单时传入的device_info字段,没填写则留空 casher001
微信订单号 微信支付为该笔订单(或该笔退款对应的订单)分配的订单号 4200000008201712143733500001
商户订单号 商户传入的该笔订单(或该笔退款对应的订单)的商户订单号,对应下单接口里的out_trade_no字段 outtradeno001
用户标识 微信为支付用户在公众账号ID(AppID)下分配的唯一标识(OpenID) testxt08c-XB5-QD208X1Aid0Cbs
交易类型 该笔订单(或该笔退款单对应的订单)的类型,使用英文缩写展示,包括但不限于(后续可能新增):
MICROPAY:付款码支付
JSAPI:JSAPI支付、小程序支付
NATIVE:NATIVE支付
APP:App支付
FACE:刷脸支付
NATIVE
交易状态 标识该笔明细数据的类型:
SUCCESS:支付成功,说明该行数据为一笔支付成功的订单
REFUND:转入退款,说明该行数据为一笔发起退款成功的退款单
REVOKED:已撤销,说明该行数据为一笔在用户支付成功后发起撤销的退款单
SUCCESS
付款银行 用户支付时使用的付款方式,包括但不限于(后续可能新增):
XXX_CREDIT:用户使用了XXX银行的一张信用卡付款
XXX_DEBIT:用户使用了XXX银行的一张储蓄卡付款
OTHERS:用户使用了零钱/零钱通等其他付款方式
CMB_CREDIT
货币种类 货币类型,符合ISO 4217标准的三位字母代码 CNY
应结订单金额 该笔订单参与计费的应结算金额(=订单金额-用户使用的免充值券金额),如果该行数据为退款或撤销则展示0.00,单位元,保留到小数点后2位 8.88
代金券金额 该笔订单中使用的微信支付代金券金额(包括充值券和免充值券),如果未使用代金券、或该行数据为退款或撤销则展示0.00,单位元,保留到小数点后2位 0.88
退款申请时间 指商户发起退款申请时间,格式为yyyy-MM-dd HH:MM:SS 2015-01-01 10:00:00
退款成功时间 指退款成功时间,格式为yyyy-MM-dd HH:MM:SS 2015-01-01 10:00:00
微信退款单号 微信支付为该笔退款分配的退款单号,如果该行数据为订单(交易状态SUCCESS)则展示0 50401010122021000000038202001
商户退款单号 商户发起退款时填入的商户退款单号,如果该行数据为订单(交易状态SUCCESS)则展示0 refundno001
退款金额 该笔退款单参与计费的应结算金额(申请退款金额-免充值券退款金额),如果该行数据为订单则展示为0.00,非负数、单位元,保留到小数点后2位 6.66
充值券退款金额 退款金额中包含的充值券退款金额,如果该行数据为订单或没有充值券退款则展示为0.00,非负数、单位元,保留到小数点后2位 0.66
退款类型 ORIGINAL:原路退款
BALANCE:转退到用户的微信支付零钱
PLATFORM-ORIGINAL:平台退款,原路退款
PLATFORM-BALANCE:平台退款,转退到用户的微信支付零钱
如果该行数据为订单(交易状态SUCCESS)则留空
ORIGINAL
退款状态 生成账单文件时该笔退款的状态、出账后不会更新,如果该行数据为订单(交易状态SUCCESS),则留空
SUCCESS:退款成功
PROCESSING:退款处理中
FAIL:退款失败
CHANGE:退款异常
SUCCESS
商品名称 商户传入的该笔订单(或该笔退款对应的订单)的商品名称,对应下单接口里的body字段 零食
商户数据包 商户传入的该笔订单(或该笔退款对应的订单)的商户数据包,对应下单接口里的attach字段,不传时留空 交易收款
手续费 该笔订单/退款对应的手续费金额,订单对应正数、退款对应负数,单位元,保留小数点后2位 0.01
费率 该笔交易计费所使用的费率,百分数 0.60%
订单金额 该笔订单的金额,包括用户支付金额、充值券金额、免充值券金额,如果该行数据为退款或撤销则填0.00,单位元,保留到小数点后2位 9.76
申请退款金额 商户发起退款的金额,包括退给用户的金额、充值券退款金额、免充值券退款金额,如果该行数据订单则填0.00,单位元,保留到小数点后2位 6.66
费率备注 对计费费率的补充说明,如入驻结算规则ID、优惠费率活动ID等,可为空 726

汇总数据:

字段名 描述 示例值
总交易单数 该份账单内明细数据的笔数 200
应结订单总金额 账单内所有应结订单金额字段之和,保留小数点后2位 888.00
退款总金额 账单内所有退款金额字段之和,保留小数点后2位 666.00
充值券退款总金额 账单内所有充值券退款金额字段之和,保留小数点后2位 6.60
手续费总金额 账单内所有交易手续费字段之和,保留小数点后2位 10.00
订单总金额 账单内所有交易订单金额字段之和,保留小数点后2位 976.00
申请退款总金额 账单内所有申请退款金额字段之和,保留小数点后2位 666.00

# 特殊字符转义

针对明细数据中的商品名称商户数据包设备号这三个商户自定义字段,账单在处理过程中对其进行了特殊字符的转义,具体规则包括:

原始特殊字符
Unicode

含义
订单转义
Unicode

含义
退款单转义
Unicode

含义
\u005c \ \u005c\u005c \\ \u005c\u005c \\
\u0027 ' \u005c\u0027 \' \u0027 '
\u0022 " \u005c\u0022 \" \u005c\u0022 \"
\u0060 ` \u005c\u0060 \` \u005c\u0031\u0034\u0030 \140
\u002c , \u005c\u0020 \空格 \u005c\u0020 \空格
\u000a 换行符(LF) \u005c\u006e \n \u005c\u006e \n
\u000d 回车符(CR) \u005c\u0072 \r \u005c\u0072 \r
\u0009 制表符(HT) \u005c\u0074 \t \u005c\u0074 \t
\ue000 不可见字符(\xee\x80\x80) \u005c\u0020 \空格 \u005c\u0020 \空格
\u001a 控制字符SUB(\032) \u005c\u001a \控制字符SUB \u005c\u001a \控制字符SUB

# 其他说明

少部分商户目前的账单格式停留在历史早期版本,具体表现为:没有应结算订单金额字段、对应的是总金额字段,没有代金券金额字段、对应的是企业红包金额字段。如需调整为最新格式的账单,可以通过在产品中心中开通免充值优惠券功能,次日开始的账单格式即会完成变更。