充值或扣款
您可以使用本接口向商务中心下广告账号充值或者扣款,或为商务中心增加或减少信用额度。
代理商商务中心和直客商务中心都能执行资金管理相关操作。
注意
只有拥有财务经理权限的用户才能在商务中心执行充值或者扣款操作。您可以使用/bc/member/invite/ 和 /bc/member/update/设置或更改成员权限。
v1.2与v1.3版本对比
以下表格概括了 v1.2与v1.3接口的变化。
``xtable
|变化内容{30%}|v1.2{35%}|v1.3{35%}|
|---|---|---|
|接口路径| /v1.2/bc/transfer/| /v1.3/bc/transfer/|
|请求参数类型|advertiser_id: number <br>bc_id: number |advertiser_id: string <br>bc_id: string |
| 新增请求参数| / |amount_info<br>payment_portfolio_id|
|返回参数类型|advertiser_id: number <br>bc_id: number |advertiser_id: string <br>bc_id: string |
|新增返回参数| / |transaction_infos<br>payee_account<br>remitter_account`|
## 请求
**地址** https://business-api.tiktok.com/open_api/v1.3/bc/transfer/
**方法** POST
**Header**
``` xtable
|字段{30%}|类型{15%}|描述{55%}|
|---|---|---|
|Access-Token {必填}|string|授权访问令牌。可以通过[获取访问令牌](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162)接口获取。 |
|Content-Type {必填}|string|请求消息类型。<br>允许值: `"application/json"`。 |
参数
|字段{30%}|类型{15%}|描述{55%}|
|---|---|---|
|bc_id {必填}|string| 商务中心 ID。|
|transfer_level |string| 操作层级。<br><br>枚举值:<ul><li> `ADVERTISER`:向广告账号充值或者扣款。</li><li>`BC`:为商务中心增加或减少信用额度。<ul><li> `transfer_level` 设置为 `BC` 时,需通过 `bc_id` 指定一个已启用月度结算的商务中心的 ID。</li></ul></li></ul> 默认值:`ADVERTISER`。|
|payment_portfolio_id {+条件必填}|string|如果有多个财务资产组合与商务中心 (`bc_id`) 同属一个客户,此为必填字段。<br><br>财务资产组合 ID。<br><br>若想获取与商务中心同属一个客户的财务资产组合列表,需使用 [/payment_portfolio/get/](1839151931301954.html) 接口。|
|advertiser_id {+条件必填}|string| 当`transfer_level`设置为`ADVERTISER`或未传入 `transfer_level` 时必填。<br><br>广告账户 ID。|
|transfer_type {必填}|string| 转账类型。<br><br>枚举值:<ul><li>`RECHARGE`:向广告账号充值或为商务中心增加信用额度。</li><li>`REFUND`:从广告账号扣款或从商务中心减少信用额度。</li></ul> |
| amount_info | object | <ul><li>仅当 `transfer_level` 为 `ADVERTISER` 时生效。</li><li>`amount_info`、`cash_amount` 和 `grant_amount` 必传其一。</li></ul>要处理的金额详情。<br><br>当指定 `amount_info` 时,将忽略 `amount_info` 字段结构之外的 `cash_amount` 和 `grant_amount`。 |
#| cash_amount | number | 要操作的现金金额。 |
#| grant_amount | number | 要操作的赠款金额。 |
#| credit_amount | number | 要操作的信用额度金额。 |
|cash_amount {+条件必填} |number| <ul><li>`amount_info`、`cash_amount` 和 `grant_amount` 必传其一。</li><li>若已开启[余额共享](https://business-api.tiktok.com/portal/docs?id=1754705321657346#item-link-余额共享),且`transfer_level`为`ADVERTISER`,不支持该字段。</li></ul><br>要操作的现金或信用额度金额,保留两位小数。<br><br><ul><li>当 `transfer_level` 设置为 `ADVERTISER` 或未传入 `transfer_level` 时,本字段代表要操作的现金金额。</li><li>当 `transfer_level` 设置为 `BC` 时,本字段代表要操作的信用额度金额。</li></ul><br>取值范围:>0。 <br><br><p><span style="color:darkred"><b>注意:</b></span> 如果你选择了`RECHARGE`作为转账类型并传入现金金额,从商务中心向广告账户转账时会有最小金额限制。若想了解最小金额限制,可使用[/advertiser/balance/get/](1739939106470913.html) 并查看 `min_transferable_amount` 对象中返回的 `cash_amount`。|
|grant_amount {+条件必填} |number| <ul><li>`amount_info`、`cash_amount` 和 `grant_amount` 必传其一。</li><li>当`transfer_level`为`BC`时,不支持该字段。</li></ul><br>要操作的赠款金额,保留两位小数。<br><br>取值范围:>0。 |
|request_id |string| 仅当 `transfer_level` 为 `BC` 或 `ADVERTISER` 时生效。<br><br>请求 ID。<br>此字段支持接口幂等,可防止重复发送相同的请求。如果多次使用相同的请求 ID 重试请求,则只有一个会成功。<br>该 ID 和返回参数中的 `request_id` 不同。返回的 `request_id` 用于唯一标识一次 HTTP 请求。<br><br><ul><li>当 `transfer_level` 为 `BC` 时,该值应为一个 32 位字符串。</li><li>当 `transfer_level` 为 `ADVERTISER` 时,该值应为一个 32 位字符串,幂等性保证窗口期为 30 分钟。</li></ul><br>示例: `123456789`。<br><br><p><span style="color:darkred"><b>注意</b></span>: 使用 `request_id` 实现广告账号层级转账的幂等性目前为白名单功能。如需使用此功能,请联系您的 TikTok 销售代表。</p> |
示例
(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/bc/transfer/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"bc_id": "{{bc_id}}",
"transfer_level": "ADVERTISER",
"advertiser_id": "{{advertiser_id}}",
"transfer_type": "REFUND",
"cash_amount": {{cash_amount}}
}'
(/code)
返回
|字段{30%}|类型{15%}|描述{55%}|
|---|---|---|
|code |number|返回码,详见[附录-返回码](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097)。 |
|message |string|返回信息,详见[附录-返回码](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097)。 |
|request_id |string|请求的日志 ID,唯一标识一个请求。 |
|data |object|返回数据。 |
#|bc_id |number|商务中心 ID。<br><br>当`transfer_level`为`BC`时,不会返回该字段。|
#|advertiser_id|number|广告账户 ID。<br><br>当`transfer_level`为`BC`时,不会返回该字段。|
#| transaction_infos | object[] | 转账详情。<br><br><p><span style="color:darkred"><b>注意</b></span>:当 `transfer_level` 为 `ADVERTISER` 或未传入 `transfer_level` 时,由于您在广告账户和商务中心之间进行扣款或充值,您将获取到两条交易记录,一条在广告账户层级,一条为商务中心层级。此时,若您想将这些交易记录与[/bc/account/transaction/get/](1792849810925569.html)返回的交易记录相匹配,您可调用 `/bc/account/transaction/get/` 两次,分别将 `transaction_level` 设置为 `BC` 和 `ADVERTISER`。 |
##| transaction_id | string | 转账的交易 ID。<br><br>示例:`1234567890`。 |
##| transaction_type | string | 转账的交易类型。<br><br>枚举值:<ul><li>`CASH`:现金。</li><li>`GRANT`:赠款。</li><li>`CREDIT`:信用额度。</li></ul> |
##|payee_account|object|收款方账号相关信息。|
###|account_type|string|收款方账号的类型。<br><br>枚举值:<ul><li>`BC`:商务中心。</li><li>`ADVERTISER`:广告账号。</li><li>`PORTFOLIO`:财务资产组合。</li></ul>|
###|account_id|string|收款方账号 ID。|
##|remitter_account|object|汇款方账号相关信息。|
###|account_type|string|汇款方账号的类型。<br><br>枚举值:<ul><li>`BC`:商务中心。</li><li>`ADVERTISER`:广告账号。</li><li>`PORTFOLIO`:财务资产组合。</li></ul>|
###|account_id|string|汇款方账号 ID。|
示例
(code Success-Response http)
HTTPS/1.1 200 OK
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"advertiser_id": {{advertiser_id}},
"bc_id": {{bc_id}},
"transaction_infos": [
{
"payee_account": {
"account_id": "{{account_id}}",
"account_type": "BC"
},
"remitter_account": null,
"transaction_id": "{{transaction_id}}",
"transaction_type": "CASH"
},
{
"payee_account": null,
"remitter_account": {
"account_id": "{{account_id}}",
"account_type": "ADVERTISER"
},
"transaction_id": "{{transaction_id}}",
"transaction_type": "CASH"
}
]
}
}
(/code);