我在做一个. net项目. 我正在try 支付一些金额到我的连接帐户. 我试过金额= 15

这是我的账户余额对象.

"object": "balance",
    "available": [
      {
        "amount": 1929490,
        "currency": "aud",
        "sourceTypes": {
          "card": 1929490
        },
        "rawJObject": null,
        "stripeResponse": null
      }
    ],
    "connectReserved": [
      {
        "amount": 0,
        "currency": "aud",
        "sourceTypes": null,
        "rawJObject": null,
        "stripeResponse": null
      }
    ],
    "instantAvailable": [
      {
        "amount": 1200000,
        "currency": "aud",
        "sourceTypes": {
          "bankAccount": 0,
          "card": 1200000,
          "fpx": 0,
          "rawJObject": null,
          "stripeResponse": null
        },
        "rawJObject": null,
        "stripeResponse": null
      }
    ],
    "issuing": null,
    "livemode": false,
    "pending": [
      {
        "amount": 108924,
        "currency": "aud",
        "sourceTypes": {
          "card": 108924
        },
        "rawJObject": null,
        "stripeResponse": null
      }
    ],

我试过一些方法.我把它们贴在这里.

Method 1: Connect account selected his bank account for payouts (NOT card) and check following request connect account setting - payout - bank account 请求:

 var options = new PayoutCreateOptions
                {
                    // Destination = connectAccountId,
                    Description = description,
                    Method = "standard",// standard or instant
                    SourceType = "bank_account", // options are bank_account, card, or fpx
                    Amount = amount,
                    Currency = "aud",
                    Metadata = new Dictionary<string, string> { { "ConnectAccountId", connectAccountId } },
                };

                var requestOptions = new RequestOptions();
                requestOptions.StripeAccount = connectAccountId;

                var service = new PayoutService();
                return service.Create(options, requestOptions);

回复: "你的条纹账户中没有足够的资金用于这笔转账.你的ACH余额太低了. 您可以使用/v1/balance端点查看Stripe余额(有关详细信息,请参阅stripe.com/docs/api#balance)."

方法2:连接帐户 Select 他的银行帐户支付(不是卡)和判断以下请求

var options = new PayoutCreateOptions
                {
                    // Destination = connectAccountId,
                    Description = description,
                    Method = "standard",// standard or instant
                    SourceType = "card", // options are bank_account, card, or fpx
                    Amount = amount,
                    Currency = "aud",
                    Metadata = new Dictionary<string, string> { { "ConnectAccountId", connectAccountId } },
                };

回复:

"你的条纹账户中没有足够的资金用于这笔转账.你的卡余额太低了. 您可以使用/v1/balance端点查看Stripe余额(有关详细信息,请参阅stripe.com/docs/api#balance)."

方法3:连接帐户 Select 他的借记卡支付(不是银行帐户),并判断以下请求.

connect account setting payout - card

请求:与方法2的请求相同.

回复:

"借记卡支付不支持方法standard."

方法4:连接帐户 Select 他的借记卡支付(不是银行帐户),并判断以下请求.

var options = new PayoutCreateOptions
                {
                    // Destination = connectAccountId,
                    Description = description,
                    Method = "instant",// standard or instant
                    SourceType = "card", // options are bank_account, card, or fpx
                    Amount = amount,
                    Currency = "aud",
                    Metadata = new Dictionary<string, string> { { "ConnectAccountId", connectAccountId } },
                };

回复:

"你的条纹账户中没有足够的资金用于这笔转账.你的卡余额太低了. 您可以使用/v1/balance端点查看Stripe余额(有关详细信息,请参阅stripe.com/docs/api#balance)."

方法5:连接帐户 Select 他的借记卡支付(不是银行帐户),并判断以下请求.

请求:

  var options = new PayoutCreateOptions
                {
                    // Destination = connectAccountId,
                    Description = description,
                    Method = "instant",// standard or instant
                    SourceType = "bank_account", // options are bank_account, card, or fpx
                    Amount = amount,
                    Currency = "aud",
                    Metadata = new Dictionary<string, string> { { "ConnectAccountId", connectAccountId } },
                };

回复:

"你的条纹账户中没有足够的资金用于这笔转账.你的ACH余额太低了. 您可以使用/v1/balance端点查看Stripe余额(有关详细信息,请参阅stripe.com/docs/api#balance)."

我厌倦了寻找这些问题的原因.我想把这笔钱存入Connect的银行账户. 请帮帮我


Updated question:

