Skip to content

出款要素校验

  • Endpoint: POST /aggregate-pay/api/gateway/paymentFieldValidation
  • Tags: 付款

Description

本接口用于在实际发起出款前,对商户提供的收款人要素字段(如账户、姓名、证件等)进行结构化校验,确保发起交易时,收款人信息符合格式规则。校验范围包括填写格式是否正确(如长度、正则、更细化的算法规则)、是否为合法枚举值等。

该接口能力旨在帮助商户提前发现错误字段并前端报错给用户,提升出款成功率和用户体验。建议商户在收款人信息收集页面调用,用于检查参数格式。本接口仅用于静态字段格式校验,通过校验代表能够较大程度避免信息错误导致的交易失败,但并不能完全杜绝。不建议商户缓存字段配置,具体字段要求将随支付规则变更动态更新。

Parameters

FieldInTypeRequiredConstraintsDescription
Content-TypeheaderstringYes
signheaderstringYes签名信息请参考技术文档

Parameter Examples

  • Content-Type: "application/json"
  • sign: "FPFVT3o227JrFRbqu19boZCpVVTF9KznxyRawUmxpfXilHV/0yK46haPhAjNu1hPUMy7Vw/ILXhfzffNm4Fj0apWknlTY9OJxnSoQxS9BTFtc61tn5yV1q69x/kkBl82/qwg+XTJ4fOzy7Mar3VaC1E2PlDA6RkkKBUyNE6RYgsdB+Su7an4+4HVTNAnoe74WyvBgxTLMNg28igBTdqxaO3w/UBY6ObVp7vkqkQGdL1Y+HgmMYaAVwrM3+ALWGId0sJ+YqTY4WJ+0xCRGhaSnybiIjZsQEYyID68WNUfuavDLDsEhaMm/HfQvf5p0R1Ltovp3wwJnEbQcjY458iX5A=="

Request Body

Content-Type: application/json

