diff --git a/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php b/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php
new file mode 100644
index 00000000..a82e4b2b
--- /dev/null
+++ b/app/Classes/Modules/Addresses/ControllersLogic/CreateBillingAddressLogic.php
@@ -0,0 +1,86 @@
+ 'Created Billing Address',
+ 'message' => 'You have successfully created a new Billing Address'
+ ];
+ }
+
+ /** @var CanCreateAddress */
+ private $canCreateAddress;
+
+ /** @var FetchesCompanyModule */
+ private $fetchesCompanyModule;
+
+ /** @var CreatesAddress */
+ private $createsAddress;
+
+ /** @var FetchesAddress */
+ private $fetchesAddress;
+
+ /**
+ * CreateAddressLogic constructor.
+ * @param CanCreateAddress $canCreateAddress
+ * @param FetchesCompanyModule $fetchesCompanyModule
+ * @param CreatesAddress $createsAddress
+ * @param FetchesAddress $fetchesAddress
+ */
+ public function __construct(CanCreateAddress $canCreateAddress, FetchesCompanyModule $fetchesCompanyModule, CreatesAddress $createsAddress, FetchesAddress $fetchesAddress)
+ {
+ $this->canCreateAddress = $canCreateAddress;
+ $this->fetchesCompanyModule = $fetchesCompanyModule;
+ $this->createsAddress = $createsAddress;
+ $this->fetchesAddress = $fetchesAddress;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]);
+
+ $address = $this->fetchesAddress->execute(['id' => $request->input('billing_address_id')]);
+
+ if ($address->type !== AddressType::BILLING || $address !== $companyModule->addresses->where('type', AddressType::BILLING)->first()) {
+ // delete all current billing address
+ Address::where('owner_type', CompanyModule::class)->where('owner_id', $request->input('company_module_id'))->where('type', AddressType::BILLING)->delete();
+
+ // create addrress
+ $billingAddress = new AddressObject($address->street_one, $address->street_two, $address->country_id, $address->state_id, $address->district_id, $address->postcode, AddressType::BILLING, ApprovalStatus::APPROVED, $address->reference);
+ $this->canCreateAddress->passes($billingAddress);
+ $this->createsAddress->execute($companyModule, $billingAddress);
+ }
+
+ return $this->resourceResponse(new AddressResource($address));
+ }
+
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Addresses/CreateBillingAddressController.php b/app/Http/Controllers/Addresses/CreateBillingAddressController.php
new file mode 100644
index 00000000..866cb842
--- /dev/null
+++ b/app/Http/Controllers/Addresses/CreateBillingAddressController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
\ No newline at end of file
diff --git a/resources/assets/vue/components/addresses/sections/BillingAddressSectionComponent.vue b/resources/assets/vue/components/addresses/sections/BillingAddressSectionComponent.vue
new file mode 100644
index 00000000..fef628a3
--- /dev/null
+++ b/resources/assets/vue/components/addresses/sections/BillingAddressSectionComponent.vue
@@ -0,0 +1,123 @@
+
+
+ Use Delivery AddressPlease select the Billing Address
+