汇款接口目标用户为所有开通了Transfer功能的MONI注册商户。商户须在对应汇款币种的MONI账户中有足够余额才能进行汇款操作。
接口支持的汇款货币见下表:
货币代码 | 货币名称 |
AUD | 澳元 |
收款货币见《FX Playbook》
名称 | 内容 |
访问方式 | Web API |
传输协议 | HTTPS |
提交方式 | HTTP POST |
数据格式 | 请求返回数据为Json格式 |
字符编码 | UTF-8 |
Http Header | ContentType=application/json |
超时设定 | 请求超时时间为5分钟,即服务器请求接收时间与时间戳标识时间间隔需要小于5分钟。 |
签名算法 | 签名算法为MD5 |
1)金额
金额单位为对应币种的标准单位。
2)时间
系统中所有时间为澳洲东部时间AEST。
3)时间戳
UTC标准时间,自1970年1月1日0点0分0秒以来的毫秒数。
接口调用时需要进行签名。签名方法如下:
1) 参与签名字段
参与签名字段如下:
字段名 | 类型 | 说明 |
m_number | String | 商户编号。MONI商户的唯一编号 |
timestamp | Long | 时间戳,见参数规定中的时间戳 |
nonce_str | String | 随机字符串,10-32位随机码,允许使用a-z | A-Z | 0-9字符。用于保证签名的不可预测性。推荐使用随机数算法生成。 |
secret_key | String | 商户API密钥。可在商户后台中获取。 |
2) 生成签名
将以上字段按照m_number×tamp&nonce_str&secret_key方式进行拼接(顺序一定要正确),之后用MD5算法对拼接后的字符串进行摘要,然后转成大写,得到签名字符串。
3) 将签名字符串以sign为key,包含在接口参数中进行请求。
Transfer商户汇款API包含如下接口:
接口名称 | 说明 | |
1 | Create Recipient | 创建收款人 |
2 | Query Recipients | 查询收款人信息 |
3 | Pre-Create Send | 汇款预下单 |
4 | Send | 汇款下单 |
5 | Cancel | 取消汇款 |
6 | Query Send | 查询汇款状态及信息 |
7 | Account List | 获取账户列表 |
8 | Account Balance | 查询账户余额 |
9 | Send List | 查询交易记录列表 |
接口说明 | 创建收款人 | |||||
接口地址 | https://api.moni.im/transfer/api/v1/create_recipient | |||||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/create_recipient | |||||
请求参数 | 参数名称 | 类型 | 属性 | |||
type | String | 必录,收款人类型。
|
||||
currency | String | 必录,收款货币
传递ISO-4217规范中的货币代码 |
||||
first_name | String | 当收款人类型为个人时,该字段传个人的名 | ||||
middle_name | String | 非必录,该字段传个人的中间名 | ||||
last_name | String | 当收款人类型为个人时,该字段传个人的姓 | ||||
company_name | String | 公司名称为企业时必填 | ||||
country | String | 必录,收款人所在国家
传递ISO-3166-1规范中的二位国家代码 |
||||
bank_country | String | 必录,收款银行所在国家
传递ISO-3166-1规范中的二位国家代码 |
||||
state | String | 必录,收款人所在州/省 | ||||
city | String | 必录,收款人所在城市 | ||||
street_address | String | 必录,收款人街道地址 | ||||
street_address2 | String | 非必录,收款人街道地址补充信息 | ||||
postal_code | String | 必录,收款人所在地邮编信息 | ||||
String | 非必录,收款人邮箱 | |||||
nickname | String | 非必录,收款人昵称 | ||||
account_type | String | 收款人账户类型,具体参见《FX Playbook》 | ||||
account_info | Object | 收款人账户信息,具体参见《FX Playbook》 | ||||
返回值 | 名称 | 类型 | 说明 | |||
成功返回 | is_success | Bool | 成功时返回true | |||
recipient_id | Long | 收款人ID | ||||
失败返回 | is_success | Bool | 成功时返回false | |||
error_code | String | 错误码 | ||||
error_msg | String | 错误信息 | ||||
错误说明 | 错误码 | 说明 | ||||
RISKCONTROL_DENIED | 风控拒绝,不能创建收款人 | |||||
ACCOUNT_TYPE_ERROR | 收款人账户类型错误,可能原因是传递了错误的账户类型,或该账户类型不在对应币种的支持范围中 | |||||
其他错误见《FX Playbook》中的定义 |
接口说明 | 根据条件查询收款人信息,返回匹配的收款人列表。
根据所传的所有参数进行组合筛选, |
||||||||||||||||||||||||||
接口地址 | https://api.moni.im/transfer/api/v1/query_recipients | ||||||||||||||||||||||||||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/query_recipients | ||||||||||||||||||||||||||
请求参数
|
参数名称 | 类型 | 属性 | ||||||||||||||||||||||||
recipient_id | Long | 收款人ID,精确匹配 | |||||||||||||||||||||||||
type | String | 收款人类型,精确匹配 | |||||||||||||||||||||||||
country | String | 收款人所在国家,精确匹配, 传递ISO-3166-1规范中的二位国家代码 |
|||||||||||||||||||||||||
currency | String | 收款人币种,精确匹配 | |||||||||||||||||||||||||
first_name | String | 收款人名,模糊匹配 | |||||||||||||||||||||||||
last_name | String | 收款人姓,模糊匹配 | |||||||||||||||||||||||||
company_name | String | 收款人公司名称,模糊匹配 | |||||||||||||||||||||||||
account_type | String | 收款人账户类型,精确匹配 | |||||||||||||||||||||||||
返回值 | 名称 | 类型 | 说明 | ||||||||||||||||||||||||
成功返回 | is_success | Bool | 成功时返回true | ||||||||||||||||||||||||
recipients | List | 收款人列表
列表元素如下:
|
|||||||||||||||||||||||||
失败返回 | is_success | Bool | 失败时返回false | ||||||||||||||||||||||||
error_code | String | 错误码 | |||||||||||||||||||||||||
error_msg | String | 错误信息 | |||||||||||||||||||||||||
错误说明 | 错误码 | 说明 |
接口说明 | 汇款预下单。正式提交汇款前,预先提交汇款相关信息,系统返回并锁定汇率。
汇款流程见《MONI Transfer API下单流程》 |
|||
接口地址 | https://api.moni.im/transfer/api/v1/precreate_send | |||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/precreate_send | |||
请求参数 | 参数名称 | 类型 | 属性 | |
send_currency | String | 必录,汇款货币 | ||
send_amount
(暂不需要) |
Decimal | 汇款金额
若该字段不为空,则receive_amount字段不生效 该金额为汇款人包含手续费总共需要支付的金额; |
||
receive_amount | Decimal | 收款金额
该金额为MONI会向收款人实际支付的金额,手续费及汇款金额会通过该金额反算得到。 |
||
recipient_id | Long | 必录,收款人ID | ||
send_reason | String | 必录,汇款原因
具体原因见《汇款原因》 |
||
out_transaction_id | String | 非必录,外部交易编号
若该字段不为空,则商户需要保证其唯一性 |
||
返回值 | 名称 | 类型 | 说明 | |
成功返回 | is_success | Bool | 成功时返回true | |
send_id | Long | 汇款订单ID | ||
send_currency | String | 汇款币种 | ||
receive_currency | String | 收款币种 | ||
exchange_rate | Decimal | 汇率 | ||
send_amount | Decimal | 实际汇款金额 | ||
receive_amount | Decimal | 实际收款金额 | ||
fee_amount | Decimal | 手续费金额(以汇款币种为单位)
金额及手续费计算公式见《手续费计费方式》 |
||
失败返回 | is_success | Bool | 失败时返回false | |
error_code | String | 错误码 | ||
error_msg | String | 错误信息 | ||
错误说明 | 错误码 | 说明 | ||
RISKCONTROL_DENIED | 风控拒绝,不能创建汇款单 | |||
SEND_REASON_ERROR | 汇款原因错误,请参见汇款原因列表 | |||
SEND_AMOUNT_TOO_LITTLE | 汇款金额太小 | |||
INSUFFICIENT_BALANCE | 账户余额不足 | |||
CURRENCY_NOT_SUPPORT | 不支持的汇款币种 | |||
DUPLICATE_OUT_TRANSACTION_ID | 重复的外部交易编号 |
接口说明 | 汇款预下单创建之后,在超时时间范围内,提交正式汇款。
若提交正式汇款时,实时汇率波动过大或超过超时时间范围,则该订单无效,需要重新通过预创建订单锁定汇率。 提交后,系统会锁定商户对应账户内的余额并正式执行汇款单。 汇款流程见《MONI-Transfer API下单流程》 |
|||
接口地址 | https://api.moni.im/transfer/api/v1/send | |||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/send | |||
请求参数 | 参数名称 | 类型 | 属性 | |
send_id | Long | 必录,预创建的汇款订单ID | ||
account_id
(暂不需要) |
Long | 必录,实际扣款的商户内部账户ID | ||
返回值 | 名称 | 类型 | 说明 | |
成功返回 | is_success | Bool | 成功时返回true | |
失败返回 | is_success | Bool | 失败时返回false | |
error_code | String | 错误码 | ||
error_msg | String | 错误信息 | ||
错误说明 | 错误码 | 说明 | ||
RISKCONTROL_DENIED | 风控拒绝,不能创建汇款单 | |||
INSUFFICIENT_BALANCE | 账户余额不足 |
接口说明 | 汇款预下单创建之后,在正式提交之前 ,可以直接取消该汇款单
若15分钟之内没有进行确认提交,系统也会自动取消该汇款单 |
|||
接口地址 | https://api.moni.im/transfer/api/v1/cancel | |||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/cancel | |||
请求参数 | 参数名称 | 类型 | 属性 | |
send_id | Long | 必录,预创建的汇款订单ID | ||
返回值 | 名称 | 类型 | 说明 | |
成功返回 | is_success | Bool | 成功时返回true | |
失败返回 | is_success | Bool | 失败时返回false | |
error_code | String | 错误码 | ||
error_msg | String | 错误信息 | ||
错误说明 | 错误码 | 说明 | ||
TRANSACTION_NOT_EXISTS | 交易不存在,可能是汇款单号错误 | |||
TRANSACTION_SUBMITTED | 交易已提交,不允许取消 | |||
TRANSACTION_CANCELLED | 交易已取消,不允许重复取消 |
接口说明 | 汇款单创建后,可通过该接口获取汇款状态及订单信息。
汇款流程见《MONI-Transfer API下单流程》 |
|||||||||||||
接口地址 | https://api.moni.im/transfer/api/v1/query_send | |||||||||||||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/query_send | |||||||||||||
请求参数 | 参数名称 | 类型 | 属性 | |||||||||||
send_id | Long | 汇款订单ID | ||||||||||||
out_transaction_id | String | 外部交易编号
l 外部交易编号和汇款订单ID其中必传一个;若汇款订单ID已传,则外部交易编号字段值不生效 |
||||||||||||
返回值 | 名称 | 类型 | 说明 | |||||||||||
成功返回 | is_success | Bool | 成功时返回true | |||||||||||
send_id | Long | 订单ID | ||||||||||||
send_currency | String | 汇款币种 | ||||||||||||
receive_currency | String | 收款币种 | ||||||||||||
exchange_rate | Decimal | 汇率 | ||||||||||||
send_amount | Decimal | 实际汇款金额 | ||||||||||||
receive_amount | Decimal | 实际收款金额 | ||||||||||||
fee_amount | Decimal | 手续费金额(以汇款币种为单位) | ||||||||||||
recipient_id | Long | 收款人ID | ||||||||||||
create_date_time | DateTime | 订单创建时间,yyyyMMddHHmmss | ||||||||||||
out_transaction_id | String | 外部交易编号 | ||||||||||||
status | String | 汇款单状态
汇款单状态如下:
|
||||||||||||
失败返回 | is_success | Bool | 失败时返回false | |||||||||||
error_code | String | 错误码 | ||||||||||||
error_msg | String | 错误信息 | ||||||||||||
错误说明 | 错误码 | 说明 |
接口说明 | 查询商户的账户列表 | |||||||||||||||||||||
接口地址 | https://api.moni.im/transfer/api/v1/account_list | |||||||||||||||||||||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/account_list | |||||||||||||||||||||
请求参数 | 参数名称 | 类型 | 属性 | |||||||||||||||||||
currency | String | 非必录。若该字段不为空,则返回该币种对应的账户列表;否则返回所有账户列表 | ||||||||||||||||||||
返回值 | 名称 | 类型 | 说明 | |||||||||||||||||||
成功返回 | is_success | Bool | 成功时返回true | |||||||||||||||||||
accounts | List | 账户列表
列表元素如下:
|
||||||||||||||||||||
失败返回 | is_success | Bool | 失败时返回false | |||||||||||||||||||
error_code | String | 错误码 | ||||||||||||||||||||
error_msg | String | 错误信息 | ||||||||||||||||||||
错误说明 | 错误码 | 说明 |
接口说明 | 查询商户的账户余额 | |||
接口地址 | https://www.api.moni.im/transfer/api/v1/account_balance | |||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/account_balance | |||
请求参数 | 参数名称 | 类型 | 属性 | |
account_id | Long | 必录,账户ID | ||
返回值 | 名称 | 类型 | 说明 | |
成功返回 | is_success | Bool | 成功时返回true | |
currency | String | 账户币种 | ||
total_amount | Decimal | 账户总余额 | ||
available_fund | Decimal | 账户可用余额 | ||
失败返回 | is_success | Bool | 失败时返回false | |
error_code | String | 错误码 | ||
error_msg | String | 错误信息 | ||
错误说明 | 错误码 | 说明 | ||
ACCOUNT_NOT_EXISTS | 账户不存在,可能是账户ID错误 |
接口说明 | 根据条件返回分页汇款列表 | |||
接口地址 | https://api.moni.im/transfer/api/v1/send_list | |||
测试接口地址 | https://testapi.moni.im/transfer/api/v1/send_list | |||
请求参数 | 参数名称 | 类型 | 属性 | |
create_datetime_from | DateTime | 非必录,汇款单创建起始时间 | ||
create_datetime_end | DateTime | 非必录,汇款单创建结束时间 | ||
status | String | 非必录,汇款单状态 | ||
send_currency | String | 非必录,汇款币种 | ||
receive_currency | String | 非必录,收款币种 | ||
page_size | Int | 必录,页大小 | ||
page_number | Int | 必录,页码 | ||
返回值 | 名称 | 类型 | 说明 | |
成功返回 | is_success | Bool | 成功时返回true | |
sends | List | 汇款单列表
列表元素为Send交易对象 |
||
total_count | Int | 总记录数 | ||
page_number | Decimal | 账户可用余额 | ||
失败返回 | is_success | Bool | 失败时返回false | |
error_code | String | 错误码 | ||
error_msg | String | 错误信息 | ||
错误说明 | 错误码 | 说明 |
- Send交易对象定义
字段名称 | 类型 | 说明 | ||||||||||||
send_id | Long | 订单ID | ||||||||||||
send_currency | String | 汇款币种 | ||||||||||||
receive_currency | String | 收款币种 | ||||||||||||
exchange_rate | Decimal | 汇率 | ||||||||||||
send_amount | Decimal | 实际汇款金额 | ||||||||||||
receive_amount | Decimal | 实际收款金额 | ||||||||||||
fee_amount | Decimal | 手续费金额(以汇款币种为单位) | ||||||||||||
recipient_id | Long | 收款人ID | ||||||||||||
create_date_time | DateTime | 订单创建时间,yyyyMMddHHmmss | ||||||||||||
out_transaction_id | String | 外部交易订单 | ||||||||||||
status | String | 汇款单状态
汇款单状态如下:
|
- MONI-Transfer API下单流程
- 汇款原因
名称 | 说明 | 可用收款人类型 | |
PERSON | BUSINESS | ||
Advertising Fees | 广告费 | √ | |
Expense Reimbursement | 经营成本支出 | √ | |
Financial Services | 金融服务费 | √ | |
Legal Services | 法务服务费 | √ | |
Medical Reimbursement | 医药费 | √ | √ |
Payroll | 工资 | √ | |
Processing | 处理费 | √ | |
Trade Related Services | 贸易服务费 | √ | |
Transaction between Banks | 银行转账 | √ | √ |
Transportation Costs | 交通出行费用 | √ | √ |
Travel Related Services | 旅游服务费 | √ | √ |
Personal | 个人消费 | √ | |
Other | 其他费用,若实际汇款原因不在上述原因中,请使用英文填写原因 | √ | √ |
- 手续费计费方式
手续费按照如下流程进行计算:
- 待汇款金额(汇款币种)= 实际汇款金额(汇款币种) – 手续费(汇款币种)
- OMIPAY实际付款金额(收款币种)=待汇款金额(汇款币种)*汇率(收款币种/汇款币种)
- 因通道方可能会收取额外的费用,所以收款人实际到账金额可能会少于实际付款金额