交易账单文件格式说明
更新时间: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 |
# 其他说明
少部分商户目前的账单格式停留在历史早期版本,具体表现为:没有应结算订单金额字段、对应的是总金额字段,没有代金券金额字段、对应的是企业红包金额字段。如需调整为最新格式的账单,可以通过在产品中心中开通免充值优惠券功能,次日开始的账单格式即会完成变更。
文档是否有帮助
服务商文档