Issue:
Bug: [Refactor] Remove merchant reference id from customers v2 update api



Remove `merchant_reference_id` field from customer update request struct so that it cannot be updated.

Pull request description:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [ ] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
We are removing `merchant_reference_id` from all API updates, due to possible bugs on merchant side db and HS db as there might be mismatch in their's and our's db records. This exists only in customers and refunds v2 apis, a separate PR has been implemented for refunds update, and this PR is for customers v2 update api.

It was noticed that in the current implementation of customers v2 update flow, the `merchant_reference_id` field is being accepted by the API but it was never updated in the db. In this PR we are removing `merchant_reference_id` from being accepted in the customers v2 update request.

### Additional Changes

- [x] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->
Upon merging this PR, we will be removing `merchant_reference_id` from being updated in customer v2 update api.

## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->
- Create Customer API Call
```
curl --location 'http://localhost:8080/v2/customers' \
--header 'x-profile-id: pro_saOFnM13wT1ngOuItKJl' \
--header 'Content-Type: application/json' \
--header 'Authorization: api-key=dev_VAtwaBd0cVItaaxIS8bUTFuPcxa9DkqlmBPvH5fq6IASKSlBxc9cBUygLoCaebFj' \
--data-raw '{   
    "merchant_reference_id": "customer_1748929359",
    "name": "John Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "First customer",
    "default_billing_address": null,
    "default_shipping_address": null,
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
- Response from above call
```
{
    "id": "12345_cus_0197344f74677930a77bfc4c926c3b3e",
    "merchant_reference_id": "customer_1748929312",
    "connector_customer_ids": null,
    "name": "John Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "First customer",
    "default_billing_address": null,
    "default_shipping_address": null,
    "created_at": "2025-06-03T05:41:51.849Z",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },
    "default_payment_method_id": null
}
```
- Customer Update API call
```
curl --location --request PUT 'http://localhost:8080/v2/customers/12345_cus_0197344f74677930a77bfc4c926c3b3e' \
--header 'x-profile-id: pro_saOFnM13wT1ngOuItKJl' \
--header 'Content-Type: application/json' \
--header 'Authorization: api-key=dev_VAtwaBd0cVItaaxIS8bUTFuPcxa9DkqlmBPvH5fq6IASKSlBxc9cBUygLoCaebFj' \
--data-raw '{   
    "name": "Jane Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Second customer",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
- Response from the above call
```
{
    "id": "12345_cus_0197344f74677930a77bfc4c926c3b3e",
    "merchant_reference_id": "customer_1748929312",
    "connector_customer_ids": null,
    "name": "Jane Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Second customer",
    "default_billing_address": null,
    "default_shipping_address": null,
    "created_at": "2025-06-03T05:41:51.849Z",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },
    "default_payment_method_id": null
}
```

