diff --git a/src/Concerns/ManagesInvoices.php b/src/Concerns/ManagesInvoices.php index 629e9934..639d724b 100644 --- a/src/Concerns/ManagesInvoices.php +++ b/src/Concerns/ManagesInvoices.php @@ -150,6 +150,10 @@ public function createInvoice(array $options = []) 'customer' => $this->stripe_id, ], $options); + if (array_key_exists('subscription', $parameters)) { + unset($parameters['pending_invoice_items_behavior']); + } + $stripeInvoice = $this->stripe()->invoices->create($parameters); return new Invoice($this, $stripeInvoice); diff --git a/tests/Feature/SubscriptionsTest.php b/tests/Feature/SubscriptionsTest.php index 15cc129e..d28c551b 100644 --- a/tests/Feature/SubscriptionsTest.php +++ b/tests/Feature/SubscriptionsTest.php @@ -955,4 +955,18 @@ public function test_upcoming_invoice() $this->assertSame('draft', $invoice->status); $this->assertSame(1000, $invoice->total); } + + public function test_invoice_subscription_directly() + { + $user = $this->createCustomer('invoice_subscription_directly'); + $subscription = $user->newSubscription('main', static::$priceId) + ->create('pm_card_visa'); + + $subscription->updateQuantity(3); + + $invoice = $subscription->invoice(); + + $this->assertSame('paid', $invoice->status); + $this->assertSame(2000, $invoice->total); + } }