收款人
获取模板元数据
获取支付方式模板的详细字段级元数据,包括校验规则、文本类型和下拉选项列表。
GET
/
v2
/
payments
/
templates
/
metamessage
获取模板元数据
curl --request GET \
--url https://api-test.velafi.com/v2/payments/templates/metamessage \
--header 'X-BH-TOKEN: <api-key>'import requests
url = "https://api-test.velafi.com/v2/payments/templates/metamessage"
headers = {"X-BH-TOKEN": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-BH-TOKEN': '<api-key>'}};
fetch('https://api-test.velafi.com/v2/payments/templates/metamessage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api-test.velafi.com/v2/payments/templates/metamessage")
.header("X-BH-TOKEN", "<api-key>")
.asString();{
"code": 123,
"msg": "<string>",
"data": {
"data.id": 123,
"data.paymentName": "<string>",
"data.paymentType": 123,
"data.trench": "<string>",
"data.fieldList": [
{
"index": 123,
"indexCode": "<string>",
"title": "<string>",
"textType": 123,
"promptText": "<string>",
"minLimit": 123,
"maxLimit": 123,
"isOptional": true,
"isAccount": true,
"extendInfo": "<string>"
}
]
}
}/v2/payments/templates 仅返回简单的键值骨架,而此端点提供了 UI 正确渲染和校验每个字段所需的完整元数据。对于每个字段,您将获得其位置索引、唯一的 indexCode(当其非空时,将其用作 fieldJson 中的键)、显示标题、预期的文本类型、最小/最大字符限制、该字段是否可选,以及编码在 extendInfo 中的枚举下拉选项。使用此端点可以动态构建收款人创建表单,而无需硬编码字段规则。
端点
GET https://api.velafi.com/v2/payments/templates/metamessage
在沙盒环境中测试时,请使用
https://api-test.velafi.com/v2/payments/templates/metamessage。请求参数
integer
必填
需要获取字段元数据的支付方式的数字 ID。
响应字段
integer
响应状态码。
200 表示成功。string
可读的响应信息,例如
"SUCCESS"。object
支付方式元数据对象。
显示 data 字段
显示 data 字段
integer
支付方式 ID。
string
支付方式的显示名称(例如
"Wire (CPN)")。integer
表示支付类型类别的数字代码。
string
底层支付通道或服务提供商(例如
"Circle Payment Network")。array
有序的字段描述符列表。每一项描述一个输入字段。
显示 fieldList 项字段
显示 fieldList 项字段
integer
字段在表单中的顺序位置。
string
该字段的唯一代码。当其非空时,添加收款人时将此值用作
fieldJson 中的键。当其为空时,改用 title 的值。string
字段的可读显示标签。
integer
描述预期输入格式的数字代码。请参阅下方的文本类型表。
string
显示在输入框内的占位符或提示文本。
integer
允许的最小字符长度或数值。
integer
允许的最大字符长度或数值。
boolean
若该字段可省略则为
true;若为必填则为 false。boolean
若该字段表示账号或账户标识符则为
true。string
包含附加元数据的 JSON 字符串。对于
textType 10(下拉列表),其中包含选项数组,例如 [{"code":"B2B","name":"B2B"},{"code":"B2C","name":"B2C"}]。其他类型为空字符串。文本类型参考
| 值 | 类型 | 说明 |
|---|---|---|
| 1 | number | 仅限数字字符(0–9) |
| 2 | letter | 仅限字母字符(A–Z、a–z) |
| 3 | alphanumeric | 仅限字母和数字 |
| 4 | string | 任意自由文本字符串 |
| 5 | image | 图片数据。通过 /v2/base/file/upload 上传并提交返回的路径。多个路径以逗号分隔。 |
| 6 | ISO 3166-1 | 国家代码(例如 US、CN) |
| 7 | ISO 3166-2 | 行政区划代码(例如 US-CA) |
| 8 | international dialing code | 国际电话区号(例如 1、86) |
| 9 | date | yyyy-MM-dd 格式的日期 |
| 10 | dropdown list | 枚举值;选项以 JSON 形式编码在 extendInfo 中 |
示例
curl -X GET "https://api.velafi.com/v2/payments/templates/metamessage?paymentId=120" \
-H "X-BH-TOKEN: YOUR_TOKEN"
{
"code": 200,
"msg": "SUCCESS",
"data": {
"id": 120,
"paymentName": "Wire (CPN)",
"paymentType": 5,
"trench": "Circle Payment Network",
"fieldList": [
{
"index": 1,
"indexCode": "beneficiaryName",
"textType": 4,
"title": "Beneficiary Name",
"promptText": "Please enter Beneficiary Name",
"minLimit": 1,
"maxLimit": 300,
"isOptional": false,
"isAccount": false,
"extendInfo": ""
},
{
"index": 3,
"indexCode": "country",
"textType": 6,
"title": "Nationality",
"promptText": "Please select Nationality",
"minLimit": 1,
"maxLimit": 300,
"isOptional": false,
"isAccount": false,
"extendInfo": ""
},
{
"index": 9,
"indexCode": "dateOfBirth",
"textType": 9,
"title": "Date of Birth / Date of Incorporation",
"promptText": "Please enter Date of Birth / Date of Incorporation (yyyy-MM-dd)",
"minLimit": 1,
"maxLimit": 10,
"isOptional": true,
"isAccount": false,
"extendInfo": ""
},
{
"index": 13,
"indexCode": "useCase",
"textType": 10,
"title": "Use Case",
"promptText": "Please select Use Case",
"minLimit": 1,
"maxLimit": 100,
"isOptional": false,
"isAccount": false,
"extendInfo": "[{\"code\":\"B2B\",\"name\":\"B2B\"},{\"code\":\"B2C\",\"name\":\"B2C\"},{\"code\":\"C2B\",\"name\":\"C2B\"},{\"code\":\"C2C\",\"name\":\"C2C\"}]"
},
{
"index": 24,
"indexCode": "accountNumber",
"textType": 3,
"title": "Account Number",
"promptText": "Please enter Account Number",
"minLimit": 1,
"maxLimit": 34,
"isOptional": false,
"isAccount": true,
"extendInfo": ""
}
]
}
}
当
indexCode 非空时,在 fieldJson 请求体中将其用作键。当 indexCode 为空时,改用 title 字符串作为键。⌘I
获取模板元数据
curl --request GET \
--url https://api-test.velafi.com/v2/payments/templates/metamessage \
--header 'X-BH-TOKEN: <api-key>'import requests
url = "https://api-test.velafi.com/v2/payments/templates/metamessage"
headers = {"X-BH-TOKEN": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-BH-TOKEN': '<api-key>'}};
fetch('https://api-test.velafi.com/v2/payments/templates/metamessage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api-test.velafi.com/v2/payments/templates/metamessage")
.header("X-BH-TOKEN", "<api-key>")
.asString();{
"code": 123,
"msg": "<string>",
"data": {
"data.id": 123,
"data.paymentName": "<string>",
"data.paymentType": 123,
"data.trench": "<string>",
"data.fieldList": [
{
"index": 123,
"indexCode": "<string>",
"title": "<string>",
"textType": 123,
"promptText": "<string>",
"minLimit": 123,
"maxLimit": 123,
"isOptional": true,
"isAccount": true,
"extendInfo": "<string>"
}
]
}
}