- Trying to update `merchant_reference_id` API call
```
curl --location --request PUT 'http://localhost:8080/v2/customers/12345_cus_0197344f74677930a77bfc4c926c3b3e' \
--header 'x-profile-id: pro_saOFnM13wT1ngOuItKJl' \
--header 'Content-Type: application/json' \
--header 'Authorization: api-key=dev_VAtwaBd0cVItaaxIS8bUTFuPcxa9DkqlmBPvH5fq6IASKSlBxc9cBUygLoCaebFj' \
--data-raw '{   
    "merchant_reference_id": "customer_1748929499",
    "name": "Jane Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Second customer",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
- Response from the above call
```
{
    "error": {
        "error_type": "invalid_request",
        "message": "Json deserialize error: unknown field `merchant_reference_id`, expected one of `name`, `email`, `phone`, `description`, `phone_country_code`, `default_billing_address`, `default_shipping_address`, `metadata`, `default_payment_method_id` at line 2 column 27",
        "code": "IR_06"
    }
}
```

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible


Testing:

- Create Customer API Call
```
curl --location 'http://localhost:8080/v2/customers' \
--header 'x-profile-id: pro_saOFnM13wT1ngOuItKJl' \
--header 'Content-Type: application/json' \
--header 'Authorization: api-key=dev_VAtwaBd0cVItaaxIS8bUTFuPcxa9DkqlmBPvH5fq6IASKSlBxc9cBUygLoCaebFj' \
--data-raw '{   
    "merchant_reference_id": "customer_1748929359",
    "name": "John Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "First customer",
    "default_billing_address": null,
    "default_shipping_address": null,
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
- Response from above call
```
{
    "id": "12345_cus_0197344f74677930a77bfc4c926c3b3e",
    "merchant_reference_id": "customer_1748929312",
    "connector_customer_ids": null,
    "name": "John Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "First customer",
    "default_billing_address": null,
    "default_shipping_address": null,
    "created_at": "2025-06-03T05:41:51.849Z",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },
    "default_payment_method_id": null
}
```
- Customer Update API call
```
curl --location --request PUT 'http://localhost:8080/v2/customers/12345_cus_0197344f74677930a77bfc4c926c3b3e' \
--header 'x-profile-id: pro_saOFnM13wT1ngOuItKJl' \
--header 'Content-Type: application/json' \
--header 'Authorization: api-key=dev_VAtwaBd0cVItaaxIS8bUTFuPcxa9DkqlmBPvH5fq6IASKSlBxc9cBUygLoCaebFj' \
--data-raw '{   
    "name": "Jane Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Second customer",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
- Response from the above call
```
{
    "id": "12345_cus_0197344f74677930a77bfc4c926c3b3e",
    "merchant_reference_id": "customer_1748929312",
    "connector_customer_ids": null,
    "name": "Jane Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Second customer",
    "default_billing_address": null,
    "default_shipping_address": null,
    "created_at": "2025-06-03T05:41:51.849Z",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },
    "default_payment_method_id": null
}
```

- Trying to update `merchant_reference_id` API call
```
curl --location --request PUT 'http://localhost:8080/v2/customers/12345_cus_0197344f74677930a77bfc4c926c3b3e' \
--header 'x-profile-id: pro_saOFnM13wT1ngOuItKJl' \
--header 'Content-Type: application/json' \
--header 'Authorization: api-key=dev_VAtwaBd0cVItaaxIS8bUTFuPcxa9DkqlmBPvH5fq6IASKSlBxc9cBUygLoCaebFj' \
--data-raw '{   
    "merchant_reference_id": "customer_1748929499",
    "name": "Jane Doe",
    "email": "guest@example.com",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Second customer",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    }
}'
```
- Response from the above call
```
{
    "error": {
        "error_type": "invalid_request",
        "message": "Json deserialize error: unknown field `merchant_reference_id`, expected one of `name`, `email`, `phone`, `description`, `phone_country_code`, `default_billing_address`, `default_shipping_address`, `metadata`, `default_payment_method_id` at line 2 column 27",
        "code": "IR_06"
    }
}
```

Patch:
diff --git a/api-reference-v2/openapi_spec.json b/api-reference-v2/openapi_spec.json
index 10682866ab7..f7f62fe5ee8 100644
--- a/api-reference-v2/openapi_spec.json
+++ b/api-reference-v2/openapi_spec.json
@@ -9362,14 +9362,6 @@
           "email"
         ],
         "properties": {
-          "merchant_reference_id": {
-            "type": "string",
-            "description": "The merchant identifier for the customer object.",
-            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
-            "nullable": true,
-            "maxLength": 64,
-            "minLength": 1
-          },
           "name": {
             "type": "string",
             "description": "The customer's name",
diff --git a/crates/api_models/src/customers.rs b/crates/api_models/src/customers.rs
index eb61cae6e47..90f849971b2 100644
--- a/crates/api_models/src/customers.rs
+++ b/crates/api_models/src/customers.rs
@@ -313,9 +313,6 @@ impl CustomerUpdateRequest {
 #[derive(Debug, Default, Clone, Deserialize, Serialize, ToSchema)]
 #[serde(deny_unknown_fields)]
 pub struct CustomerUpdateRequest {
-    /// The merchant identifier for the customer object.
-    #[schema(value_type = Option<String>, max_length = 64, min_length = 1, example = "cus_y3oqhf46pyzuxjbcn2giaqnb44")]
-    pub merchant_reference_id: Option<id_type::CustomerId>,
     /// The customer's name
     #[schema(max_length = 255, value_type = String, example = "Jon Test")]
     pub name: Option<Secret<String>>,
@@ -349,10 +346,6 @@ pub struct CustomerUpdateRequest {
 
 #[cfg(all(feature = "v2", feature = "customer_v2"))]
 impl CustomerUpdateRequest {
-    pub fn get_merchant_reference_id(&self) -> Option<id_type::CustomerId> {
-        self.merchant_reference_id.clone()
-    }
-
     pub fn get_default_customer_billing_address(&self) -> Option<payments::AddressDetails> {
         self.default_billing_address.clone()
     }