根据Lucky的回答,我更新了代码.

  1. 首先,我将金额转移到连接帐户,并试图支付.
 var options = new TransferCreateOptions
                {
                    Amount = amount,
                    Currency = "aud",
                    Destination = connectAccountId,
                    Description = description,
                    // SourceType = "bank_account" //bank_account, card, or fpx  // This didn't works. got invalid source type error.
                };
                var service = new TransferService();
                return service.Create(options);

我的Connect帐户余额

 "available": [
      {
        "amount": 30,
        "currency": "aud",
        "sourceTypes": {
          "card": 30
        },
        "rawJObject": null,
        "stripeResponse": null
      }
    ],
    "connectReserved": null,
    "instantAvailable": [
      {
        "amount": 30,
        "currency": "aud",
        "sourceTypes": {
          "bankAccount": 0,
          "card": 30,
          "fpx": 0,
          "rawJObject": null,
          "stripeResponse": null
        },
        "rawJObject": null,
        "stripeResponse": null
      }
    ],
    "issuing": null,
    "livemode": false,
    "pending": [
      {
        "amount": 0,
        "currency": "aud",
        "sourceTypes": {
          "card": 0
        },
        "rawJObject": null,
        "stripeResponse": null
      }

Method 1: try to pay out to the bank _account

  var options = new PayoutCreateOptions
                {
                    // Destination = connectAccountId,
                    Description = description,
                    Method = "standard",// standard or instant
                    SourceType = "bank_account", // options are bank_account, card, or fpx
                    Amount = amount,
                    Currency = "aud",
                    Metadata = new Dictionary<string, string> { { "ConnectAccountId", connectAccountId } },
                };

                var requestOptions = new RequestOptions();
                requestOptions.StripeAccount = connectAccountId;

                var service = new PayoutService();
                return service.Create(options, requestOptions);

This didn't work. Got the same insufficient error.

方法二: Payout to connects card - worked

    var options = new PayoutCreateOptions
                {
                    // Destination = connectAccountId,
                    Description = description,
                    Method = "standard",// standard or instant
                    SourceType = "card", // options are bank_account, card, or fpx
                    Amount = amount,
                    Currency = "aud",
                    Metadata = new Dictionary<string, string> { { "ConnectAccountId", connectAccountId } },
                };

After the payout, Connect acc's dashboard looks like this. last 2 Transcation summary summary last4

What does "Settled" mean? The transactions with "0.15dolar" are only Transfer (Payout failed at that time) 0.48 dolar one is Transfer and payout are succeeded.

How my connect account holder will know these differences? 0.48 is in minus amount What does it mean?

推荐答案

我认为问题是资金在你平台的余额中.他们需要在您的连接帐户的余额,您才能支付.

澄清:

  • 支付是Stripe账户余额和与该账户相连的银行账户之间的资金转移.
  • 转账是Stripe账户余额之间的资金转账.

If you have available funds in your platform balance, you can make a payout to the bank account connected to your platform.
If you want to make a payout to the bank account connected to your connected account, you need available funds in the connected account's balance.

考虑到这一点:

  • Check the balance for your platform (optional, you already did this)
    https://docs.stripe.com/api/balance/balance_retrieve
  • Create a Transfer from your platform to your connected account:
    https://docs.stripe.com/api/transfers/create
  • 判断您连接的账户余额(与上面的stripeAccount表头相同)
  • Create your payout, with the stripeAccount header and bank account / card ID as destination.
    source_type should be card but doesn't need to be specified. In fact I don't think destination does either, provided the connected account only has one valid external_account / you want to use the default one.

.net相关问答推荐

API响应返回null错误. NET MAUI

如何在PowerShell中隐藏任务延迟输出?

在 .NET 7 项目上设置 Sentry 时遇到问题

如何使用 awslocal 通过 localstack 中的 cloudwatch events/eventbridge 触发 lambda

如果只有一个 : 存在于字符串中,则提取冒号后的内容

是否必须使用 Visual Studio 预览才能使用 MAUI?

.NET - WindowStyle = hidden 与 CreateNoWindow = true?

实例化具有运行时确定类型的对象

如何找到 ManualResetEvent 的状态?

新的 netstandardapp 和 netcoreapp TFM 有什么区别?

Mono 是树莓派

在 .NET (C#) 中本地存储数据的最佳方式

公钥令牌的作用是什么?

从 .NET 中的字符串末尾修剪字符串 - 为什么会丢失?

多个添加的实体可能具有相同的主键

加载程序集、查找类和调用 Run() 方法的正确方法

在生产环境中部署调试符号(pdb 文件)有什么风险?

在 .NET 中获取默认打印机的最佳方法是什么

在 .Net 中调用 Web 服务时绕过无效的 SSL 证书错误

无法添加对 dll 的引用