@vitrina/api 11.33.4 → 11.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.cts +1130 -248
  2. package/dist/index.d.ts +1130 -248
  3. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -15111,6 +15111,8 @@ interface paths {
15111
15111
  municipalidad_comuna_code?: string | null;
15112
15112
  last_service_date?: string | null;
15113
15113
  service_odometer_km?: number | null;
15114
+ /** Format: uuid */
15115
+ responsible_user_id?: string | null;
15114
15116
  /**
15115
15117
  * @description OPTIONAL. Marketplaces to publish this vehicle to right after it is saved — the same effect as a follow-up POST /vehicles/{id}/publish, in one call. Omitted or `[]` means save only and publish nowhere: there is no default and no tenant-level setting. Each entry is either a portal slug (`chileautos`, `chileautos_panel`, `facebook`, `facebook_marketplace`, `linze`, `mercadolibre`, `yapo`) or a marketplace integration id (the `id` of a row from GET /marketplaces). A portal slug resolves to the connected account the workspace has for that portal, whichever transport it uses (`chileautos` reaches the certified API account or the `chileautos_panel` account). Every entry is validated BEFORE the vehicle is written, and any bad entry answers 422 with nothing saved: a slug with no connected account, a slug matching more than one account (pass the integration id instead), an id that is not one of this workspace's accounts, or a portal that does not accept this vehicle type. Entries resolving to the same account are deduplicated. A portal FAILING to publish never fails the save — see `publications` in the response. On PUT, `publish_to` only ADDS portals: a portal where the vehicle is already live or queued is a no-op (`already_published`), never a second ad, and a portal left out is NOT unpublished — removal is DELETE /vehicles/{id}/publications/{pubId}.
15116
15118
  * @example [
@@ -15692,6 +15694,8 @@ interface paths {
15692
15694
  municipalidad_comuna_code?: string | null;
15693
15695
  last_service_date?: string | null;
15694
15696
  service_odometer_km?: number | null;
15697
+ /** Format: uuid */
15698
+ responsible_user_id?: string | null;
15695
15699
  /**
15696
15700
  * @description OPTIONAL. Marketplaces to publish this vehicle to right after it is saved — the same effect as a follow-up POST /vehicles/{id}/publish, in one call. Omitted or `[]` means save only and publish nowhere: there is no default and no tenant-level setting. Each entry is either a portal slug (`chileautos`, `chileautos_panel`, `facebook`, `facebook_marketplace`, `linze`, `mercadolibre`, `yapo`) or a marketplace integration id (the `id` of a row from GET /marketplaces). A portal slug resolves to the connected account the workspace has for that portal, whichever transport it uses (`chileautos` reaches the certified API account or the `chileautos_panel` account). Every entry is validated BEFORE the vehicle is written, and any bad entry answers 422 with nothing saved: a slug with no connected account, a slug matching more than one account (pass the integration id instead), an id that is not one of this workspace's accounts, or a portal that does not accept this vehicle type. Entries resolving to the same account are deduplicated. A portal FAILING to publish never fails the save — see `publications` in the response. On PUT, `publish_to` only ADDS portals: a portal where the vehicle is already live or queued is a no-op (`already_published`), never a second ad, and a portal left out is NOT unpublished — removal is DELETE /vehicles/{id}/publications/{pubId}.
15697
15701
  * @example [
@@ -24164,6 +24168,11 @@ interface paths {
24164
24168
  * "brand": null,
24165
24169
  * "lifecycle_stage": "prospect",
24166
24170
  * "job_title": "Gerente de operaciones",
24171
+ * "birthday": "1989-03-15",
24172
+ * "birthday_year_known": true,
24173
+ * "vehicle_brand": "Chevrolet",
24174
+ * "vehicle_model": "Aveo",
24175
+ * "vehicle_year": 2015,
24167
24176
  * "city": "Providencia",
24168
24177
  * "company_id": "15151515-0000-4000-8000-000000000001",
24169
24178
  * "social": {
@@ -24458,6 +24467,11 @@ interface paths {
24458
24467
  * "brand": null,
24459
24468
  * "lifecycle_stage": "prospect",
24460
24469
  * "job_title": "Gerente de operaciones",
24470
+ * "birthday": "1989-03-15",
24471
+ * "birthday_year_known": true,
24472
+ * "vehicle_brand": "Chevrolet",
24473
+ * "vehicle_model": "Aveo",
24474
+ * "vehicle_year": 2015,
24461
24475
  * "city": "Providencia",
24462
24476
  * "company_id": "15151515-0000-4000-8000-000000000001",
24463
24477
  * "social": {
@@ -24510,6 +24524,11 @@ interface paths {
24510
24524
  * "brand": null,
24511
24525
  * "lifecycle_stage": "prospect",
24512
24526
  * "job_title": "Gerente de operaciones",
24527
+ * "birthday": "1989-03-15",
24528
+ * "birthday_year_known": true,
24529
+ * "vehicle_brand": "Chevrolet",
24530
+ * "vehicle_model": "Aveo",
24531
+ * "vehicle_year": 2015,
24513
24532
  * "city": "Providencia",
24514
24533
  * "company_id": null,
24515
24534
  * "social": {
@@ -24669,7 +24688,11 @@ interface paths {
24669
24688
  * "job_title": "Gerente de operaciones",
24670
24689
  * "lifecycle_stage": "prospect",
24671
24690
  * "origin_channel": "manual",
24672
- * "company_id": "15151515-0000-4000-8000-000000000001"
24691
+ * "company_id": "15151515-0000-4000-8000-000000000001",
24692
+ * "birthday": "1989-03-15",
24693
+ * "vehicle_brand": "Chevrolet",
24694
+ * "vehicle_model": "Aveo",
24695
+ * "vehicle_year": 2015
24673
24696
  * }
24674
24697
  */
24675
24698
  "application/json": {
@@ -24683,6 +24706,10 @@ interface paths {
24683
24706
  /** @enum {string} */
24684
24707
  lifecycle_stage?: "unknown" | "prospect" | "qualified_prospect" | "customer" | "repeat_customer" | "inactive" | "blocked";
24685
24708
  job_title?: string | null;
24709
+ birthday?: string | null;
24710
+ vehicle_brand?: string | null;
24711
+ vehicle_model?: string | null;
24712
+ vehicle_year?: number | null;
24686
24713
  city?: string | null;
24687
24714
  /** Format: uuid */
24688
24715
  company_id?: string | null;
@@ -24728,6 +24755,11 @@ interface paths {
24728
24755
  * "brand": null,
24729
24756
  * "lifecycle_stage": "prospect",
24730
24757
  * "job_title": "Gerente de operaciones",
24758
+ * "birthday": "1989-03-15",
24759
+ * "birthday_year_known": true,
24760
+ * "vehicle_brand": "Chevrolet",
24761
+ * "vehicle_model": "Aveo",
24762
+ * "vehicle_year": 2015,
24731
24763
  * "city": "Providencia",
24732
24764
  * "company_id": "15151515-0000-4000-8000-000000000001",
24733
24765
  * "social": {
@@ -24875,6 +24907,11 @@ interface paths {
24875
24907
  * "brand": null,
24876
24908
  * "lifecycle_stage": "prospect",
24877
24909
  * "job_title": "Gerente de operaciones",
24910
+ * "birthday": "1989-03-15",
24911
+ * "birthday_year_known": true,
24912
+ * "vehicle_brand": "Chevrolet",
24913
+ * "vehicle_model": "Aveo",
24914
+ * "vehicle_year": 2015,
24878
24915
  * "city": "Providencia",
24879
24916
  * "company_id": "15151515-0000-4000-8000-000000000001",
24880
24917
  * "social": {
@@ -25027,6 +25064,10 @@ interface paths {
25027
25064
  /** @enum {string} */
25028
25065
  lifecycle_stage?: "unknown" | "prospect" | "qualified_prospect" | "customer" | "repeat_customer" | "inactive" | "blocked";
25029
25066
  job_title?: string | null;
25067
+ birthday?: string | null;
25068
+ vehicle_brand?: string | null;
25069
+ vehicle_model?: string | null;
25070
+ vehicle_year?: number | null;
25030
25071
  city?: string | null;
25031
25072
  /** Format: uuid */
25032
25073
  company_id?: string | null;
@@ -25072,6 +25113,11 @@ interface paths {
25072
25113
  * "brand": null,
25073
25114
  * "lifecycle_stage": "customer",
25074
25115
  * "job_title": "Directora de operaciones",
25116
+ * "birthday": "1989-03-15",
25117
+ * "birthday_year_known": true,
25118
+ * "vehicle_brand": "Chevrolet",
25119
+ * "vehicle_model": "Aveo",
25120
+ * "vehicle_year": 2015,
25075
25121
  * "city": "Providencia",
25076
25122
  * "company_id": "15151515-0000-4000-8000-000000000001",
25077
25123
  * "social": {
@@ -25219,6 +25265,11 @@ interface paths {
25219
25265
  * "brand": null,
25220
25266
  * "lifecycle_stage": "prospect",
25221
25267
  * "job_title": "Gerente de operaciones",
25268
+ * "birthday": "1989-03-15",
25269
+ * "birthday_year_known": true,
25270
+ * "vehicle_brand": "Chevrolet",
25271
+ * "vehicle_model": "Aveo",
25272
+ * "vehicle_year": 2015,
25222
25273
  * "city": "Providencia",
25223
25274
  * "company_id": "15151515-0000-4000-8000-000000000001",
25224
25275
  * "social": {
@@ -25401,6 +25452,11 @@ interface paths {
25401
25452
  * "brand": null,
25402
25453
  * "lifecycle_stage": "prospect",
25403
25454
  * "job_title": "Gerente de operaciones",
25455
+ * "birthday": "1989-03-15",
25456
+ * "birthday_year_known": true,
25457
+ * "vehicle_brand": "Chevrolet",
25458
+ * "vehicle_model": "Aveo",
25459
+ * "vehicle_year": 2015,
25404
25460
  * "city": "Providencia",
25405
25461
  * "company_id": "15151515-0000-4000-8000-000000000001",
25406
25462
  * "social": {
@@ -25575,6 +25631,11 @@ interface paths {
25575
25631
  * "brand": null,
25576
25632
  * "lifecycle_stage": "blocked",
25577
25633
  * "job_title": "Gerente de operaciones",
25634
+ * "birthday": "1989-03-15",
25635
+ * "birthday_year_known": true,
25636
+ * "vehicle_brand": "Chevrolet",
25637
+ * "vehicle_model": "Aveo",
25638
+ * "vehicle_year": 2015,
25578
25639
  * "city": "Providencia",
25579
25640
  * "company_id": "15151515-0000-4000-8000-000000000001",
25580
25641
  * "social": {
@@ -25743,6 +25804,11 @@ interface paths {
25743
25804
  * "brand": null,
25744
25805
  * "lifecycle_stage": "prospect",
25745
25806
  * "job_title": "Gerente de operaciones",
25807
+ * "birthday": "1989-03-15",
25808
+ * "birthday_year_known": true,
25809
+ * "vehicle_brand": "Chevrolet",
25810
+ * "vehicle_model": "Aveo",
25811
+ * "vehicle_year": 2015,
25746
25812
  * "city": "Providencia",
25747
25813
  * "company_id": "15151515-0000-4000-8000-000000000001",
25748
25814
  * "social": {
@@ -25909,6 +25975,11 @@ interface paths {
25909
25975
  * "brand": null,
25910
25976
  * "lifecycle_stage": "blocked",
25911
25977
  * "job_title": "Gerente de operaciones",
25978
+ * "birthday": "1989-03-15",
25979
+ * "birthday_year_known": true,
25980
+ * "vehicle_brand": "Chevrolet",
25981
+ * "vehicle_model": "Aveo",
25982
+ * "vehicle_year": 2015,
25912
25983
  * "city": "Providencia",
25913
25984
  * "company_id": "15151515-0000-4000-8000-000000000001",
25914
25985
  * "social": {
@@ -26079,6 +26150,11 @@ interface paths {
26079
26150
  * "brand": null,
26080
26151
  * "lifecycle_stage": "prospect",
26081
26152
  * "job_title": "Gerente de operaciones",
26153
+ * "birthday": "1989-03-15",
26154
+ * "birthday_year_known": true,
26155
+ * "vehicle_brand": "Chevrolet",
26156
+ * "vehicle_model": "Aveo",
26157
+ * "vehicle_year": 2015,
26082
26158
  * "city": "Providencia",
26083
26159
  * "company_id": "15151515-0000-4000-8000-000000000001",
26084
26160
  * "social": {
@@ -26226,7 +26302,7 @@ interface paths {
26226
26302
  */
26227
26303
  "application/json": {
26228
26304
  csv?: string;
26229
- rows?: {
26305
+ rows?: ({
26230
26306
  name?: string | null;
26231
26307
  email?: string | null;
26232
26308
  phone?: string | null;
@@ -26237,7 +26313,13 @@ interface paths {
26237
26313
  job_title?: string | null;
26238
26314
  brand?: string | null;
26239
26315
  lifecycle_stage?: string | null;
26240
- }[];
26316
+ birthday?: string | null;
26317
+ vehicle_brand?: string | null;
26318
+ vehicle_model?: string | null;
26319
+ vehicle_year?: string | null;
26320
+ } & {
26321
+ [key: string]: string | null;
26322
+ })[];
26241
26323
  mapping?: {
26242
26324
  [key: string]: string;
26243
26325
  };
@@ -30174,6 +30256,8 @@ interface paths {
30174
30256
  * "seller_of_record": "automotora",
30175
30257
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
30176
30258
  * "net_clp": 11900000,
30259
+ * "list_price_clp": 12490000,
30260
+ * "discount_clp": 590000,
30177
30261
  * "tax_clp": 1900000,
30178
30262
  * "tax_treatment": "afecto",
30179
30263
  * "status": "issued",
@@ -30328,6 +30412,7 @@ interface paths {
30328
30412
  tax_clp?: number | null;
30329
30413
  /** @enum {string} */
30330
30414
  tax_treatment: "afecto" | "exento" | "no_gravado" | "pass_through";
30415
+ expected_list_price_clp?: number | null;
30331
30416
  /** Format: date-time */
30332
30417
  issued_at?: string | null;
30333
30418
  /** Format: uuid */
@@ -30384,6 +30469,8 @@ interface paths {
30384
30469
  * "seller_of_record": "automotora",
30385
30470
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
30386
30471
  * "net_clp": 11900000,
30472
+ * "list_price_clp": 12490000,
30473
+ * "discount_clp": 590000,
30387
30474
  * "tax_clp": 1900000,
30388
30475
  * "tax_treatment": "afecto",
30389
30476
  * "status": "issued",
@@ -30517,6 +30604,8 @@ interface paths {
30517
30604
  * "seller_of_record": "automotora",
30518
30605
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
30519
30606
  * "net_clp": 11900000,
30607
+ * "list_price_clp": 12490000,
30608
+ * "discount_clp": 590000,
30520
30609
  * "tax_clp": 1900000,
30521
30610
  * "tax_treatment": "afecto",
30522
30611
  * "status": "issued",
@@ -30716,6 +30805,8 @@ interface paths {
30716
30805
  * "seller_of_record": "automotora",
30717
30806
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
30718
30807
  * "net_clp": 11900000,
30808
+ * "list_price_clp": 12490000,
30809
+ * "discount_clp": 590000,
30719
30810
  * "tax_clp": 1900000,
30720
30811
  * "tax_treatment": "afecto",
30721
30812
  * "status": "issued",
@@ -31053,6 +31144,8 @@ interface paths {
31053
31144
  * "seller_of_record": "automotora",
31054
31145
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
31055
31146
  * "net_clp": 11900000,
31147
+ * "list_price_clp": 12490000,
31148
+ * "discount_clp": 590000,
31056
31149
  * "tax_clp": 1900000,
31057
31150
  * "tax_treatment": "afecto",
31058
31151
  * "status": "approved",
@@ -31201,6 +31294,8 @@ interface paths {
31201
31294
  * "seller_of_record": "automotora",
31202
31295
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
31203
31296
  * "net_clp": 11900000,
31297
+ * "list_price_clp": 12490000,
31298
+ * "discount_clp": 590000,
31204
31299
  * "tax_clp": 1900000,
31205
31300
  * "tax_treatment": "afecto",
31206
31301
  * "status": "voided",
@@ -34368,7 +34463,7 @@ interface paths {
34368
34463
  * "representative_tax_id": "13456789-0",
34369
34464
  * "representative_tax_id_kind": "rut",
34370
34465
  * "escritura_date": "2019-03-12",
34371
- * "escritura_notary": "Notaría de Santiago de don Patricio Zaldívar Mackenna",
34466
+ * "escritura_notary": "Notaría de Santiago de don Pedro Ejemplo",
34372
34467
  * "escritura_comuna_code": "13101",
34373
34468
  * "created_at": "2026-09-28T13:00:00.000Z",
34374
34469
  * "updated_at": "2026-09-28T13:00:00.000Z"
@@ -34472,7 +34567,7 @@ interface paths {
34472
34567
  * "representative_tax_id": "13.456.789-0",
34473
34568
  * "representative_tax_id_kind": "rut",
34474
34569
  * "escritura_date": "2019-03-12",
34475
- * "escritura_notary": "Notaría de Santiago de don Patricio Zaldívar Mackenna",
34570
+ * "escritura_notary": "Notaría de Santiago de don Pedro Ejemplo",
34476
34571
  * "escritura_comuna_code": "13101"
34477
34572
  * }
34478
34573
  */
@@ -34522,7 +34617,7 @@ interface paths {
34522
34617
  * "representative_tax_id": "13456789-0",
34523
34618
  * "representative_tax_id_kind": "rut",
34524
34619
  * "escritura_date": "2019-03-12",
34525
- * "escritura_notary": "Notaría de Santiago de don Patricio Zaldívar Mackenna",
34620
+ * "escritura_notary": "Notaría de Santiago de don Pedro Ejemplo",
34526
34621
  * "escritura_comuna_code": "13101",
34527
34622
  * "created_at": "2026-09-28T13:00:00.000Z",
34528
34623
  * "updated_at": "2026-09-28T13:00:00.000Z"
@@ -34643,7 +34738,7 @@ interface paths {
34643
34738
  * "representative_tax_id": "13456789-0",
34644
34739
  * "representative_tax_id_kind": "rut",
34645
34740
  * "escritura_date": "2019-03-12",
34646
- * "escritura_notary": "Notaría de Santiago de don Patricio Zaldívar Mackenna",
34741
+ * "escritura_notary": "Notaría de Santiago de don Pedro Ejemplo",
34647
34742
  * "escritura_comuna_code": "13101",
34648
34743
  * "created_at": "2026-09-28T13:00:00.000Z",
34649
34744
  * "updated_at": "2026-09-28T13:00:00.000Z"
@@ -34862,7 +34957,7 @@ interface paths {
34862
34957
  * "representative_tax_id": "13456789-0",
34863
34958
  * "representative_tax_id_kind": "rut",
34864
34959
  * "escritura_date": "2019-03-12",
34865
- * "escritura_notary": "Notaría de Santiago de don Patricio Zaldívar Mackenna",
34960
+ * "escritura_notary": "Notaría de Santiago de don Pedro Ejemplo",
34866
34961
  * "escritura_comuna_code": "13101",
34867
34962
  * "created_at": "2026-09-28T13:00:00.000Z",
34868
34963
  * "updated_at": "2026-09-28T14:10:00.000Z"
@@ -35890,6 +35985,8 @@ interface paths {
35890
35985
  * "seller_of_record": "automotora",
35891
35986
  * "salesperson_id": "11111111-0000-4000-8000-000000000001",
35892
35987
  * "net_clp": 11900000,
35988
+ * "list_price_clp": 12490000,
35989
+ * "discount_clp": 590000,
35893
35990
  * "tax_clp": 1900000,
35894
35991
  * "tax_treatment": "afecto",
35895
35992
  * "status": "issued",
@@ -37701,134 +37798,939 @@ interface paths {
37701
37798
  };
37702
37799
  };
37703
37800
  put?: never;
37704
- /**
37705
- * Upload a registry document for a vehicle (multipart/form-data)
37706
- * @description Capped at the configured max size; the file part is required.
37707
- */
37708
- post: {
37709
- parameters: {
37710
- query?: never;
37711
- header?: {
37712
- /** @description Replay-safe retries: resending the SAME key with the SAME body returns the original response (`X-Idempotent-Replay: 1`) instead of creating a second copy — safe to send whenever a response might not have arrived. The same key with a DIFFERENT body answers `409 IDEMPOTENCY_KEY_CONFLICT`; use a fresh key per operation. */
37713
- "Idempotency-Key"?: string;
37714
- };
37715
- path?: never;
37716
- cookie?: never;
37717
- };
37718
- requestBody?: {
37719
- content: {
37720
- /**
37721
- * @example {
37722
- * "vehicle_id": "e1e1e1e1-0000-4000-8000-000000000001",
37723
- * "kind": "padron",
37724
- * "file": "(binary file part)"
37725
- * }
37726
- */
37727
- "multipart/form-data": {
37728
- /** Format: uuid */
37729
- vehicle_id: string;
37730
- /** @enum {string} */
37731
- kind: "padron" | "cedula" | "contrato" | "certificado_anotaciones" | "factura" | "otro";
37732
- /** Format: uuid */
37733
- subject_contact_id?: string;
37734
- file?: unknown;
37735
- };
37736
- };
37737
- };
37738
- responses: {
37739
- /** @description The uploaded attachment */
37740
- 201: {
37741
- headers: {
37742
- [name: string]: unknown;
37743
- };
37744
- content: {
37745
- /**
37746
- * @example {
37747
- * "data": {
37748
- * "id": "f1f1f1f1-0000-4000-8000-000000000001",
37749
- * "tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
37750
- * "vehicle_id": "e1e1e1e1-0000-4000-8000-000000000001",
37751
- * "kind": "padron",
37752
- * "storage_bucket": "vitrina-registry",
37753
- * "storage_path": "a1a1a1a1-0000-4000-8000-000000000001/e1e1e1e1-0000-4000-8000-000000000001/padron.png",
37754
- * "filename": "padron.png",
37755
- * "mime_type": "image/png",
37756
- * "byte_size": 812004,
37757
- * "subject_contact_id": null,
37758
- * "uploaded_by": "11111111-0000-4000-8000-000000000001",
37759
- * "uploaded_at": "2026-09-15T18:47:01.784Z",
37760
- * "created_at": "2026-09-15T18:47:01.784Z"
37761
- * }
37762
- * }
37763
- */
37764
- "application/json": {
37765
- data?: unknown;
37766
- };
37767
- };
37768
- };
37769
- /** @description Validation error */
37770
- 400: {
37771
- headers: {
37772
- [name: string]: unknown;
37773
- };
37774
- content: {
37775
- "application/json": components["schemas"]["Error"];
37776
- };
37777
- };
37778
- /** @description Unauthorized */
37779
- 401: {
37780
- headers: {
37781
- [name: string]: unknown;
37782
- };
37783
- content: {
37784
- "application/json": components["schemas"]["Error"];
37785
- };
37786
- };
37787
- /** @description Forbidden */
37788
- 403: {
37789
- headers: {
37790
- [name: string]: unknown;
37791
- };
37792
- content: {
37793
- "application/json": components["schemas"]["Error"];
37794
- };
37795
- };
37796
- /** @description Not found */
37797
- 404: {
37798
- headers: {
37799
- [name: string]: unknown;
37800
- };
37801
- content: {
37802
- "application/json": components["schemas"]["Error"];
37803
- };
37804
- };
37805
- /** @description Conflict (incl. Idempotency-Key reuse with different body) */
37806
- 409: {
37807
- headers: {
37808
- [name: string]: unknown;
37809
- };
37810
- content: {
37811
- "application/json": components["schemas"]["Error"];
37812
- };
37813
- };
37814
- /** @description Rate limited */
37815
- 429: {
37816
- headers: {
37817
- [name: string]: unknown;
37818
- };
37819
- content: {
37820
- "application/json": components["schemas"]["Error"];
37821
- };
37822
- };
37823
- };
37824
- };
37801
+ /**
37802
+ * Upload a registry document for a vehicle (multipart/form-data)
37803
+ * @description Capped at the configured max size; the file part is required.
37804
+ */
37805
+ post: {
37806
+ parameters: {
37807
+ query?: never;
37808
+ header?: {
37809
+ /** @description Replay-safe retries: resending the SAME key with the SAME body returns the original response (`X-Idempotent-Replay: 1`) instead of creating a second copy — safe to send whenever a response might not have arrived. The same key with a DIFFERENT body answers `409 IDEMPOTENCY_KEY_CONFLICT`; use a fresh key per operation. */
37810
+ "Idempotency-Key"?: string;
37811
+ };
37812
+ path?: never;
37813
+ cookie?: never;
37814
+ };
37815
+ requestBody?: {
37816
+ content: {
37817
+ /**
37818
+ * @example {
37819
+ * "vehicle_id": "e1e1e1e1-0000-4000-8000-000000000001",
37820
+ * "kind": "padron",
37821
+ * "file": "(binary file part)"
37822
+ * }
37823
+ */
37824
+ "multipart/form-data": {
37825
+ /** Format: uuid */
37826
+ vehicle_id: string;
37827
+ /** @enum {string} */
37828
+ kind: "padron" | "cedula" | "contrato" | "certificado_anotaciones" | "factura" | "otro";
37829
+ /** Format: uuid */
37830
+ subject_contact_id?: string;
37831
+ file?: unknown;
37832
+ };
37833
+ };
37834
+ };
37835
+ responses: {
37836
+ /** @description The uploaded attachment */
37837
+ 201: {
37838
+ headers: {
37839
+ [name: string]: unknown;
37840
+ };
37841
+ content: {
37842
+ /**
37843
+ * @example {
37844
+ * "data": {
37845
+ * "id": "f1f1f1f1-0000-4000-8000-000000000001",
37846
+ * "tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
37847
+ * "vehicle_id": "e1e1e1e1-0000-4000-8000-000000000001",
37848
+ * "kind": "padron",
37849
+ * "storage_bucket": "vitrina-registry",
37850
+ * "storage_path": "a1a1a1a1-0000-4000-8000-000000000001/e1e1e1e1-0000-4000-8000-000000000001/padron.png",
37851
+ * "filename": "padron.png",
37852
+ * "mime_type": "image/png",
37853
+ * "byte_size": 812004,
37854
+ * "subject_contact_id": null,
37855
+ * "uploaded_by": "11111111-0000-4000-8000-000000000001",
37856
+ * "uploaded_at": "2026-09-15T18:47:01.784Z",
37857
+ * "created_at": "2026-09-15T18:47:01.784Z"
37858
+ * }
37859
+ * }
37860
+ */
37861
+ "application/json": {
37862
+ data?: unknown;
37863
+ };
37864
+ };
37865
+ };
37866
+ /** @description Validation error */
37867
+ 400: {
37868
+ headers: {
37869
+ [name: string]: unknown;
37870
+ };
37871
+ content: {
37872
+ "application/json": components["schemas"]["Error"];
37873
+ };
37874
+ };
37875
+ /** @description Unauthorized */
37876
+ 401: {
37877
+ headers: {
37878
+ [name: string]: unknown;
37879
+ };
37880
+ content: {
37881
+ "application/json": components["schemas"]["Error"];
37882
+ };
37883
+ };
37884
+ /** @description Forbidden */
37885
+ 403: {
37886
+ headers: {
37887
+ [name: string]: unknown;
37888
+ };
37889
+ content: {
37890
+ "application/json": components["schemas"]["Error"];
37891
+ };
37892
+ };
37893
+ /** @description Not found */
37894
+ 404: {
37895
+ headers: {
37896
+ [name: string]: unknown;
37897
+ };
37898
+ content: {
37899
+ "application/json": components["schemas"]["Error"];
37900
+ };
37901
+ };
37902
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
37903
+ 409: {
37904
+ headers: {
37905
+ [name: string]: unknown;
37906
+ };
37907
+ content: {
37908
+ "application/json": components["schemas"]["Error"];
37909
+ };
37910
+ };
37911
+ /** @description Rate limited */
37912
+ 429: {
37913
+ headers: {
37914
+ [name: string]: unknown;
37915
+ };
37916
+ content: {
37917
+ "application/json": components["schemas"]["Error"];
37918
+ };
37919
+ };
37920
+ };
37921
+ };
37922
+ delete?: never;
37923
+ options?: never;
37924
+ head?: never;
37925
+ patch?: never;
37926
+ trace?: never;
37927
+ };
37928
+ "/vehicle-attachments/{id}/content": {
37929
+ parameters: {
37930
+ query?: never;
37931
+ header?: never;
37932
+ path?: never;
37933
+ cookie?: never;
37934
+ };
37935
+ /**
37936
+ * Download the stored bytes of one attachment
37937
+ * @description Streams the raw file (not a JSON envelope) with `Cache-Control: private, no-store` and a locked-down CSP. Audited on every read.
37938
+ */
37939
+ get: {
37940
+ parameters: {
37941
+ query?: never;
37942
+ header?: never;
37943
+ path: {
37944
+ id: string;
37945
+ };
37946
+ cookie?: never;
37947
+ };
37948
+ requestBody?: never;
37949
+ responses: {
37950
+ /** @description The stored file bytes */
37951
+ 200: {
37952
+ headers: {
37953
+ [name: string]: unknown;
37954
+ };
37955
+ content: {
37956
+ "application/octet-stream": string;
37957
+ };
37958
+ };
37959
+ /** @description Validation error */
37960
+ 400: {
37961
+ headers: {
37962
+ [name: string]: unknown;
37963
+ };
37964
+ content: {
37965
+ "application/json": components["schemas"]["Error"];
37966
+ };
37967
+ };
37968
+ /** @description Unauthorized */
37969
+ 401: {
37970
+ headers: {
37971
+ [name: string]: unknown;
37972
+ };
37973
+ content: {
37974
+ "application/json": components["schemas"]["Error"];
37975
+ };
37976
+ };
37977
+ /** @description Forbidden */
37978
+ 403: {
37979
+ headers: {
37980
+ [name: string]: unknown;
37981
+ };
37982
+ content: {
37983
+ "application/json": components["schemas"]["Error"];
37984
+ };
37985
+ };
37986
+ /** @description Not found */
37987
+ 404: {
37988
+ headers: {
37989
+ [name: string]: unknown;
37990
+ };
37991
+ content: {
37992
+ "application/json": components["schemas"]["Error"];
37993
+ };
37994
+ };
37995
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
37996
+ 409: {
37997
+ headers: {
37998
+ [name: string]: unknown;
37999
+ };
38000
+ content: {
38001
+ "application/json": components["schemas"]["Error"];
38002
+ };
38003
+ };
38004
+ /** @description Rate limited */
38005
+ 429: {
38006
+ headers: {
38007
+ [name: string]: unknown;
38008
+ };
38009
+ content: {
38010
+ "application/json": components["schemas"]["Error"];
38011
+ };
38012
+ };
38013
+ };
38014
+ };
38015
+ put?: never;
38016
+ post?: never;
38017
+ delete?: never;
38018
+ options?: never;
38019
+ head?: never;
38020
+ patch?: never;
38021
+ trace?: never;
38022
+ };
38023
+ "/vehicle-attachments/{id}": {
38024
+ parameters: {
38025
+ query?: never;
38026
+ header?: never;
38027
+ path?: never;
38028
+ cookie?: never;
38029
+ };
38030
+ get?: never;
38031
+ put?: never;
38032
+ post?: never;
38033
+ /**
38034
+ * Remove a vehicle attachment
38035
+ * @description Erases the storage object first, then the row.
38036
+ */
38037
+ delete: {
38038
+ parameters: {
38039
+ query?: never;
38040
+ header?: never;
38041
+ path: {
38042
+ id: string;
38043
+ };
38044
+ cookie?: never;
38045
+ };
38046
+ requestBody?: never;
38047
+ responses: {
38048
+ /** @description No content */
38049
+ 204: {
38050
+ headers: {
38051
+ [name: string]: unknown;
38052
+ };
38053
+ content?: never;
38054
+ };
38055
+ /** @description Validation error */
38056
+ 400: {
38057
+ headers: {
38058
+ [name: string]: unknown;
38059
+ };
38060
+ content: {
38061
+ "application/json": components["schemas"]["Error"];
38062
+ };
38063
+ };
38064
+ /** @description Unauthorized */
38065
+ 401: {
38066
+ headers: {
38067
+ [name: string]: unknown;
38068
+ };
38069
+ content: {
38070
+ "application/json": components["schemas"]["Error"];
38071
+ };
38072
+ };
38073
+ /** @description Forbidden */
38074
+ 403: {
38075
+ headers: {
38076
+ [name: string]: unknown;
38077
+ };
38078
+ content: {
38079
+ "application/json": components["schemas"]["Error"];
38080
+ };
38081
+ };
38082
+ /** @description Not found */
38083
+ 404: {
38084
+ headers: {
38085
+ [name: string]: unknown;
38086
+ };
38087
+ content: {
38088
+ "application/json": components["schemas"]["Error"];
38089
+ };
38090
+ };
38091
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
38092
+ 409: {
38093
+ headers: {
38094
+ [name: string]: unknown;
38095
+ };
38096
+ content: {
38097
+ "application/json": components["schemas"]["Error"];
38098
+ };
38099
+ };
38100
+ /** @description Rate limited */
38101
+ 429: {
38102
+ headers: {
38103
+ [name: string]: unknown;
38104
+ };
38105
+ content: {
38106
+ "application/json": components["schemas"]["Error"];
38107
+ };
38108
+ };
38109
+ };
38110
+ };
38111
+ options?: never;
38112
+ head?: never;
38113
+ patch?: never;
38114
+ trace?: never;
38115
+ };
38116
+ "/margin/export": {
38117
+ parameters: {
38118
+ query?: never;
38119
+ header?: never;
38120
+ path?: never;
38121
+ cookie?: never;
38122
+ };
38123
+ /**
38124
+ * Export the deals and their margins (xlsx / csv)
38125
+ * @description One row per live nota de venta in the window, with every settlement column: folio, date, status, patente, vehicle, regime, seller, buyer, buyer origin channel, leads, days in stock, published price, discount (amount and %), sale price, add-ons, revenue, purchase cost, gross margin, additional costs, commissions, net margin and `Completo`. A figure that is not recorded or not computable is an EMPTY cell, never 0.
38126
+ *
38127
+ * Pass `period` (`YYYY-MM`, the Margen screen’s month) OR `from`/`to` (`YYYY-MM-DD`, inclusive, on the dealership’s calendar) — one of the two is required (400 otherwise), never both. `format` is `xlsx` (default) or `csv`. **413** over 2000 deals. Requires `dealership_economics:read`.
38128
+ */
38129
+ get: {
38130
+ parameters: {
38131
+ query?: {
38132
+ period?: components["schemas"]["OverheadPeriod"];
38133
+ from?: string;
38134
+ to?: string;
38135
+ /** @description `xlsx` (a workbook, typed cells) or `csv` (UTF-8, RFC 4180). */
38136
+ format?: "xlsx" | "csv";
38137
+ };
38138
+ header?: never;
38139
+ path?: never;
38140
+ cookie?: never;
38141
+ };
38142
+ requestBody?: never;
38143
+ responses: {
38144
+ /** @description The planilla, as an attachment */
38145
+ 200: {
38146
+ headers: {
38147
+ [name: string]: unknown;
38148
+ };
38149
+ content: {
38150
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string;
38151
+ "text/csv": string;
38152
+ };
38153
+ };
38154
+ /** @description Validation error */
38155
+ 400: {
38156
+ headers: {
38157
+ [name: string]: unknown;
38158
+ };
38159
+ content: {
38160
+ "application/json": components["schemas"]["Error"];
38161
+ };
38162
+ };
38163
+ /** @description Unauthorized */
38164
+ 401: {
38165
+ headers: {
38166
+ [name: string]: unknown;
38167
+ };
38168
+ content: {
38169
+ "application/json": components["schemas"]["Error"];
38170
+ };
38171
+ };
38172
+ /** @description Forbidden */
38173
+ 403: {
38174
+ headers: {
38175
+ [name: string]: unknown;
38176
+ };
38177
+ content: {
38178
+ "application/json": components["schemas"]["Error"];
38179
+ };
38180
+ };
38181
+ /** @description Not found */
38182
+ 404: {
38183
+ headers: {
38184
+ [name: string]: unknown;
38185
+ };
38186
+ content: {
38187
+ "application/json": components["schemas"]["Error"];
38188
+ };
38189
+ };
38190
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
38191
+ 409: {
38192
+ headers: {
38193
+ [name: string]: unknown;
38194
+ };
38195
+ content: {
38196
+ "application/json": components["schemas"]["Error"];
38197
+ };
38198
+ };
38199
+ /** @description Rate limited */
38200
+ 429: {
38201
+ headers: {
38202
+ [name: string]: unknown;
38203
+ };
38204
+ content: {
38205
+ "application/json": components["schemas"]["Error"];
38206
+ };
38207
+ };
38208
+ };
38209
+ };
38210
+ put?: never;
38211
+ post?: never;
38212
+ delete?: never;
38213
+ options?: never;
38214
+ head?: never;
38215
+ patch?: never;
38216
+ trace?: never;
38217
+ };
38218
+ "/vehicles/{id}/deal-settlement": {
38219
+ parameters: {
38220
+ query?: never;
38221
+ header?: never;
38222
+ path?: never;
38223
+ cookie?: never;
38224
+ };
38225
+ /**
38226
+ * The deal settlement (liquidación del negocio) of one unit
38227
+ * @description Everything about one car’s deal on one read: the published price, the discount (amount and %), the sale price, the purchase or consignment basis, the cost lines grouped by category with who absorbs each (`automotora` / `dueno` / `cliente`), the margin (the platform’s one margin definition, embedded whole with `complete` and `gaps`), the commission of each salesperson, the seller, the buyer and the buyer’s origin channel (the sale note’s lead first, then the buyer’s first conversation, then the contact’s recorded origin), how many people asked about the unit, days in stock (entry → approval) and days to sell (first publication → sale).
38228
+ *
38229
+ * `state` is `sold` (the newest live nota de venta is approved), `pending_approval` (issued, not yet approved) or `preview` (no live nota de venta: the settlement at the published price, with no discount, add-ons or commissions, flagged by a `preview` gap). A figure that is not recorded is `null`, never 0. Requires `dealership_economics:read`.
38230
+ */
38231
+ get: {
38232
+ parameters: {
38233
+ query?: never;
38234
+ header?: never;
38235
+ path: {
38236
+ id: string;
38237
+ };
38238
+ cookie?: never;
38239
+ };
38240
+ requestBody?: never;
38241
+ responses: {
38242
+ /** @description The deal settlement */
38243
+ 200: {
38244
+ headers: {
38245
+ [name: string]: unknown;
38246
+ };
38247
+ content: {
38248
+ /**
38249
+ * @example {
38250
+ * "data": {
38251
+ * "vehicle_id": "e5e5e5e5-0000-4000-8000-000000000001",
38252
+ * "as_of": "2026-09-28T15:00:00.000Z",
38253
+ * "state": "sold",
38254
+ * "vehicle": {
38255
+ * "make": "Toyota",
38256
+ * "model": "RAV4",
38257
+ * "version": "2.0 XLE CVT",
38258
+ * "year": 2021,
38259
+ * "registration_number": "PQRS-12",
38260
+ * "vin": "JTMW43FV0MD000001",
38261
+ * "color": "Gris plata",
38262
+ * "odometer_value": 48300,
38263
+ * "odometer_unit": "km",
38264
+ * "tenencia": "propio",
38265
+ * "status": "vendido",
38266
+ * "price_clp": 12490000
38267
+ * },
38268
+ * "sale_note": {
38269
+ * "id": "d4d4d4d4-0000-4000-8000-000000000001",
38270
+ * "display_id": "V-118",
38271
+ * "status": "approved",
38272
+ * "issued_at": "2026-09-19T13:00:00.000Z",
38273
+ * "approved_at": "2026-09-20T10:30:00.000Z",
38274
+ * "seller_of_record": "automotora"
38275
+ * },
38276
+ * "pricing": {
38277
+ * "list_price_clp": 12490000,
38278
+ * "sale_price_clp": 11900000,
38279
+ * "tax_clp": 0,
38280
+ * "total_clp": 11900000,
38281
+ * "discount_clp": 590000,
38282
+ * "discount_pct": 4.7,
38283
+ * "add_on_charges_clp": 189900
38284
+ * },
38285
+ * "basis": {
38286
+ * "regime": "propia",
38287
+ * "acquisition_net_clp": 9800000,
38288
+ * "consignment": null,
38289
+ * "settlement": null
38290
+ * },
38291
+ * "costs": {
38292
+ * "categories": [
38293
+ * {
38294
+ * "category_id": "9a9a9a9a-0000-4000-8000-000000000001",
38295
+ * "name": "Mecánica",
38296
+ * "kind": "expense",
38297
+ * "total_clp": 420000,
38298
+ * "by_party": {
38299
+ * "automotora": 420000,
38300
+ * "dueno": 0,
38301
+ * "cliente": 0
38302
+ * },
38303
+ * "line_count": 2
38304
+ * },
38305
+ * {
38306
+ * "category_id": "9a9a9a9a-0000-4000-8000-000000000002",
38307
+ * "name": "Detailing",
38308
+ * "kind": "expense",
38309
+ * "total_clp": 315000,
38310
+ * "by_party": {
38311
+ * "automotora": 220000,
38312
+ * "dueno": 0,
38313
+ * "cliente": 95000
38314
+ * },
38315
+ * "line_count": 2
38316
+ * },
38317
+ * {
38318
+ * "category_id": "9a9a9a9a-0000-4000-8000-000000000003",
38319
+ * "name": "Comisión de crédito",
38320
+ * "kind": "income",
38321
+ * "total_clp": 150000,
38322
+ * "by_party": {
38323
+ * "automotora": 150000,
38324
+ * "dueno": 0,
38325
+ * "cliente": 0
38326
+ * },
38327
+ * "line_count": 1
38328
+ * }
38329
+ * ],
38330
+ * "by_party": {
38331
+ * "automotora": {
38332
+ * "acquisition_clp": 9800000,
38333
+ * "expense_clp": 640000,
38334
+ * "income_clp": 150000,
38335
+ * "total_clp": 10290000
38336
+ * },
38337
+ * "dueno": {
38338
+ * "acquisition_clp": 0,
38339
+ * "expense_clp": 0,
38340
+ * "income_clp": 0,
38341
+ * "total_clp": 0
38342
+ * },
38343
+ * "cliente": {
38344
+ * "acquisition_clp": 0,
38345
+ * "expense_clp": 95000,
38346
+ * "income_clp": 0,
38347
+ * "total_clp": 95000
38348
+ * }
38349
+ * },
38350
+ * "complete": true
38351
+ * },
38352
+ * "margin": {
38353
+ * "vehicle_id": "e5e5e5e5-0000-4000-8000-000000000001",
38354
+ * "sale_note_id": "d4d4d4d4-0000-4000-8000-000000000001",
38355
+ * "display_id": "V-118",
38356
+ * "salesperson_id": "a1a1a1a1-0000-4000-8000-000000000001",
38357
+ * "issued_at": "2026-09-19T13:00:00.000Z",
38358
+ * "period": "2026-09",
38359
+ * "regime": "propia",
38360
+ * "ingresos_clp": 12089900,
38361
+ * "revenue_terms": {
38362
+ * "precio_venta_clp": 11900000,
38363
+ * "add_on_charges_clp": 189900,
38364
+ * "dealer_take_clp": null
38365
+ * },
38366
+ * "costo_venta_clp": 9800000,
38367
+ * "margen_bruto_clp": 2289900,
38368
+ * "deductions": {
38369
+ * "comisiones_vendedores_clp": 229000,
38370
+ * "gastos_adicionales_clp": 579900,
38371
+ * "gastos_unidad_clp": 640000,
38372
+ * "ingresos_unidad_clp": 150000,
38373
+ * "desembolsos_add_on_clp": 89900,
38374
+ * "gastos_fijos_clp": null
38375
+ * },
38376
+ * "margen_neto_clp": 1481000,
38377
+ * "settlement": null,
38378
+ * "cost_rollup": {
38379
+ * "acquisition_net_clp": 9800000,
38380
+ * "expense_total_clp": 735000,
38381
+ * "income_total_clp": 150000,
38382
+ * "total_cost_clp": 10385000,
38383
+ * "dealership_cost_clp": 10290000,
38384
+ * "by_party": {
38385
+ * "automotora": {
38386
+ * "acquisition_clp": 9800000,
38387
+ * "expense_clp": 640000,
38388
+ * "income_clp": 150000,
38389
+ * "total_clp": 10290000
38390
+ * },
38391
+ * "dueno": {
38392
+ * "acquisition_clp": 0,
38393
+ * "expense_clp": 0,
38394
+ * "income_clp": 0,
38395
+ * "total_clp": 0
38396
+ * },
38397
+ * "cliente": {
38398
+ * "acquisition_clp": 0,
38399
+ * "expense_clp": 95000,
38400
+ * "income_clp": 0,
38401
+ * "total_clp": 95000
38402
+ * }
38403
+ * },
38404
+ * "entry_count": 5,
38405
+ * "complete": true,
38406
+ * "gaps": []
38407
+ * },
38408
+ * "complete": true,
38409
+ * "gaps": []
38410
+ * },
38411
+ * "commissions": [
38412
+ * {
38413
+ * "user_id": "a1a1a1a1-0000-4000-8000-000000000001",
38414
+ * "name": "Carla Rojas",
38415
+ * "role": "closer",
38416
+ * "commission_rate_bp": 800,
38417
+ * "commission_basis_clp": 2289900,
38418
+ * "commission_clp": 183192
38419
+ * },
38420
+ * {
38421
+ * "user_id": "a1a1a1a1-0000-4000-8000-000000000002",
38422
+ * "name": "Diego Muñoz",
38423
+ * "role": "collaborator",
38424
+ * "commission_rate_bp": 200,
38425
+ * "commission_basis_clp": 2289900,
38426
+ * "commission_clp": 45798
38427
+ * }
38428
+ * ],
38429
+ * "salesperson": {
38430
+ * "user_id": "a1a1a1a1-0000-4000-8000-000000000001",
38431
+ * "name": "Carla Rojas"
38432
+ * },
38433
+ * "buyer": {
38434
+ * "contact_id": "c3c3c3c3-0000-4000-8000-000000000001",
38435
+ * "name": "Ana Pérez Soto"
38436
+ * },
38437
+ * "origin": {
38438
+ * "source": "mercadolibre",
38439
+ * "channel": "whatsapp",
38440
+ * "label": "Mercado Libre",
38441
+ * "via": "lead",
38442
+ * "lead_id": "b2b2b2b2-0000-4000-8000-000000000001",
38443
+ * "conversation_id": "f6f6f6f6-0000-4000-8000-000000000001"
38444
+ * },
38445
+ * "interest": {
38446
+ * "distinct_contacts": 14,
38447
+ * "named_leads": 16,
38448
+ * "anonymous_interest": 5,
38449
+ * "first_contact_at": "2026-08-02T14:10:00.000Z",
38450
+ * "last_contact_at": "2026-09-18T21:45:00.000Z"
38451
+ * },
38452
+ * "timeline": {
38453
+ * "entered_stock_at": "2026-07-24T12:00:00.000Z",
38454
+ * "first_published_at": "2026-07-26T15:00:00.000Z",
38455
+ * "sold_at": "2026-09-19T13:00:00.000Z",
38456
+ * "approved_at": "2026-09-20T10:30:00.000Z",
38457
+ * "days_in_stock": 58,
38458
+ * "days_to_sell": 55
38459
+ * },
38460
+ * "complete": true,
38461
+ * "gaps": []
38462
+ * }
38463
+ * }
38464
+ */
38465
+ "application/json": {
38466
+ data?: unknown;
38467
+ meta?: {
38468
+ [key: string]: unknown;
38469
+ };
38470
+ };
38471
+ };
38472
+ };
38473
+ /** @description Validation error */
38474
+ 400: {
38475
+ headers: {
38476
+ [name: string]: unknown;
38477
+ };
38478
+ content: {
38479
+ "application/json": components["schemas"]["Error"];
38480
+ };
38481
+ };
38482
+ /** @description Unauthorized */
38483
+ 401: {
38484
+ headers: {
38485
+ [name: string]: unknown;
38486
+ };
38487
+ content: {
38488
+ "application/json": components["schemas"]["Error"];
38489
+ };
38490
+ };
38491
+ /** @description Forbidden */
38492
+ 403: {
38493
+ headers: {
38494
+ [name: string]: unknown;
38495
+ };
38496
+ content: {
38497
+ "application/json": components["schemas"]["Error"];
38498
+ };
38499
+ };
38500
+ /** @description Not found */
38501
+ 404: {
38502
+ headers: {
38503
+ [name: string]: unknown;
38504
+ };
38505
+ content: {
38506
+ "application/json": components["schemas"]["Error"];
38507
+ };
38508
+ };
38509
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
38510
+ 409: {
38511
+ headers: {
38512
+ [name: string]: unknown;
38513
+ };
38514
+ content: {
38515
+ "application/json": components["schemas"]["Error"];
38516
+ };
38517
+ };
38518
+ /** @description Rate limited */
38519
+ 429: {
38520
+ headers: {
38521
+ [name: string]: unknown;
38522
+ };
38523
+ content: {
38524
+ "application/json": components["schemas"]["Error"];
38525
+ };
38526
+ };
38527
+ };
38528
+ };
38529
+ put?: never;
38530
+ post?: never;
38531
+ delete?: never;
38532
+ options?: never;
38533
+ head?: never;
38534
+ patch?: never;
38535
+ trace?: never;
38536
+ };
38537
+ "/vehicles/{id}/deal-settlement/pdf": {
38538
+ parameters: {
38539
+ query?: never;
38540
+ header?: never;
38541
+ path?: never;
38542
+ cookie?: never;
38543
+ };
38544
+ /**
38545
+ * Print the deal settlement (PDF)
38546
+ * @description The liquidación del negocio as a PDF (`application/pdf`, served `inline`): the workspace’s default `deal_settlement` template — or `template_id` — filled with the deal’s facts, followed by a fixed table of the result walk, the costs by category and who absorbs them, and the commissions. With no live template it prints the standard text. A missing fact prints «no registrado»; nothing is refused. A preview carries a «VISTA PREVIA» banner. `X-Template-Version` names the prose used. Requires `dealership_economics:read`.
38547
+ */
38548
+ get: {
38549
+ parameters: {
38550
+ query?: {
38551
+ template_id?: string;
38552
+ };
38553
+ header?: never;
38554
+ path: {
38555
+ id: string;
38556
+ };
38557
+ cookie?: never;
38558
+ };
38559
+ requestBody?: never;
38560
+ responses: {
38561
+ /** @description The printable deal settlement */
38562
+ 200: {
38563
+ headers: {
38564
+ [name: string]: unknown;
38565
+ };
38566
+ content: {
38567
+ "application/pdf": string;
38568
+ };
38569
+ };
38570
+ /** @description Validation error */
38571
+ 400: {
38572
+ headers: {
38573
+ [name: string]: unknown;
38574
+ };
38575
+ content: {
38576
+ "application/json": components["schemas"]["Error"];
38577
+ };
38578
+ };
38579
+ /** @description Unauthorized */
38580
+ 401: {
38581
+ headers: {
38582
+ [name: string]: unknown;
38583
+ };
38584
+ content: {
38585
+ "application/json": components["schemas"]["Error"];
38586
+ };
38587
+ };
38588
+ /** @description Forbidden */
38589
+ 403: {
38590
+ headers: {
38591
+ [name: string]: unknown;
38592
+ };
38593
+ content: {
38594
+ "application/json": components["schemas"]["Error"];
38595
+ };
38596
+ };
38597
+ /** @description Not found */
38598
+ 404: {
38599
+ headers: {
38600
+ [name: string]: unknown;
38601
+ };
38602
+ content: {
38603
+ "application/json": components["schemas"]["Error"];
38604
+ };
38605
+ };
38606
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
38607
+ 409: {
38608
+ headers: {
38609
+ [name: string]: unknown;
38610
+ };
38611
+ content: {
38612
+ "application/json": components["schemas"]["Error"];
38613
+ };
38614
+ };
38615
+ /** @description Rate limited */
38616
+ 429: {
38617
+ headers: {
38618
+ [name: string]: unknown;
38619
+ };
38620
+ content: {
38621
+ "application/json": components["schemas"]["Error"];
38622
+ };
38623
+ };
38624
+ };
38625
+ };
38626
+ put?: never;
38627
+ post?: never;
38628
+ delete?: never;
38629
+ options?: never;
38630
+ head?: never;
38631
+ patch?: never;
38632
+ trace?: never;
38633
+ };
38634
+ "/vehicles/{id}/deal-settlement/export": {
38635
+ parameters: {
38636
+ query?: never;
38637
+ header?: never;
38638
+ path?: never;
38639
+ cookie?: never;
38640
+ };
38641
+ /**
38642
+ * Export the deal settlement (xlsx / csv)
38643
+ * @description The same settlement as a planilla. `xlsx` (default) carries three sheets — **Resumen** (the result walk and the deal’s facts), **Costos** (by category and party) and **Comisiones** (per salesperson); `csv` carries the Resumen. Requires `dealership_economics:read`.
38644
+ */
38645
+ get: {
38646
+ parameters: {
38647
+ query?: {
38648
+ /** @description `xlsx` (a workbook, typed cells) or `csv` (UTF-8, RFC 4180). */
38649
+ format?: "xlsx" | "csv";
38650
+ };
38651
+ header?: never;
38652
+ path: {
38653
+ id: string;
38654
+ };
38655
+ cookie?: never;
38656
+ };
38657
+ requestBody?: never;
38658
+ responses: {
38659
+ /** @description The planilla, as an attachment */
38660
+ 200: {
38661
+ headers: {
38662
+ [name: string]: unknown;
38663
+ };
38664
+ content: {
38665
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string;
38666
+ "text/csv": string;
38667
+ };
38668
+ };
38669
+ /** @description Validation error */
38670
+ 400: {
38671
+ headers: {
38672
+ [name: string]: unknown;
38673
+ };
38674
+ content: {
38675
+ "application/json": components["schemas"]["Error"];
38676
+ };
38677
+ };
38678
+ /** @description Unauthorized */
38679
+ 401: {
38680
+ headers: {
38681
+ [name: string]: unknown;
38682
+ };
38683
+ content: {
38684
+ "application/json": components["schemas"]["Error"];
38685
+ };
38686
+ };
38687
+ /** @description Forbidden */
38688
+ 403: {
38689
+ headers: {
38690
+ [name: string]: unknown;
38691
+ };
38692
+ content: {
38693
+ "application/json": components["schemas"]["Error"];
38694
+ };
38695
+ };
38696
+ /** @description Not found */
38697
+ 404: {
38698
+ headers: {
38699
+ [name: string]: unknown;
38700
+ };
38701
+ content: {
38702
+ "application/json": components["schemas"]["Error"];
38703
+ };
38704
+ };
38705
+ /** @description Conflict (incl. Idempotency-Key reuse with different body) */
38706
+ 409: {
38707
+ headers: {
38708
+ [name: string]: unknown;
38709
+ };
38710
+ content: {
38711
+ "application/json": components["schemas"]["Error"];
38712
+ };
38713
+ };
38714
+ /** @description Rate limited */
38715
+ 429: {
38716
+ headers: {
38717
+ [name: string]: unknown;
38718
+ };
38719
+ content: {
38720
+ "application/json": components["schemas"]["Error"];
38721
+ };
38722
+ };
38723
+ };
38724
+ };
38725
+ put?: never;
38726
+ post?: never;
37825
38727
  delete?: never;
37826
38728
  options?: never;
37827
38729
  head?: never;
37828
38730
  patch?: never;
37829
38731
  trace?: never;
37830
38732
  };
37831
- "/vehicle-attachments/{id}/content": {
38733
+ "/sale-notes/export": {
37832
38734
  parameters: {
37833
38735
  query?: never;
37834
38736
  header?: never;
@@ -37836,27 +38738,32 @@ interface paths {
37836
38738
  cookie?: never;
37837
38739
  };
37838
38740
  /**
37839
- * Download the stored bytes of one attachment
37840
- * @description Streams the raw file (not a JSON envelope) with `Cache-Control: private, no-store` and a locked-down CSP. Audited on every read.
38741
+ * Export the notas de venta (xlsx / csv)
38742
+ * @description The Ventas list as a planilla: one row per nota de venta issued in the window — folio, issue and approval dates, status, patente, vehicle, regime, seller, buyer, the buyer’s origin channel, the published price, the discount (amount and %), the sale price, IVA, tax treatment and the void reason. No cost figure (that is `GET /margin/export`). `from`/`to` are inclusive `YYYY-MM-DD` days on the dealership’s calendar, `status` narrows to `issued` | `approved` | `voided`; all optional. `format` is `xlsx` (default) or `csv`. **413** over 2000 documents. Requires `sale_notes:read`.
37841
38743
  */
37842
38744
  get: {
37843
38745
  parameters: {
37844
- query?: never;
37845
- header?: never;
37846
- path: {
37847
- id: string;
38746
+ query?: {
38747
+ from?: string;
38748
+ to?: string;
38749
+ status?: "issued" | "approved" | "voided";
38750
+ /** @description `xlsx` (a workbook, typed cells) or `csv` (UTF-8, RFC 4180). */
38751
+ format?: "xlsx" | "csv";
37848
38752
  };
38753
+ header?: never;
38754
+ path?: never;
37849
38755
  cookie?: never;
37850
38756
  };
37851
38757
  requestBody?: never;
37852
38758
  responses: {
37853
- /** @description The stored file bytes */
38759
+ /** @description The planilla, as an attachment */
37854
38760
  200: {
37855
38761
  headers: {
37856
38762
  [name: string]: unknown;
37857
38763
  };
37858
38764
  content: {
37859
- "application/octet-stream": string;
38765
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string;
38766
+ "text/csv": string;
37860
38767
  };
37861
38768
  };
37862
38769
  /** @description Validation error */
@@ -37923,99 +38830,6 @@ interface paths {
37923
38830
  patch?: never;
37924
38831
  trace?: never;
37925
38832
  };
37926
- "/vehicle-attachments/{id}": {
37927
- parameters: {
37928
- query?: never;
37929
- header?: never;
37930
- path?: never;
37931
- cookie?: never;
37932
- };
37933
- get?: never;
37934
- put?: never;
37935
- post?: never;
37936
- /**
37937
- * Remove a vehicle attachment
37938
- * @description Erases the storage object first, then the row.
37939
- */
37940
- delete: {
37941
- parameters: {
37942
- query?: never;
37943
- header?: never;
37944
- path: {
37945
- id: string;
37946
- };
37947
- cookie?: never;
37948
- };
37949
- requestBody?: never;
37950
- responses: {
37951
- /** @description No content */
37952
- 204: {
37953
- headers: {
37954
- [name: string]: unknown;
37955
- };
37956
- content?: never;
37957
- };
37958
- /** @description Validation error */
37959
- 400: {
37960
- headers: {
37961
- [name: string]: unknown;
37962
- };
37963
- content: {
37964
- "application/json": components["schemas"]["Error"];
37965
- };
37966
- };
37967
- /** @description Unauthorized */
37968
- 401: {
37969
- headers: {
37970
- [name: string]: unknown;
37971
- };
37972
- content: {
37973
- "application/json": components["schemas"]["Error"];
37974
- };
37975
- };
37976
- /** @description Forbidden */
37977
- 403: {
37978
- headers: {
37979
- [name: string]: unknown;
37980
- };
37981
- content: {
37982
- "application/json": components["schemas"]["Error"];
37983
- };
37984
- };
37985
- /** @description Not found */
37986
- 404: {
37987
- headers: {
37988
- [name: string]: unknown;
37989
- };
37990
- content: {
37991
- "application/json": components["schemas"]["Error"];
37992
- };
37993
- };
37994
- /** @description Conflict (incl. Idempotency-Key reuse with different body) */
37995
- 409: {
37996
- headers: {
37997
- [name: string]: unknown;
37998
- };
37999
- content: {
38000
- "application/json": components["schemas"]["Error"];
38001
- };
38002
- };
38003
- /** @description Rate limited */
38004
- 429: {
38005
- headers: {
38006
- [name: string]: unknown;
38007
- };
38008
- content: {
38009
- "application/json": components["schemas"]["Error"];
38010
- };
38011
- };
38012
- };
38013
- };
38014
- options?: never;
38015
- head?: never;
38016
- patch?: never;
38017
- trace?: never;
38018
- };
38019
38833
  "/ai-agent-graphs": {
38020
38834
  parameters: {
38021
38835
  query?: never;
@@ -39887,7 +40701,7 @@ interface paths {
39887
40701
  };
39888
40702
  requestBody?: never;
39889
40703
  responses: {
39890
- /** @description The workspace’s rules, evaluation order */
40704
+ /** @description The workspace’s rules, evaluation order — vendedor responsable del vehículo, then a consignación intent rule, then an ordinary portal-scoped rule */
39891
40705
  200: {
39892
40706
  headers: {
39893
40707
  [name: string]: unknown;
@@ -39897,17 +40711,56 @@ interface paths {
39897
40711
  * @example {
39898
40712
  * "data": [
39899
40713
  * {
40714
+ * "id": "5c6f2a10-9b2e-4f7a-8b8b-1a2b3c4d5e6f",
40715
+ * "tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
40716
+ * "name": "Vendedor responsable del vehículo",
40717
+ * "enabled": true,
40718
+ * "priority": 0,
40719
+ * "match_sources": [],
40720
+ * "match_channels": [],
40721
+ * "match_lead_intents": [],
40722
+ * "team_id": null,
40723
+ * "assignee_user_ids": null,
40724
+ * "target_vehicle_owner": true,
40725
+ * "assignment_mode": "auto_round_robin",
40726
+ * "is_portal_default": false,
40727
+ * "created_at": "2026-01-10T13:00:00.000Z",
40728
+ * "updated_at": "2026-09-10T13:00:00.000Z"
40729
+ * },
40730
+ * {
40731
+ * "id": "6d7f3b21-0c3f-4a8b-9c9c-2b3c4d5e6f7a",
40732
+ * "tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
40733
+ * "name": "Consignación → equipo Consignaciones",
40734
+ * "enabled": true,
40735
+ * "priority": 1,
40736
+ * "match_sources": [],
40737
+ * "match_channels": [],
40738
+ * "match_lead_intents": [
40739
+ * "sell",
40740
+ * "trade_in"
40741
+ * ],
40742
+ * "team_id": "cccccccc-0000-4000-8000-000000000001",
40743
+ * "assignee_user_ids": null,
40744
+ * "target_vehicle_owner": false,
40745
+ * "assignment_mode": "auto_round_robin",
40746
+ * "is_portal_default": false,
40747
+ * "created_at": "2026-01-10T13:00:00.000Z",
40748
+ * "updated_at": "2026-09-10T13:00:00.000Z"
40749
+ * },
40750
+ * {
39900
40751
  * "id": "d5d5d5d5-0000-4000-8000-000000000001",
39901
40752
  * "tenant_id": "a1a1a1a1-0000-4000-8000-000000000001",
39902
40753
  * "name": "Mercado Libre → equipo Providencia",
39903
40754
  * "enabled": true,
39904
- * "priority": 0,
40755
+ * "priority": 2,
39905
40756
  * "match_sources": [
39906
40757
  * "mercadolibre"
39907
40758
  * ],
39908
40759
  * "match_channels": [],
40760
+ * "match_lead_intents": [],
39909
40761
  * "team_id": "cccccccc-0000-4000-8000-000000000001",
39910
40762
  * "assignee_user_ids": null,
40763
+ * "target_vehicle_owner": false,
39911
40764
  * "assignment_mode": "auto_round_robin",
39912
40765
  * "is_portal_default": false,
39913
40766
  * "created_at": "2026-01-10T13:00:00.000Z",
@@ -39915,7 +40768,7 @@ interface paths {
39915
40768
  * }
39916
40769
  * ],
39917
40770
  * "meta": {
39918
- * "total": 1
40771
+ * "total": 3
39919
40772
  * }
39920
40773
  * }
39921
40774
  */
@@ -39986,7 +40839,7 @@ interface paths {
39986
40839
  put?: never;
39987
40840
  /**
39988
40841
  * Create an assignment rule
39989
- * @description Exactly one destination: `team_id` OR a non-empty `assignee_user_ids`. Empty/absent `match_sources` / `match_channels` are wildcards. A client-supplied `priority` is rejected — new rules append LAST; move them with `PUT /assignment-rules/order`. `assignment_mode: "manual"` is a 400 (channel-only mode).
40842
+ * @description Exactly one destination: `team_id`, a non-empty `assignee_user_ids`, OR `target_vehicle_owner: true` (combining it with either of the other two is a 400 — a rule has exactly one destination kind). Empty/absent `match_sources` / `match_channels` / `match_lead_intents` are wildcards (`match_lead_intents` ∈ buy | sell | financing | trade_in, the linked lead's `intent`). A client-supplied `priority` is rejected — new rules append LAST; move them with `PUT /assignment-rules/order`. `assignment_mode: "manual"` is a 400 (channel-only mode); `auto_round_robin_online` on a `target_vehicle_owner` rule falls through to the next rule when the named person is offline, rather than leaving the thread unassigned.
39990
40843
  */
39991
40844
  post: {
39992
40845
  parameters: {
@@ -40014,9 +40867,11 @@ interface paths {
40014
40867
  enabled?: boolean;
40015
40868
  match_sources?: ("conversation" | "marketplace" | "manual" | "import" | "ai_agent" | "chileautos" | "yapo" | "mercadolibre" | "website")[] | null;
40016
40869
  match_channels?: string[] | null;
40870
+ match_lead_intents?: ("buy" | "sell" | "financing" | "trade_in")[] | null;
40017
40871
  /** Format: uuid */
40018
40872
  team_id?: string | null;
40019
40873
  assignee_user_ids?: string[] | null;
40874
+ target_vehicle_owner?: boolean;
40020
40875
  /** @enum {string|null} */
40021
40876
  assignment_mode?: "auto_round_robin" | "auto_round_robin_online" | "auto_least_busy" | null;
40022
40877
  };
@@ -40041,8 +40896,10 @@ interface paths {
40041
40896
  * "mercadolibre"
40042
40897
  * ],
40043
40898
  * "match_channels": [],
40899
+ * "match_lead_intents": [],
40044
40900
  * "team_id": "cccccccc-0000-4000-8000-000000000001",
40045
40901
  * "assignee_user_ids": null,
40902
+ * "target_vehicle_owner": false,
40046
40903
  * "assignment_mode": "auto_round_robin",
40047
40904
  * "is_portal_default": false,
40048
40905
  * "created_at": "2026-01-10T13:00:00.000Z",
@@ -40400,8 +41257,10 @@ interface paths {
40400
41257
  * "mercadolibre"
40401
41258
  * ],
40402
41259
  * "match_channels": [],
41260
+ * "match_lead_intents": [],
40403
41261
  * "team_id": "cccccccc-0000-4000-8000-000000000001",
40404
41262
  * "assignee_user_ids": null,
41263
+ * "target_vehicle_owner": false,
40405
41264
  * "assignment_mode": "auto_round_robin",
40406
41265
  * "is_portal_default": false,
40407
41266
  * "created_at": "2026-01-10T13:00:00.000Z",
@@ -40557,7 +41416,7 @@ interface paths {
40557
41416
  head?: never;
40558
41417
  /**
40559
41418
  * Update an assignment rule
40560
- * @description Partial update. Setting `team_id` nulls `assignee_user_ids` and vice versa — the destination stays exactly one thing. `priority` is not writable here; use `PUT /assignment-rules/order`.
41419
+ * @description Partial update. Setting `team_id` nulls `assignee_user_ids` (and vice versa), and setting `target_vehicle_owner: true` nulls BOTH — the destination stays exactly one thing across the three kinds. `priority` is not writable here; use `PUT /assignment-rules/order`.
40561
41420
  */
40562
41421
  patch: {
40563
41422
  parameters: {
@@ -40580,9 +41439,11 @@ interface paths {
40580
41439
  enabled?: boolean;
40581
41440
  match_sources?: ("conversation" | "marketplace" | "manual" | "import" | "ai_agent" | "chileautos" | "yapo" | "mercadolibre" | "website")[] | null;
40582
41441
  match_channels?: string[] | null;
41442
+ match_lead_intents?: ("buy" | "sell" | "financing" | "trade_in")[] | null;
40583
41443
  /** Format: uuid */
40584
41444
  team_id?: string | null;
40585
41445
  assignee_user_ids?: string[] | null;
41446
+ target_vehicle_owner?: boolean;
40586
41447
  /** @enum {string|null} */
40587
41448
  assignment_mode?: "auto_round_robin" | "auto_round_robin_online" | "auto_least_busy" | null;
40588
41449
  };
@@ -40607,8 +41468,10 @@ interface paths {
40607
41468
  * "mercadolibre"
40608
41469
  * ],
40609
41470
  * "match_channels": [],
41471
+ * "match_lead_intents": [],
40610
41472
  * "team_id": "cccccccc-0000-4000-8000-000000000001",
40611
41473
  * "assignee_user_ids": null,
41474
+ * "target_vehicle_owner": false,
40612
41475
  * "assignment_mode": "auto_round_robin",
40613
41476
  * "is_portal_default": false,
40614
41477
  * "created_at": "2026-01-10T13:00:00.000Z",
@@ -40735,8 +41598,10 @@ interface paths {
40735
41598
  * "mercadolibre"
40736
41599
  * ],
40737
41600
  * "match_channels": [],
41601
+ * "match_lead_intents": [],
40738
41602
  * "team_id": "cccccccc-0000-4000-8000-000000000001",
40739
41603
  * "assignee_user_ids": null,
41604
+ * "target_vehicle_owner": false,
40740
41605
  * "assignment_mode": "auto_round_robin",
40741
41606
  * "is_portal_default": false,
40742
41607
  * "created_at": "2026-01-10T13:00:00.000Z",
@@ -100689,7 +101554,7 @@ interface paths {
100689
101554
  put?: never;
100690
101555
  /**
100691
101556
  * Provision a synthetic automotora (the sandbox for sk_test_ keys)
100692
- * @description Creates this workspace's SANDBOX: a separate workspace bound to it, holding a generated dealership — ~40 units with real makes, models and CLP prices, 30 buyers each with a conversation and a lead, 10 cotizaciones and 5 reservas — and mints one `sk_test_` key for it, returned once. Test keys minted later with `POST /api-keys {livemode:false}` bind to the same sandbox. A test key authenticates ONLY there: it can never read or write this workspace. Zero real data (phones in an unassigned mobile block, e-mail on RFC 2606 domains, RUTs in a never-issued block, no plates or VINs). Every outbound send is captured instead of delivered, and no real channel may be connected. Deterministic from `seed`. Idempotent: one sandbox per workspace, of either vertical — a second call returns it with `created: false`, its `vertical` and no key.
101557
+ * @description Creates this workspace's SANDBOX: a separate workspace bound to it, holding a generated dealership — ~40 units with real makes, models and CLP prices, 30 prospects each with a conversation and a lead, 10 cotizaciones and 5 reservas — and its whole back office, issued through the same services a dealer uses: legal identity, a team with commission schemes, notas de compra, consignaciones, cost lines, ~11 approved notas de venta over six months (with payments, credit, retomas and a settled consignment), post-sale obligations, compraventas, a pending price approval and upcoming test drives. Steps a service refused are listed in `failures` (empty when healthy). It mints one `sk_test_` key for it, returned once. Test keys minted later with `POST /api-keys {livemode:false}` bind to the same sandbox. A test key authenticates ONLY there: it can never read or write this workspace. Zero real data (phones in an unassigned mobile block, e-mail on RFC 2606 domains, RUTs in a never-issued block, plates in the not-yet-issued ZZ series, VINs in the unassigned 0 region). Every outbound send is captured instead of delivered, and no real channel may be connected. Deterministic from `seed`. Idempotent: one sandbox per workspace, of either vertical — a second call returns it with `created: false`, its `vertical` and no key.
100693
101558
  */
100694
101559
  post: {
100695
101560
  parameters: {
@@ -100705,12 +101570,14 @@ interface paths {
100705
101570
  content: {
100706
101571
  /**
100707
101572
  * @example {
100708
- * "seed": "docs-2697-demo"
101573
+ * "seed": "docs-2697-demo",
101574
+ * "name": "Autos del Pacífico"
100709
101575
  * }
100710
101576
  */
100711
101577
  "application/json": {
100712
101578
  seed?: string;
100713
101579
  name?: string;
101580
+ legal_name?: string;
100714
101581
  vehicle_count?: number;
100715
101582
  contact_count?: number;
100716
101583
  };
@@ -100759,18 +101626,27 @@ interface paths {
100759
101626
  * "created": true,
100760
101627
  * "tenant": {
100761
101628
  * "id": "34d213e0-5cac-4c86-a57c-4db28d59b9ec",
100762
- * "name": "Autos Alameda (demostración)",
100763
- * "slug": "autos-alameda-demo-3"
101629
+ * "name": "Autos del Pacífico (demostración)",
101630
+ * "slug": "autos-del-pacifico-demo-3"
100764
101631
  * },
100765
101632
  * "vertical": "automotive",
100766
101633
  * "seed": "docs-2697-demo",
100767
101634
  * "stats": {
100768
101635
  * "vehicles": 40,
100769
- * "contacts": 30,
100770
- * "leads": 30,
101636
+ * "contacts": 92,
101637
+ * "leads": 54,
100771
101638
  * "quotes": 10,
100772
- * "reservations": 5
101639
+ * "reservations": 5,
101640
+ * "team_member": 5,
101641
+ * "purchase_note": 33,
101642
+ * "consignment_contract": 5,
101643
+ * "vehicle_cost_entry": 85,
101644
+ * "sale_note": 11,
101645
+ * "liquidacion": 1,
101646
+ * "compraventa": 2,
101647
+ * "test_drive": 4
100773
101648
  * },
101649
+ * "failures": [],
100774
101650
  * "test_key": {
100775
101651
  * "secret": "sk_test_gZCK…",
100776
101652
  * "prefix": "sk_test_gZCK",
@@ -100892,7 +101768,7 @@ interface paths {
100892
101768
  };
100893
101769
  };
100894
101770
  responses: {
100895
- /** @description The sandbox that was reset: `tenant_id`, `vertical`, `seed`, the rows regenerated per table (`counts`) and the rows removed (`deleted`) */
101771
+ /** @description The sandbox that was reset: `tenant_id`, `vertical`, `seed`, the rows regenerated per table (`counts`, back office included), the rows removed (`deleted`) and any back-office step a service refused (`failures`, empty when healthy) */
100896
101772
  200: {
100897
101773
  headers: {
100898
101774
  [name: string]: unknown;
@@ -100906,14 +101782,18 @@ interface paths {
100906
101782
  * "seed": "docs-2697-demo",
100907
101783
  * "counts": {
100908
101784
  * "vehicle": 40,
100909
- * "contact": 30,
100910
- * "lead": 30
101785
+ * "contact": 92,
101786
+ * "lead": 54,
101787
+ * "sale_note": 11,
101788
+ * "purchase_note": 33
100911
101789
  * },
100912
101790
  * "deleted": {
100913
101791
  * "vehicle": 40,
100914
- * "contact": 30,
101792
+ * "contact": 92,
101793
+ * "sale_note": 11,
100915
101794
  * "sandbox_outbound_capture": 1
100916
- * }
101795
+ * },
101796
+ * "failures": []
100917
101797
  * }
100918
101798
  * }
100919
101799
  */
@@ -117336,6 +118216,8 @@ interface components {
117336
118216
  author: components["schemas"]["Author"];
117337
118217
  created_at: string;
117338
118218
  };
118219
+ /** @example 2026-01 */
118220
+ OverheadPeriod: string;
117339
118221
  ClinicDiagnostico: {
117340
118222
  /** @enum {string} */
117341
118223
  status: "not_started" | "active" | "closed";