patriczi
patriczi

Reputation: 51

Stripe - how add product on the connected account?

I try add payment method to my project where customer can buy product from other user. But i have problem because when i use it:

LineItems = new List<SessionLineItemOptions>
  {
    new SessionLineItemOptions
    {
      Price = "{{PRICE_ID}}",
      Quantity = 1,
    },
  },
  Mode = "payment",
  SuccessUrl = "https://example.com/success",
  CancelUrl = "https://example.com/cancel",
  PaymentIntentData = new SessionPaymentIntentDataOptions
  {
    ApplicationFeeAmount = 123,
  },
};

var requestOptions = new RequestOptions
{
  StripeAccount = "{{CONNECTED_ACCOUNT_ID}}",
};
var service = new SessionService();
Session session = service.Create(options, requestOptions);

PRICE_ID can't be price's on my main stripe account and i must create product and price on the connected account. In the case of creating a product on the main account, I do it like this:

var options = new ProductCreateOptions
                {
                    Id = ProductId.ToString(),
                    Name = "Product_name",
                    DefaultPriceData = new ProductDefaultPriceDataOptions
                    {
                        UnitAmount = price,
                        Currency = "pln"
                    },
                    Expand = new List<string> { "default_price" },
                };
                _productService.Create(options);

How create product and price on the connected account with my api?

Upvotes: 0

Views: 1228

Answers (1)

Pompey
Pompey

Reputation: 1354

The Stripe API has a Stripe-Account header where you can pass in the ID of one of your connected accounts to make the call as that account. In C# that would look like this:

                {
                    Id = ProductId.ToString(),
                    Name = "Product_name",
                    DefaultPriceData = new ProductDefaultPriceDataOptions
                    {
                        UnitAmount = price,
                        Currency = "pln"
                    },
                    Expand = new List<string> { "default_price" },
                    StripeAccount = "acct_123456789",
                };
                _productService.Create(options);

Upvotes: 1

Related Questions