跳到主要内容

创建商户

请求地址

POST

https://sandbox.j-pay.net/pay/merchant/create

测试账号

商户ID:10010

ApiKey: 7e4nicn14nhyup146dfbi8hpnpus9juz

请求头

请求头名称请求头值
Agent-Merchant-Id10010

请求参数

参数名称类型是否必填参与签名参数说明
emailStringYY商户邮箱
countryStringYY国家,是一个ISO 3166-1 alpha-2国家代码
companyArrayYN关于公司或业务的信息。
business_profileArrayNN关于商户账户的业务信息。
bankArrayNN结算账户信息
personsArrayListNN法人信息
signStringYN请参阅验证签名字段格式

Company

参数名称类型是否必填参与签名参数说明
nameStringYN公司名称.
tax_idStringNN企业证件号码。
phoneStringNN公司的电话号码。
stateStringNN国家的州、县、省或区域(ISO 3166-2)
cityStringNN城市.
line1StringNN地址行1.
line2StringNN地址行2.
postal_codeStringNNZIP或邮政编码。
cert_valid_dateStringNN证件有效期,格式为YYYY-MM-DD。
cert_past_dateStringNN证件过期日期,格式为YYYY-MM-DD, 不传或为空时,则长期有效。

Business Profile

参数名称类型是否必填参与签名参数说明
mccStringYN商户分类代码。例如:7372表示在线购物。
urlStringYN商户的公开网站。例如:google.com

Documents

File ID collection, Upload files

Parameter NameTypeRequiredSign(Y OR N)Parameter Description
company_registrationArrayYN一份或多份文件,证明公司已在相关地方当局注册。(公司注册证书)
company_addressArrayYN一份或多份文件,证明公司地址。(经营地址证明)
company_moaArrayYN一份或多份文件,证明公司的协会声明。(公司章程)
bank_proofArrayYN一份或多份文件,证明公司的银行账户。(比如水电账单、银行流水之类的)

Bank Account

参数名称类型是否必填参与签名参数说明
typeEnumYY结算账户类型:
china: 仅结算人名币
other: 含港澳台
bank_nameStringYY银行名称
accountStringYY结算账户号(不包含授权收款账户)
subbranchStringNN分行名称
addressStringNN银行地址
swift_codeStringNNSWIFT code, type为other时必填
remarkStringNN备注

Persons

参数名称类型是否必填参与签名参数说明
id_numberStringNN个人证件号码
first_nameStringNN个人名
last_nameStringNN个人姓
birthdayStringNN个人出生日期
phoneStringNN个人手机号
percent_ownershipStringNN公司资产占比,取值范围0-100,单位%
cert_issue_dateStringNN个人证件Issue日期
cert_expire_dateStringNN个人证件过期日期,不传或为空则为长期有效
addressArrayNN个人地址
titleStringNN个人职务, 例如CEO
documentArrayNN个人证件, 例如公司授权书, 护照等, 请参考上传文件

返回参数

参数名称类型参数说明
codeString请求状态
1:成功
0:失败
infoString请求消息
dataArray响应数据
data.idInteger商户ID
data.bank_idString银行账户ID
data.person_idsArray员工ID列表

示例

import { md5 } from "js-md5";
import axios from "axios";

const KEY = "7e4nicn14nhyup146dfbi8hpnpus9juz";
const MEMBER_ID = "10010";
let query = {
email: Date.now().valueOf() + "@123.com",
country: 'US',
};
let signData = [];
Object.keys(query)
.sort()
.forEach((key) => signData.push(`${key}=${query[key]}`));

signData.push(`key=${KEY}`);
Object.assign(query, {
sign: md5(signData.join("&")).toUpperCase(),
company: {
name: Date.now().valueOf(),
phone: "1234567890",
tax_id: "000000000",
city: "San Francisco",
state: "CA",
line1: "123 Main St",
postal_code: "94102",
},
business_profile: {
mcc: "7372",
url: "nimiya.shop"
},
bank: {
bank_name: 'ETH',
account: '0000000000000000',
type: 'other',
swift_code: 'ETHBUSD',
},
persons: [
{
id_number: '000000000',
first_name: 'fred',
last_name: 'flintstone',
birthday: '1990-01-01',
phone: '1234567890',
cert_issue_date: '2020-01-01',
percent_ownership: '100',
address: {
country: 'US',
state: "CA",
city: "San Francisco",
line1: "123 Main St",
postal_code: "94102",
},
documents: {
company_authorization: ['b97864b6ed8b4e1f94494c884f2b6d92'],
passport: ['b97864b6ed8b4e1f94494c884f2b6d92'],
passport_handing: ['b97864b6ed8b4e1f94494c884f2b6d92'],
},
},
],
});

axios
.request({
url: "https://sandbox.j-pay.net/pay/merchant/create",
method: "post",
headers: {
"Agent-Merchant-Id": MEMBER_ID,
"Content-Type": "application/x-www-form-urlencoded",
},
data: query,
})
.then(({ data }) => {
console.log("success", data);
})
.catch((error) => {
console.log("error", error);
});