FieldTypeRequiredConstraintsDescriptionEnum
versionstringYesmaxLength: 8接口版本 当前值为:1.5
keyVersionstringYesmaxLength: 8密钥版本 当前值为:1
requestTimestringYesmaxLength: 32请求时间,符合rfc3339规范,格式:yyyy-MM-dd'T'HH:mm:ss.SSSXXX 时间需要在当前时间两分钟内
appIdstringYesmaxLength: 64商户应用Id,PayerMax分配给商户应用的唯一标识
merchantNostringNomaxLength: 32商户号,商户与PayerMax业务签约时生成的唯一标识
dataobjectYes请求数据体
data.countrystringYesmaxLength: 2国家代码,大写字母,参见【支持的国家与币种
data.chargeOptionstringNo费用承担模式,是否必传参照《付款申请模板及填写规范
data.clearingRailstringNo枚举值为:SWIFT, SEPA, LOCAL,分别对应签约的SWIFT、SEPA、Local Banks支付方式,请根据实际要用的支付方式来上送,请参照《付款申请模板及填写规范
data.sourceAccountstringNomaxLength: 3扣款账户的币种代码,大写字母
data.destinationCurrencystringNomaxLength: 3到账币种,请参考【支付方式列表】,如有标明到账币种的,需要指定到账币种;若未标明,则到账币种仅支持本币,不需要进行指定
data.payeeInfoobjectYes收款方信息
data.payeeInfo.paymentMethodTypestringYesmaxLength: 64支付方式,参见【支付方式类型及目标机构说明
data.payeeInfo.targetOrgstringNomaxLength: 64目标机构,参见【支付方式类型及目标机构说明
data.payeeInfo.payeeType stringNo收款方类型(PERSONAL/CORPORATION),默认PERSONAL
data.payeeInfo.accountInfoobjectNo收款账户信息
data.payeeInfo.accountInfo.accountNostringNomaxLength: 128收款方账号,根据付款方式不同填入相应账号
data.payeeInfo.accountInfo.accountTypestringNo收款账户类型,在不同国家-支付方式下规范不同
data.payeeInfo.accountInfo.checkDigitstringNo收款方账户验证数字
data.payeeInfo.bankInfoobjectNo收款方银行信息
data.payeeInfo.bankInfo.bankCodestringNomaxLength: 64用于识别特定金融机构下的收款方银行代码,在不同国家下填写规范不同,参见【付款申请模板及填写规范】以及【支持银行范围列表
data.payeeInfo.bankInfo.bankNamestringNomaxLength: 255收款方银行名称
data.payeeInfo.bankInfo.bankBranchstringNomaxLength: 64收款人银行网点号/分行号
data.payeeInfo.bankInfo.bankCitystringNomaxLength: 255收款方银行所在城市
data.payeeInfo.bankInfo.corAccountNostringNomaxLength: 128收款方银行的代理账号(correspondent account)
data.payeeInfo.nameobjectNo收款方姓名,支持英文、空格、逗号、中划线、点,在不同国家-支付方式下填写规范不同
data.payeeInfo.name.firstNamestringNomaxLength: 64收款方名
data.payeeInfo.name.middleNamestringNomaxLength: 64收款方中间名,多段中间名时,使用空格进行分隔
data.payeeInfo.name.lastNamestringNomaxLength: 64收款方姓
data.payeeInfo.name.fullNamestringNomaxLength: 512收款方全名
data.payeeInfo.documentobjectNo收款方个人身份信息
data.payeeInfo.document.documentTypestringNomaxLength: 16收款方个人身份证明类型,在不同国家下可选类型不同,参见《付款申请模板及填写规范
data.payeeInfo.document.documentIdstringNomaxLength: 64收款方个人识别号码,在不同国家下可选类型不同,参见《付款申请模板及填写规范
data.payeeInfo.document.documentIssueDatestringNomaxLength: 10收款方个人识别号码生效日期,在不同国家下可选类型不同,yyyy-MM-dd格式
data.payeeInfo.document.documentExpireDatestringNomaxLength: 10收款方个人识别号码失效日期,在不同国家下可选类型不同,yyyy-MM-dd格式
data.payeeInfo.addressobjectNo收款方地址信息
data.payeeInfo.address.addressstringNomaxLength: 512收款方地址
data.payeeInfo.address.citystringNomaxLength: 255收款方城市
data.payeeInfo.address.statestringNomaxLength: 255
data.payeeInfo.address.zipCodestringNomaxLength: 32收款方邮编
data.payeeInfo.payeePhonestringNomaxLength: 64收款方移动电话号码,在不同国家-支付方式下填写规范不同
data.payeeInfo.birthDatestringNomaxLength: 10收款方出生日期,yyyy-MM-dd格式
data.payeeInfo.emailstringNomaxLength: 64收款方邮箱
data.payeeInfo.payeeNationalitystringNomaxLength: 2收款人国籍,ISO 3166-1 alpha-2标准,如CN,US
data.payeeInfo.payeeGenderstringNomaxLength: 1收款人性别,枚举值F 或M(F=Female,M=Male)
data.payeeInfo.payeeBirthCountrystringNomaxLength: 2收款人出生国家,ISO 3166-1 alpha-2标准,如CN,US
data.payerInfoobjectNo付款方信息
data.payerInfo.nameobjectNo付款方姓名,支持英文、空格、逗号、中划线、点,在不同国家-支付方式下填写规范不同
data.payerInfo.name.firstNamestringNo付款方名
data.payerInfo.name.middleNamestringNo付款方中间名,多段中间名时,使用空格进行分隔
data.payerInfo.name.lastNamestringNo付款方姓
data.payerInfo.name.fullNamestringNo付款方全名
data.expiryDaysstringNo取款码有效天数,当前仅在FawryCash中有效,支持传入1~15整数(1=24Hours),其他值或不传则默认为7
data.remarkstringNo出款附言或备注,允许英文,数字,中划线,空格,点;受渠道约束,该字段可能会进行特殊处理,如超长截断或填充默认值
data.notifyEmailstringNomaxLength: 64收款方通知邮箱,目前只有个别支付方式会发送取款码邮件,比如FAWRY
data.notifyPhonestringNomaxLength: 64收款方通知电话
data.purposestringNomaxLength: 32出款目的,枚举值,ISUBIL:向公用事业提供商付款(i.e.水电煤账单); EPTOUR:旅游业; EPTKAG:支付旅游门票或旅行社费用; ISPAYR:支付工资; ISPAYRA:支付代理工资; ISGDDS:货物买卖; ISSCVE:购买和销售服务; ISSUPP:供应商付款; ISLOGS:物流和运输服务付款; INCEN:激励/促销/用户获取活动; GAME:游戏设备、游戏币和其他游戏物品; SAMENM:企业同名账户转账; PAYCMSN:报销/福利发放/佣金发放; SAMENMC:法人/股东/董事个人账户; AGOPEXP:代运营费用结算; ADEXP:广告费用结算;RFND:退货;SMCNTST:子商户结算;LGTEP:供应商付款-物流费用结算;GOODPAY:供应商付款-货款结算;SINVEST:股票投资;FINVEST:基金投资;TAXPAY:纳税/支付税款;LOANPAY:支付贷款; OTHER:其他;

