Stripe Connect 和 Charges API
旧版 API
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
Charges API 不支持以下功能,信用卡合规对其中很多都有要求:
了解如何用 Connect 收款并向 Connect 子账户 转账。您配置这些选项的方式决定您的 Stripe 费用。
Connect 支持用三种方法为 Connect 子账户创建付款。有关不同 Connect 收款类型的更多信息,请查看方法选择文档。Stripe 费用取决于所选配置。
该页仅介绍了如何为 Connect 子账户调用 Charges API。关于在相关操作中调用其他 API 的更多信息,请查看链接页面。
直接收款
要在 Connect 子账户上创建直接收款,先创建一个 Charge 对象,在 Stripe-Account
处填写 Connect 子账户 ID 的值:
curl https://api.stripe.com/v1/charges \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-H "Stripe-Account: " \
-d amount=1000 \
-d currency=usd \
-d source=tok_visa
此示例使用一个 test token —tok_visa— 但您可以改用 Stripe.js 和 Elements 来令牌化测试卡。
有关更多信息,请查看接受付款。
对直接收款收取手续费
使用 Connect,您的平台可以对直接收款收取手续费。要评估一笔收款的手续费,以正整数值传递一个可选的 application_fee_amount
值:
curl https://api.stripe.com/v1/charges \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-H "Stripe-Account: " \
-d amount=1000 \
-d currency=usd \
-d source=tok_visa \
-d application_fee_amount=123
有关能否转账、退款等信息,请查看直接收款。
定向收款
创建定向收款时,在 transfer_data[destination]
属性中传递 Connect 子账户的 ID:
curl https://api.stripe.com/v1/charges \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1000 \
-d currency=usd \
-d source=tok_visa \
-d "transfer_data[destination]"=
此示例使用一个 test token —tok_visa— 但您可以改用 Stripe.js 和 Elements 来令牌化测试卡。
有关更多信息,请查看接受付款。
用 application_fee_amount 对定向收款收费
创建有 application_fee_amount
的定向收款时,在捕获了收款后,会立即从平台将总收款金额转到 transfer_data[destination]
账户。然后 application_fee_amount
(最高为总收款额)再被转回到平台。
curl https://api.stripe.com/v1/charges \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1000 \
-d currency=usd \
-d source=tok_visa \
-d application_fee_amount=123 \
-d "transfer_data[destination]"=
为提供更好的报告体验,在收取手续费后,创建一个手续费对象。在报告中使用手续费对象上的 amount
属性。然后即可通过 应用程序费用 端点访问这些对象。
用 transfer_data[amount] 对定向收款收费
也可以用 transfer_data[amount] 来扣取费用。
transfer_data[amount]
是一个正整数,反映的是转到 transfer_data[destination]
的收款金额。从收款金额中减去您的平台费用,然后传递计算的结果,作为 transfer_data[amount]
:
curl https://api.stripe.com/v1/charges \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1000 \
-d currency=usd \
-d source=tok_visa \
-d "transfer_data[amount]"=877 \
-d "transfer_data[destination]"=
有关能否转账、退款等信息,请查看定向收款。
独立收款和转账
注意
只有当您的平台和 Connect 子账户处于同一地区,您才能使用独立收款和转账。例如,如果您的平台账户是欧洲的,则 Connect 子账户也必须在欧洲。
要创建收款并设置相关转账,创建一个 transfer_group
,然后将收款分配到 transfer_group
。
curl https://api.stripe.com/v1/charges \
-u sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \
-d "amount"=10000 \
-d "currency"="usd" \
-d "source"="tok_visa" \
-d "transfer_group"="{ORDER10}"
curl https://api.stripe.com/v1/transfers \
-u sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \
-d "amount"=7000 \
-d "currency"="usd" \
-d "destination"="{{CONNECTED_STRIPE_ACCOUNT_ID}}" \
-d "transfer_group"="{ORDER10}"
curl https://api.stripe.com/v1/transfers \
-u sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \
-d "amount"=2000 \
-d "currency"="usd" \
-d "destination"="{{OTHER_CONNECTED_STRIPE_ACCOUNT_ID}}" \
-d "transfer_group"="{ORDER10}"
此示例使用一个 test token —tok_visa— 但您可以改用 Stripe.js 和 Elements 来令牌化测试卡。
有关更多信息,请查看接受付款。
独立收款和转账时使用 on_behalf_of
使用独立收款和转账时,默认情况下:
- 收款在平台所在国家结算
- 使用平台所在国家的收费结构
- 客户的银行卡对账单上显示的是平台的信息
要使用 Connect 子账户的国家并显示他们的信息,请使用 on_behalf_of
函数。
curl https://api.stripe.com/v1/charges \
-u "sk_test_4eC39HqLyjWDarjtT1zdp7dc
:" \
-d amount=1000 \
-d currency=usd \
-d source=tok_visa \
-d on_behalf_of=
有关能否转账、退款等信息,请查看创建独立收款和转账。