汇款接口目标用户为所有开通了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实际付款金额(收款币种)=待汇款金额(汇款币种)*汇率(收款币种/汇款币种)
- 因通道方可能会收取额外的费用,所以收款人实际到账金额可能会少于实际付款金额
![]()