Example

json
{
  "version": "1.4",
  "keyVersion": "1",
  "requestTime": "2025-07-02T08:43:43.362+00:00",
  "appId": "appId",
  "merchantNo": "merchantNo",
  "data": {
    "sourceAccount": "USD",
    "destinationCurrency": "IDR",
    "country": "ID",
    "payeeInfo": {
      "paymentMethodType": "BANK_TRANSFER",
      "targetOrg": "BCA",
      "payeeType": "",
      "accountInfo": {
        "accountNo": "SA1210987654987654987654",
        "accountType": "",
        "checkDigit": ""
      },
      "bankInfo": {
        "bankCode": "NCBKSAJE",
        "bankName": "Raiffeisenbank",
        "bankBranch": "",
        "bankCity": "asdasd",
        "corAccountNo": "30101810200000000700"
      },
      "name": {
        "firstName": "Williams",
        "middleName": "middleName",
        "lastName": "lastName",
        "fullName": "Chiamaka chukwudolue"
      },
      "document": {
        "documentType": "",
        "documentId": "",
        "documentIssueDate": "1994-06-21",
        "documentExpireDate": ""
      },
      "address": {
        "address": "test address",
        "city": "",
        "zipCode": ""
      },
      "payeePhone": "79123456789",
      "birthDate": "1994-06-21",
      "email": "example@gmail.com",
      "payeeNationality": "ID",
      "payeeGender": "F",
      "payeeBirthCountry": "ID"
    },
    "payerInfo": {
      "name": {
        "fullName": ""
      },
      "subMerchantNo": "",
      "businessLegalName": "name yssss",
      "registrationCountry": "Eg",
      "merchantCategoryCode": "",
      "payerId": "23434234"
    },
    "expiryDays": "",
    "remark": "remark test"
  }
}

Responses

200

FieldTypeRequiredConstraintsDescriptionEnum
codestringYes返回码,APPLY_SUCCESS代表成功。只代表接口请求成功,不代表订单状态。
msgstringYes返回描述,’Success.’
dataobjectYes返回数据体
data.validationCodestringYes校验结果码,PASS:没有校验失败的字段,PARAMS_INVALID:存在校验失败的字段
data.validationPassedFieldsarray[object]Yes通过校验的字段集合
data.validationPassedFields[].fieldstringNo通过校验的字段路径
data.ignoredFieldsarray[object]Yes忽略校验的字段集合
data.ignoredFields[].fieldstringYes忽略校验的字段路径
data.validationFailedFieldsarray[object]Yes校验失败的字段集合
data.validationFailedFields[].fieldstringYes校验失败的字段路径
data.validationFailedFields[].errorMsgstringYes校验失败原因

Response Example

json
{
  "msg": "Success.",
  "code": "APPLY_SUCCESS",
  "data": {
    "validationCode": "PARAMS_INVALID",
    "validationPassedFields": [
      {
        "field": "payeeInfo.name.fullName"
      }
    ],
    "ignoredFields": [
      {
        "field": "payeeInfo.bankInfo.bankCode"
      },
      {
        "field": "payeeInfo.birthDate"
      },
      {
        "field": "payeeInfo.bankInfo.bankCity"
      },
      {
        "field": "payeeInfo.document.documentIssueDate"
      },
      {
        "field": "payeeInfo.name.lastName"
      },
      {
        "field": "remark"
      },
      {
        "field": "payeeInfo.payeePhone"
      },
      {
        "field": "payeeInfo.bankInfo.corAccountNo"
      },
      {
        "field": "payeeInfo.email"
      },
      {
        "field": "payeeInfo.address.address"
      },
      {
        "field": "payeeInfo.bankInfo.bankName"
      },
      {
        "field": "payeeInfo.name.middleName"
      },
      {
        "field": "notifyEmail"
      }
    ],
    "validationFailedFields": [
      {
        "field": "payeeInfo.name.firstName",
        "errorMsg": "The payeeInfo.name.firstName should not exceed 64 characters"
      },
      {
        "field": "payeeInfo.accountInfo.accountNo",
        "errorMsg": "Please enter numbers."
      }
    ]
  }
}

此页面的内容有帮助吗?

感谢您帮助改进 PayerMax 产品文档!

Released under the MIT License.