{"id":243636,"date":"2020-04-23T06:41:42","date_gmt":"2020-04-23T06:41:42","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=243636"},"modified":"2026-09-22T04:55:19","modified_gmt":"2026-09-22T04:55:19","slug":"laravel-marketplace-stripe-payment-gateway","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/","title":{"rendered":"Laravel Marketplace Stripe Payment Gateway"},"content":{"rendered":"\n<p><a href=\"https:\/\/store.webkul.com\/laravel-marketplace-stripe-vendor-payment.html\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel Marketplace Stripe Payment Gateway<\/a> allows the customer to make the payment using Stripe payment. <\/p>\n\n\n\n<p>With the help of this module customer\u2019s payment automatically splits between the seller and the admin.<\/p>\n\n\n\n<p>NOTE:-<strong>Before buying this module, you have to visit&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/stripe.com\/global#SG\" target=\"_blank\">stripe.com<\/a>&nbsp;to check whether this payment gateway is available in your country or not.<\/strong><\/p>\n\n\n\n<p><strong>**Note:&nbsp;&nbsp;<\/strong>\u201c<strong>Laravel eCommerce Marketplace Stripe Payment Gateway\u201d&nbsp;<\/strong>is an addon of<strong>&nbsp;\u201c<a href=\"https:\/\/store.webkul.com\/laravel-multi-vendor-marketplace.html\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel Multi-Vendor Marketplace Extension<\/a>\u201d.<\/strong><\/p>\n\n\n\n<p>This addon will work on a Multi-Vendor Marketplace extension-based website.<\/p>\n\n\n\n<p>Check a brief overview of the plugin &#8211;  <\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\"><\/h3>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"features\">Features of Stripe Connect<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Seller self-onboarding<\/strong> through Stripe Connect OAuth \u2014 the seller clicks a button inside the panel and Stripe hosts the whole KYB flow.<\/li>\n\n\n\n<li><strong>Two payout modes<\/strong>, <em>Manual Payout<\/em> and <em>Auto Payout<\/em>, switchable from the admin configuration.<\/li>\n\n\n\n<li><strong>Admin payout desk<\/strong> \u2014 a dedicated Stripe Payment Requests screen with payable order, unpaid total, commission, and unpaid seller stats.<\/li>\n\n\n\n<li><strong>Single and mass pay<\/strong> \u2014 pay one request instantly or queue one transfer job per unpaid request from the mass action.<\/li>\n\n\n\n<li><strong>Idempotent settlement<\/strong> \u2014 the transfer API runs only when no marketplace transaction exists yet, which prevents double payouts on retries.<\/li>\n\n\n\n<li><strong>Country control<\/strong> \u2014 an allow-list blocks sellers from connecting when their country is not listed; leaving it empty permits every transfer-supported country.<\/li>\n\n\n\n<li><strong>Seller autonomy<\/strong> \u2014 sellers connect and revoke Stripe access themselves; revoking stays locked while payout requests are pending.<\/li>\n\n\n\n<li><strong>Payout visibility for sellers<\/strong> \u2014 Stripe orders show as <em>Requested<\/em> until the admin settles them, and the seller can no longer raise a manual request for such orders.<\/li>\n<\/ul>\n\n\n\n<li>PCI (Payment Card Industry) Compliance.<\/li>\n\n\n\n<li>3D Secure &#8211; Added security layer.<\/li>\n\n\n<p><!-- \/wp:post-content --><\/p>\n<p><!--wp:heading--><\/p>\n<div class=\"wk-index-wrap\">\n<h3 class=\"index-title\">Requirements<\/h3>\n<\/div>\n<div class=\"margin-bottom-50\"><!--\/wp:heading-->\n<p><!-- wp:list --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Bagisto: v2.4.x<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li>Marketplace: v2.4.x<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<p><!--wp:heading--><\/p>\n<div class=\"wk-index-wrap\">\n<h3 class=\"index-title\">Installation<\/h3>\n<\/div>\n<div class=\"margin-bottom-50\"><!--\/wp:heading--><\/div>\n<p><!-- wp:paragraph --><\/p>\n<p>Unzip the extension package and merge the <strong>&#8220;packages&#8221;<\/strong> folder into the project root directory.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Go to the <strong>composer.json<\/strong> file and add the following line under <strong>&#8216;psr-4&#8217;<\/strong>:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"EnlighterJSRAW\">&quot;Webkul\\\\StripeConnect\\\\&quot;: &quot;packages\/Webkul\/StripeConnect\/src&quot;<\/pre>\n<p><!-- \/wp:code --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Run the following command:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"EnlighterJSRAW\">composer dump-autoload<\/pre>\n<p><!-- \/wp:code --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Go to the <strong>bootstrap\/providers.php<\/strong> file and add the following line inside the array:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"EnlighterJSRAW\">Webkul\\StripeConnect\\Providers\\StripeConnectServiceProvider::class,<\/pre>\n<p><!-- \/wp:code --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Run the following commands to complete the setup:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"EnlighterJSRAW\">php artisan marketplace-stripe:install<\/pre>\n<p><!-- \/wp:code --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>That&#8217;s it! Now execute the project on your specified domain.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!--wp:heading--><\/p>\n<div class=\"wk-index-wrap\">\n<h3 class=\"index-title\">Stripe Connect Setup<\/h3>\n<\/div>\n<div class=\"margin-bottom-50\"><!--\/wp:heading-->\n<p><!-- wp:paragraph --><\/p>\n<p>To connect the seller using Stripe Connect, add the following redirect URI in your Stripe account:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"EnlighterJSRAW\">PROJECT_URL\/marketplace\/stripe\/connect\/retrieve\/token<\/pre>\n<p><!-- \/wp:code --><\/p>\n<p><!--wp:heading--><\/p>\n<div class=\"wk-index-wrap\">\n<h3 class=\"index-title\">Webhook Setup<\/h3>\n<\/div>\n<div class=\"margin-bottom-50\"><!--\/wp:heading-->\n<p><!-- wp:paragraph --><\/p>\n<p>Set up webhooks in Stripe:<\/p>\n<ul>\n<li>Test Mode: https:\/\/dashboard.stripe.com\/test\/workbench\/webhooks<\/li>\n<li>Live Mode: https:\/\/dashboard.stripe.com\/workbench\/webhooks<\/li>\n<\/ul>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:list --><\/p>\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Add a new destination<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li>Select events:<!-- wp:list -->\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>payment_intent.canceled<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul class=\"wp-block-list\">\n<li style=\"list-style-type: none;\">\n<ul class=\"wp-block-list\">\n<li>payment_intent.succeeded<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- wp:list-item --><\/p>\n<ul>\n<li>Select Webhook endpoint<\/li>\n<\/ul>\n<p><!-- \/wp:list-item --><\/p>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Set the webhook URL as:<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:code --><\/p>\n<pre class=\"EnlighterJSRAW\">https:\/\/your_domain\/api\/stripe\/webhook\/payment-intent<\/pre>\n<p><!-- \/wp:code --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Copy the signing secret and set it in:<\/p>\n<p><strong>Admin \u2192 Configuration \u2192 Sales \u2192 Payment Methods \u2192 Payment Intent Webhook Secret<\/strong><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!--wp:heading--><\/p>\n<div class=\"wk-index-wrap\">\n<h3 class=\"index-title\">How To Get The\u00a0<strong>API Key<\/strong>s from the Stripe<\/h3>\n<\/div>\n<div class=\"margin-bottom-50\"><!--\/wp:heading--><\/div>\n<p><!-- wp:paragraph --><\/p>\n<p>To get the API Keys you can use\u00a0<a href=\"https:\/\/stripe.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Stripe website<\/a>. First you\u2019ll need to\u00a0<a href=\"https:\/\/dashboard.stripe.com\/login\" target=\"_blank\" rel=\"noreferrer noopener\">Sign in<\/a>\u00a0to the stripe account.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Go to\u00a0<strong><a href=\"https:\/\/dashboard.stripe.com\/login\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dashboard.stripe.com\/login<\/a><\/strong>\u00a0then enter your\u00a0<strong>login<\/strong>\u00a0details.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Step 1:- From the left sidebar, click on <strong>Developers &gt;&gt; API Keys<\/strong> to get your <strong>Publishable Key<\/strong> and <strong>Secret Key<\/strong>. You can toggle between <strong>Test Mode<\/strong> and <strong>Live Mode<\/strong> as required.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Step 2:- Copy the <strong>Publishable Key<\/strong> (pk_test \/ pk_live) and <strong>Secret Key<\/strong> (sk_test \/ sk_live) from the API Keys section.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Step 3:- Now click on <strong>Settings &gt;&gt; Connect &gt;&gt; Settings<\/strong>. Here you will find your <strong>Client ID<\/strong>.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Step 4:- In the same Connect Settings page, scroll to the <strong>Redirect URLs<\/strong> section and add your redirect URL like <strong>https:\/\/example.com\/marketplace\/stripe\/connect\/retrieve\/token<\/strong>. Make sure the URL matches exactly.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Step 5:- Ensure that <strong>OAuth for Standard Accounts<\/strong> is enabled in the Connect settings if you are using Stripe Connect.<\/p>\n<p><!-- wp:heading {\"level\":2,\"className\":\"wp-block-heading\"} --><\/p>\n<h2 id=\"configuration\" class=\"wp-block-heading\">StripeConnect Bagisto Configuration<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>The module inherits the standard Stripe gateway section from the admin package (Status, Title, Description, Logo, API keys, Sandbox toggle, Sort order) and appends the three marketplace payout fields onto it. The image below shows the whole Stripe block as rendered in our running demo.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image {\"id\":1,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" class=\"alignnone wp-image-554056 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp\" alt=\"stripe-configuration\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><br \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"client-id\" class=\"wp-block-heading\"><strong>Client ID<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>This text field holds the <em>Client ID<\/em> of your Stripe Connect platform (<code>ca_...<\/code>). It is not channel based, so one value applies to the whole store. Both the admin payout routes and the seller onboarding route depend on it. When the field is empty, the seller panel shows <em>\u201cClient ID not set by admin\u201d<\/em> instead of the Connect button.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"payout-mode\" class=\"wp-block-heading\"><strong>Payout Mode<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>The <em>Payout Mode<\/em> select toggles between <strong>Manual Payout<\/strong> and <strong>Auto Payout<\/strong>. In manual mode the invoice listener creates a payment request per connected seller and the admin settles it from the payment request screen. In contrast, autopay removes the admin\u2019s clicking entirely \u2014 the transfer fires the instant the invoice saves and the request flips to paid. Manual is the default.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"allowed-seller-countries\" class=\"wp-block-heading\"><strong>Allowed Seller Countries<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>The multiselect uses Stripe\u2019s <code>CountrySpec<\/code> data to list every country the platform can transfer to. Choose the countries whose sellers may connect \u2014 the connect button hides for sellers outside the list and shows a <em>\u201cnot supported in your country\u201d<\/em> note. Leaving the field empty allows all transfer-enabled countries.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Configuration Walkthrough<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, log in to the admin panel and open <em>Sales \u2192 Payment Methods<\/em>.<\/li>\n<li>Next, mark the Stripe method as <em>Active<\/em> and fill in its Title, Description, and logo.<\/li>\n<li>Then, toggle the <em>Sandbox<\/em> switch and paste the matching test or live Secret Key and Publishable Key.<\/li>\n<li>Afterwards, paste your Stripe Connect platform Client ID into <em>Client Id<\/em>.<\/li>\n<li>Next, choose <em>Manual Payout<\/em> or <em>Auto Payout<\/em> from the <em>Payout Mode<\/em> dropdown.<\/li>\n<li>Then, pick the <em>Allowed Seller Countries<\/em> or leave the field empty for unrestricted access.<\/li>\n<li>Finally, save the form and confirm the new fields appear at the bottom of the Stripe block.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":2,\"className\":\"wp-block-heading\"} --><\/p>\n<h2 id=\"admin-view\" class=\"wp-block-heading\">Stripe Connect Admin View<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>The module adds a <em>Marketplace \u2192 Sales \u2192 Stripe Payment Requests<\/em> screen. With that in mind, here is how the settlement desk looks in our demo: four statistics cards \u2014 <em>Payable Orders<\/em>, <em>Unpaid<\/em>, <em>Total Commission<\/em>, and <em>Unpaid Sellers<\/em> \u2014 lead the page, and a datagrid follows with every request joined to the order, marketplace order, transaction, and seller record. Each row shows order ID, date, order status, customer name and email, gross amount, seller total invoiced, seller, shop, and the amount already paid.<\/p>\n<p><!-- wp:image {\"id\":443276,\"sizeSlug\":\"large\",\"linkDestination\":\"none\"} --><\/p>\n<p><!-- \/wp:image --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image {\"id\":2,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\" data-wp-editing=\"1\"><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:image {\"id\":7,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"payment-requests\" class=\"wp-block-heading\"><strong>Stripe Payment Requests<\/strong><\/h3>\n<p><img decoding=\"async\" class=\"alignnone wp-image-554057 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-requests.webp\" alt=\"stripe request\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-requests.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-requests-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-requests-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-requests-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/p>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Guide<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, expand <em>Marketplace \u2192 Sales<\/em> in the admin sidebar and open <em>Stripe Payment Requests<\/em>.<\/li>\n<li>Next, read the stats cards to gauge how many payouts are waiting and how much commission the settlement already earned.<\/li>\n<li>Then, scan the grid rows \u2014 paid requests show the <em>Already Paid<\/em> label, unpaid ones show a <em>Pay<\/em> button.<\/li>\n<li>After that, track an order to its detail page with the view icon when you need the original invoice.<\/li>\n<li>Finally, filter or sort by date, status, customer, seller, or shop to narrow the backlog.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"pay-single\" class=\"wp-block-heading\"><strong>Paying a Single Request<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>The <em>Pay<\/em> action on an unpaid row runs the payout synchronously, so the admin receives immediate feedback. The payout job verifies the request still shows <em>To Pay<\/em>, finds the matching marketplace order, then creates a real Stripe Transfer to the seller\u2019s connected account and records the seller transaction in the same pass. Consequently, the transaction row appears only after the transfer completes. The screenshot below shows the green <em>\u201cPayment transfer successfully\u201d<\/em> toast right after settling the request for order SC100002.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image {\"id\":3,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" class=\"alignnone wp-image-554060 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-pay.webp\" alt=\"blog-stripeconnect-admin-pay\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-pay.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-pay-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-pay-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-admin-pay-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Guide<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, open <em>Stripe Payment Requests<\/em> and find the row whose status still shows <em>To Pay<\/em>.<\/li>\n<li>Next, click <em>Pay<\/em> on that row.<\/li>\n<li>Then, wait for the Stripe transfer to complete against the seller\u2019s linked account.<\/li>\n<li>Finally, confirm the success toast and the <em>Already Paid<\/em> label on the row, plus the transaction recorded on the order page.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"mass-pay\" class=\"wp-block-heading\"><strong>Mass Payout<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Instead of paying row by row, select several unpaid requests and hit the <em>Pay<\/em> mass action. The mass pay endpoint queues one <code>ProcessStripePayout<\/code> job per unpaid request, and a response previews the number of queued transfers before the queue worker starts.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Guide<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, tick the checkboxes of every unpaid payment request you want to settle.<\/li>\n<li>Next, click the <em>Pay<\/em> button from the mass actions toolbar.<\/li>\n<li>Then, confirm the message that reports how many transfers were queued.<\/li>\n<li>Finally, let the queue worker run the one-transfer-per-job scripts, then refresh the grid to see the paid labels.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":2,\"className\":\"wp-block-heading\"} --><\/p>\n<h2 id=\"seller-view\" class=\"wp-block-heading\">Stripe Connect Seller View<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"connecting\" class=\"wp-block-heading\"><strong>Connecting a Stripe Account<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Sellers reach their onboarding surface from <em>Settings \u2192 Stripe Connect<\/em> inside the seller panel. Similarly, control stays entirely on the seller: a <em>Connect With Stripe<\/em> button opens the Stripe Connect hosted authorization, the callback exchanges the code for an access token, and the module stores the publishable key plus the connected account ID. The screenshot below is the fresh, not-yet-connected screen of a demo seller.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image {\"id\":4,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" class=\"alignnone wp-image-554061 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connect.webp\" alt=\"blog-stripeconnect-seller-connect\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connect.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connect-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connect-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connect-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><br \/>\n<figcaption class=\"wp-element-caption\"><\/figcaption>\n<\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:image {\"id\":8,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" class=\"alignnone wp-image-554064 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/stripe-public-seller-settings-stripe.webp\" alt=\"stripe-public-seller-settings-stripe\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/stripe-public-seller-settings-stripe.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/stripe-public-seller-settings-stripe-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/stripe-public-seller-settings-stripe-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/stripe-public-seller-settings-stripe-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Guide<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, sign in to the seller panel and open <em>Settings \u2192 Stripe Connect<\/em>.<\/li>\n<li>Next, make sure the admin enabled Stripe and set a client ID; otherwise the notice explains why the button is missing.<\/li>\n<li>Then, click <em>Connect With Stripe<\/em> and complete the Stripe-hosted onboarding for your account.<\/li>\n<li>Afterwards, return to the panel \u2014 the callback stored your access token and account ID, and the screen flips to the connected state.<\/li>\n<li>Finally, go back to selling; the platform now captures your payout share from Stripe orders automatically.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"revoke\" class=\"wp-block-heading\"><strong>Connected Account &amp; Revoking Access<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Once connected, the same screen exchanges the Connect button for a <em>Revoke Your Stripe Accounts Access<\/em> button plus a storefront-style confirmation. Meanwhile, the guarded revoke flow protects both sides: sellers with pending payout requests cannot revoke \u2014 the button disables and the helper message explains that the control stays locked while payment requests are pending, so the platform can still settle owed money.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image {\"id\":5,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" class=\"alignnone wp-image-554065 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connected.webp\" alt=\"blog-stripeconnect-seller-connected\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connected.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connected-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connected-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-connected-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Guide<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, reopen <em>Settings \u2192 Stripe Connect<\/em> to review the connected state.<\/li>\n<li>Next, check the revoke button \u2014 a disabled one plus a pending-payout message means the platform still owes you money.<\/li>\n<li>Then, click <em>Revoke Your Stripe Accounts Access<\/em> when no requests are pending.<\/li>\n<li>Finally, confirm the confirmation prompt, then watch the deauthorization call remove the stored seller token.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":3,\"className\":\"wp-block-heading\"} --><\/p>\n<h3 id=\"payout-status\" class=\"wp-block-heading\"><strong>Payout Status in the Seller Orders Grid<\/strong><\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Stripe orders behave differently from normal marketplace orders on the seller side. Therefore, the seller grid communicates settlement state clearly: a completed Stripe order whose transfer has not yet settled shows its payout as <em>Requested<\/em>, and the seller cannot press any \u201crequest payment\u201d action because the admin already claims that transfer on the seller\u2019s behalf. The screenshot below shows the seller order grid with the two awaiting rows flagged <em>Requested<\/em>.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:image {\"id\":6,\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"className\":\"is-resized\"} --><\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" class=\"alignnone wp-image-554067 size-full\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-orders.webp\" alt=\"blog-stripeconnect-seller-orders\" width=\"1120\" height=\"880\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-orders.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-orders-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-orders-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-seller-orders-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n<p><!-- \/wp:image --><\/p>\n<p><!-- wp:heading {\"level\":4,\"className\":\"wp-block-heading\"} --><\/p>\n<h4 class=\"wp-block-heading\"><strong>Step-by-Step Guide<\/strong><\/h4>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<ol>\n<li>First, open <em>Orders<\/em> in the seller panel.<\/li>\n<li>Next, look for the rows carrying the <em>Requested<\/em> payout label \u2014 those are completed Stripe orders awaiting settlement.<\/li>\n<li>Then, check whether the <em>Request Payment<\/em> action is missing for those rows; the module suppressed it on purpose.<\/li>\n<li>Finally, wait for the admin to settle the request, after which the order shows as paid.<\/li>\n<\/ol>\n<p><!-- \/wp:list --><\/p>\n<p><!-- wp:heading {\"level\":2,\"className\":\"wp-block-heading\"} --><\/p>\n<h2 id=\"conclusion\" class=\"wp-block-heading\">Conclusion<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Ultimately, StripeConnect Bagisto turns a single Stripe account into a full split-payout engine. Sellers connect once through hosted onboarding, orders feed payout requests automatically, and the admin settles them with real transfers \u2014 one at a time or in bulk \u2014 while an idempotency guard keeps every payout unique. The seller grid keeps everyone informed with the <em>Requested<\/em> status, and country controls make the feature safe to roll out across regions. If you are growing a marketplace on Bagisto and want payouts to feel native, this module is the missing link between checkout and seller trust.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Hope it will be helpful for you or if you have any issue feel free to raise a ticket at\u00a0<a href=\"https:\/\/bagisto.uvdesk.com\/en\/\">https:\/\/bagisto.uvdesk.com\/en\/<\/a><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Laravel Marketplace Stripe Payment Gateway allows the customer to make the payment using Stripe payment. With the help of this module customer\u2019s payment automatically splits between the seller and the admin. NOTE:-Before buying this module, you have to visit&nbsp;stripe.com&nbsp;to check whether this payment gateway is available in your country or not. **Note:&nbsp;&nbsp;\u201cLaravel eCommerce Marketplace Stripe <a href=\"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":243,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8396],"tags":[8055,8054,1485,1486],"class_list":["post-243636","post","type-post","status-publish","format-standard","hentry","category-bagisto","tag-bagisto","tag-laravel-ecommerce","tag-marketplace-stripe-payment","tag-stripe-connect"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Laravel Marketplace Stripe Payment Gateway<\/title>\n<meta name=\"description\" content=\"Laravel Marketplace Stripe Payment Gateway module automatically splits the customer\u2019s payment between the seller and the admin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel Marketplace Stripe Payment Gateway\" \/>\n<meta property=\"og:description\" content=\"Laravel Marketplace Stripe Payment Gateway module automatically splits the customer\u2019s payment between the seller and the admin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-23T06:41:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-22T04:55:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp\" \/>\n<meta name=\"author\" content=\"Sanjana Singh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sanjana Singh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/\"},\"author\":{\"name\":\"Sanjana Singh\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/423f8850bc70196595e9e678c039f455\"},\"headline\":\"Laravel Marketplace Stripe Payment Gateway\",\"datePublished\":\"2020-04-23T06:41:42+00:00\",\"dateModified\":\"2026-09-22T04:55:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/\"},\"wordCount\":1870,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/blog-stripeconnect-config.webp\",\"keywords\":[\"Bagisto\",\"Laravel eCommerce\",\"Marketplace Stripe Payment\",\"Stripe Connect\"],\"articleSection\":[\"Bagisto\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/\",\"name\":\"Laravel Marketplace Stripe Payment Gateway\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/blog-stripeconnect-config.webp\",\"datePublished\":\"2020-04-23T06:41:42+00:00\",\"dateModified\":\"2026-09-22T04:55:19+00:00\",\"description\":\"Laravel Marketplace Stripe Payment Gateway module automatically splits the customer\u2019s payment between the seller and the admin.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/blog-stripeconnect-config.webp\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/blog-stripeconnect-config.webp\",\"width\":1120,\"height\":880},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-marketplace-stripe-payment-gateway\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel Marketplace Stripe Payment Gateway\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/webkul.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/webkul\\\/\",\"https:\\\/\\\/x.com\\\/webkul\",\"https:\\\/\\\/www.instagram.com\\\/webkul\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/webkul\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/webkul\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/423f8850bc70196595e9e678c039f455\",\"name\":\"Sanjana Singh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3b1649473554d683f4cf4a8b85d233cf43338684aaedc9004cee2e3668990526?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3b1649473554d683f4cf4a8b85d233cf43338684aaedc9004cee2e3668990526?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3b1649473554d683f4cf4a8b85d233cf43338684aaedc9004cee2e3668990526?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g\",\"caption\":\"Sanjana Singh\"},\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/author\\\/sanjana-singh202\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Laravel Marketplace Stripe Payment Gateway","description":"Laravel Marketplace Stripe Payment Gateway module automatically splits the customer\u2019s payment between the seller and the admin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/","og_locale":"en_US","og_type":"article","og_title":"Laravel Marketplace Stripe Payment Gateway","og_description":"Laravel Marketplace Stripe Payment Gateway module automatically splits the customer\u2019s payment between the seller and the admin.","og_url":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2020-04-23T06:41:42+00:00","article_modified_time":"2026-09-22T04:55:19+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp","type":"","width":"","height":""}],"author":"Sanjana Singh","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Sanjana Singh","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/"},"author":{"name":"Sanjana Singh","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/423f8850bc70196595e9e678c039f455"},"headline":"Laravel Marketplace Stripe Payment Gateway","datePublished":"2020-04-23T06:41:42+00:00","dateModified":"2026-09-22T04:55:19+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/"},"wordCount":1870,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp","keywords":["Bagisto","Laravel eCommerce","Marketplace Stripe Payment","Stripe Connect"],"articleSection":["Bagisto"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/","url":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/","name":"Laravel Marketplace Stripe Payment Gateway","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp","datePublished":"2020-04-23T06:41:42+00:00","dateModified":"2026-09-22T04:55:19+00:00","description":"Laravel Marketplace Stripe Payment Gateway module automatically splits the customer\u2019s payment between the seller and the admin.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2020\/04\/blog-stripeconnect-config.webp","width":1120,"height":880},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/laravel-marketplace-stripe-payment-gateway\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel Marketplace Stripe Payment Gateway"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/423f8850bc70196595e9e678c039f455","name":"Sanjana Singh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3b1649473554d683f4cf4a8b85d233cf43338684aaedc9004cee2e3668990526?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3b1649473554d683f4cf4a8b85d233cf43338684aaedc9004cee2e3668990526?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3b1649473554d683f4cf4a8b85d233cf43338684aaedc9004cee2e3668990526?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Feva.png&r=g","caption":"Sanjana Singh"},"url":"https:\/\/webkul.com\/blog\/author\/sanjana-singh202\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/243636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/243"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=243636"}],"version-history":[{"count":79,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/243636\/revisions"}],"predecessor-version":[{"id":554068,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/243636\/revisions\/554068"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=243636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=243636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=243636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}