WithholdingSigning:
post:
tags:
- 代扣管理
summary: 代扣签约
description: |
银行代扣业务签约接口,建立客户与银行的代扣协议。
## 业务说明
- 支持客户与银行签署代扣协议
- 包含客户基本信息和银行账户信息
- 支持本行和他行账户签约
- 签约成功后可进行自动代扣
- 支持XML和JSON两种数据格式
## 业务规则
- 客户编号必须在系统中存在
- 银行账户信息必须真实有效
- 同一客户同一银行账户只能签约一次
- 签约成功后协议状态为已签约
## 调用频率限制
- 单个客户编号每天最多签约5次
- 单个机构每分钟最多签约50次
operationId: withholdingSigning
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/ContentTypeHeader'
- $ref: '../components/parameters.yaml#/components/parameters/EncryptTypeHeader'
- $ref: '../components/parameters.yaml#/components/parameters/EncryptModeHeader'
- $ref: '../components/parameters.yaml#/components/parameters/DataTypeHeader'
requestBody:
required: true
description: 代扣签约请求数据
content:
application/xml:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseRequest'
- type: object
required:
- BillKey
- CompanyId
- AccountName
- AccountNo
- BankName
properties:
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
AccountName:
type: string
description: 开户名
example: "张三"
maxLength: 150
AccountNo:
type: string
description: 开户账号
example: "6222001234567890"
maxLength: 30
BankName:
type: string
description: 银行名称
example: "中国工商银行"
maxLength: 150
ContractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 150
BankType:
type: integer
description: 银行类型
enum: [0, 1] # 0:本行 1:他行
example: 0
example: |
1.0.1
00001
Signing
20240101
123456789014
123456
654321
张三
6222001234567890
中国工商银行
CONTRACT001
0
application/json:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseRequest'
- type: object
required:
- BillKey
- CompanyId
- AccountName
- AccountNo
- BankName
properties:
BillKey:
type: string
description: 客户编号
example: "123456"
CompanyId:
type: string
description: 机构编码
example: "654321"
AccountName:
type: string
description: 开户名
example: "张三"
AccountNo:
type: string
description: 开户账号
example: "6222001234567890"
BankName:
type: string
description: 银行名称
example: "中国工商银行"
ContractNo:
type: string
description: 合同号
example: "CONTRACT001"
BankType:
type: integer
description: 银行类型
example: 0
example:
Version: "1.0.1"
InstId: "00001"
TranCode: "Signing"
TranDate: "20240101"
TranSeq: "123456789014"
BillKey: "123456"
CompanyId: "654321"
AccountName: "张三"
AccountNo: "6222001234567890"
BankName: "中国工商银行"
ContractNo: "CONTRACT001"
BankType: 0
responses:
'200':
description: 签约成功
headers:
Content-Type:
$ref: '../components/headers.yaml#/components/headers/ContentType'
X-Response-Time:
$ref: '../components/headers.yaml#/components/headers/ResponseTime'
X-Request-Id:
$ref: '../components/headers.yaml#/components/headers/RequestId'
content:
application/xml:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseResponse'
- type: object
properties:
Data:
type: object
properties:
Agreement:
$ref: '../components/schemas.yaml#/components/schemas/WithholdingAgreement'
example: |
1.0.1
00001
SigningRes
20240101
123456789014
AAAAAAA
签约成功
123456
654321
张三
6222001234567890
中国工商银行
CONTRACT001
AGR001
0
1
2024-01-01
application/json:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseResponse'
- type: object
properties:
Data:
type: object
properties:
Agreement:
$ref: '../components/schemas.yaml#/components/schemas/WithholdingAgreement'
example:
Version: "1.0.1"
InstId: "00001"
TranCode: "SigningRes"
TranDate: "20240101"
TranSeq: "123456789014"
RespCode: "AAAAAAA"
RespMessage: "签约成功"
Data:
Agreement:
BillKey: "123456"
CompanyId: "654321"
AccountName: "张三"
AccountNo: "6222001234567890"
BankName: "中国工商银行"
ContractNo: "CONTRACT001"
AgreementNo: "AGR001"
BankType: 0
AgreementStatus: 1
SigningDate: "2024-01-01"
'400':
$ref: '../components/responses.yaml#/components/responses/BusinessError'
'500':
$ref: '../components/responses.yaml#/components/responses/SystemError'
'401':
$ref: '../components/responses.yaml#/components/responses/SecurityError'
'408':
$ref: '../components/responses.yaml#/components/responses/NetworkError'
security:
- ApiKeyAuth: []
- EncryptedData: []