mcp-zenskar 1.1.5 → 1.1.7

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 (2) hide show
  1. package/package.json +1 -1
  2. package/src/mcp-config.json +169 -288
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-zenskar",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Model Context Protocol (MCP) server for Zenskar API - customer management, invoicing, and billing operations",
5
5
  "main": "src/server.js",
6
6
  "bin": {
@@ -1954,7 +1954,7 @@
1954
1954
  }
1955
1955
  ],
1956
1956
  "requestTemplate": {
1957
- "url": "/invoice/{invoiceId}/approve",
1957
+ "url": "/invoices/{invoiceId}/approve",
1958
1958
  "method": "PATCH",
1959
1959
  "headers": {
1960
1960
  "Content-Type": "application/json"
@@ -2032,9 +2032,9 @@
2032
2032
  },
2033
2033
  {
2034
2034
  "name": "phone_number",
2035
- "description": "Business Entity phone number with country code (Required).",
2035
+ "description": "Business Entity phone number with country code (optional).",
2036
2036
  "type": "string",
2037
- "required": true,
2037
+ "required": false,
2038
2038
  "position": "body",
2039
2039
  "default": "+911234567890"
2040
2040
  },
@@ -2470,9 +2470,9 @@
2470
2470
  },
2471
2471
  {
2472
2472
  "name": "end_date",
2473
- "description": "Contract end date in ISO 8601 format (e.g., '2025-12-31T23:59:59.999999').",
2473
+ "description": "Contract end date in ISO 8601 format (e.g., '2025-12-31T23:59:59.999999'). Optional — omit for open-ended contracts.",
2474
2474
  "type": "string",
2475
- "required": true,
2475
+ "required": false,
2476
2476
  "position": "body"
2477
2477
  },
2478
2478
  {
@@ -3074,15 +3074,15 @@
3074
3074
  },
3075
3075
  {
3076
3076
  "name": "from_date",
3077
- "description": "Start date of the billing period (e.g. 2026-03-01).",
3078
- "type": "string",
3077
+ "description": "Start date of the billing period as a UNIX timestamp in seconds (e.g. 1709251200 for 2024-03-01). Must be an integer, NOT a date string.",
3078
+ "type": "number",
3079
3079
  "required": true,
3080
3080
  "position": "body"
3081
3081
  },
3082
3082
  {
3083
3083
  "name": "to_date",
3084
- "description": "End date of the billing period (e.g. 2026-03-31).",
3085
- "type": "string",
3084
+ "description": "End date of the billing period as a UNIX timestamp in seconds (e.g. 1711929600 for 2024-03-31). Must be an integer, NOT a date string.",
3085
+ "type": "number",
3086
3086
  "required": true,
3087
3087
  "position": "body"
3088
3088
  }
@@ -3258,34 +3258,41 @@
3258
3258
  },
3259
3259
  {
3260
3260
  "name": "createPayment",
3261
- "description": "Record a payment against an invoice. Payment method enum: card, cash, check, charge_back, bank_transfer, direct_debit, other, credits, etc. Type enum: payment, refund, payment_reversal, authorization, tax_withheld. For manual payments use payment_method='other' and type='payment'. Note: customer_id is required.",
3261
+ "description": "Record a payment. Link to invoices via payment_parts array. Payment method enum: card, cash, check, charge_back, bank_transfer, direct_debit, other, credits, etc. Type enum: payment, refund, payment_reversal, authorization, tax_withheld. For manual payments use payment_method='other' and type='payment'.",
3262
3262
  "args": [
3263
3263
  {
3264
- "name": "invoice_id",
3265
- "description": "UUID of the invoice this payment is for.",
3264
+ "name": "customer_id",
3265
+ "description": "UUID of the customer making the payment.",
3266
3266
  "type": "string",
3267
+ "required": false,
3268
+ "position": "body"
3269
+ },
3270
+ {
3271
+ "name": "amount",
3272
+ "description": "Total payment amount in the smallest currency unit (e.g. cents).",
3273
+ "type": "number",
3267
3274
  "required": true,
3268
3275
  "position": "body"
3269
3276
  },
3270
3277
  {
3271
- "name": "customer_id",
3272
- "description": "UUID of the customer making the payment.",
3278
+ "name": "currency_code",
3279
+ "description": "Three-letter ISO 4217 currency code (e.g. USD).",
3273
3280
  "type": "string",
3274
3281
  "required": true,
3275
3282
  "position": "body"
3276
3283
  },
3277
3284
  {
3278
- "name": "amount",
3279
- "description": "Payment amount in the currency specified.",
3280
- "type": "number",
3281
- "required": true,
3285
+ "name": "payment_parts",
3286
+ "description": "Array of invoice allocations. Each element: {invoice_id: 'UUID', amount: 10000}. Links the payment to one or more invoices.",
3287
+ "type": "array",
3288
+ "required": false,
3282
3289
  "position": "body"
3283
3290
  },
3284
3291
  {
3285
3292
  "name": "payment_method",
3286
3293
  "description": "Payment method: card, cash, check, charge_back, bank_transfer, direct_debit, other, credits, ach_credit_transfer, etc. Use 'other' for manual payments.",
3287
3294
  "type": "string",
3288
- "required": true,
3295
+ "required": false,
3289
3296
  "position": "body",
3290
3297
  "enum": [
3291
3298
  "card",
@@ -3303,13 +3310,6 @@
3303
3310
  "ach_credit_transfer"
3304
3311
  ]
3305
3312
  },
3306
- {
3307
- "name": "currency_code",
3308
- "description": "Three-letter ISO 4217 currency code (e.g. USD).",
3309
- "type": "string",
3310
- "required": true,
3311
- "position": "body"
3312
- },
3313
3313
  {
3314
3314
  "name": "type",
3315
3315
  "description": "Payment type: payment, refund, payment_reversal, authorization, or tax_withheld.",
@@ -3325,12 +3325,26 @@
3325
3325
  "tax_withheld"
3326
3326
  ]
3327
3327
  },
3328
+ {
3329
+ "name": "status",
3330
+ "description": "Payment status.",
3331
+ "type": "string",
3332
+ "required": false,
3333
+ "position": "body"
3334
+ },
3328
3335
  {
3329
3336
  "name": "external_id",
3330
3337
  "description": "External reference ID for this payment.",
3331
3338
  "type": "string",
3332
3339
  "required": false,
3333
3340
  "position": "body"
3341
+ },
3342
+ {
3343
+ "name": "timestamp",
3344
+ "description": "Payment timestamp in ISO 8601 format.",
3345
+ "type": "string",
3346
+ "required": false,
3347
+ "position": "body"
3334
3348
  }
3335
3349
  ],
3336
3350
  "requestTemplate": {
@@ -3346,7 +3360,7 @@
3346
3360
  },
3347
3361
  {
3348
3362
  "name": "updatePayment",
3349
- "description": "Update a payment's details such as status.",
3363
+ "description": "Update a payment's invoice allocations (payment_parts).",
3350
3364
  "args": [
3351
3365
  {
3352
3366
  "name": "paymentId",
@@ -3356,16 +3370,9 @@
3356
3370
  "position": "path"
3357
3371
  },
3358
3372
  {
3359
- "name": "status",
3360
- "description": "New payment status.",
3361
- "type": "string",
3362
- "required": false,
3363
- "position": "body"
3364
- },
3365
- {
3366
- "name": "amount",
3367
- "description": "Updated payment amount.",
3368
- "type": "number",
3373
+ "name": "payment_parts",
3374
+ "description": "Updated array of invoice allocations. Each element: {invoice_id: 'UUID', amount: 10000}.",
3375
+ "type": "array",
3369
3376
  "required": false,
3370
3377
  "position": "body"
3371
3378
  }
@@ -3767,8 +3774,8 @@
3767
3774
  "position": "body"
3768
3775
  },
3769
3776
  {
3770
- "name": "account_type",
3771
- "description": "Type of account (e.g., 'asset', 'liability', 'revenue', 'expense', 'equity').",
3777
+ "name": "account_category",
3778
+ "description": "Category of account. Valid values: 'Assets', 'Liabilities', 'Equity', 'Income', 'Expenses'.",
3772
3779
  "type": "string",
3773
3780
  "required": true,
3774
3781
  "position": "body"
@@ -3841,32 +3848,47 @@
3841
3848
  "description": "Create a new manual journal entry with debit and credit lines.",
3842
3849
  "args": [
3843
3850
  {
3844
- "name": "date",
3845
- "description": "Date of the journal entry (YYYY-MM-DD).",
3851
+ "name": "posted_at",
3852
+ "description": "Posting date of the journal entry in ISO 8601 format (e.g., '2026-01-15T00:00:00').",
3846
3853
  "type": "string",
3847
- "required": true,
3854
+ "required": false,
3848
3855
  "position": "body"
3849
3856
  },
3850
3857
  {
3851
3858
  "name": "description",
3852
3859
  "description": "Description/memo for the journal entry.",
3853
3860
  "type": "string",
3854
- "required": false,
3861
+ "required": true,
3862
+ "position": "body"
3863
+ },
3864
+ {
3865
+ "name": "currency",
3866
+ "description": "Three-letter ISO 4217 currency code (e.g., 'USD', 'EUR', 'GBP').",
3867
+ "type": "string",
3868
+ "required": true,
3855
3869
  "position": "body"
3856
3870
  },
3857
3871
  {
3858
- "name": "lines",
3859
- "description": "Array of journal lines. Each line: {account_id, debit, credit, description}.",
3872
+ "name": "journal_lines",
3873
+ "description": "Array of journal lines. Each line requires: {account_id, debits, credits, currency}. Use 'debits' and 'credits' (plural, integers in cents). Example: [{account_id:'...', debits:10000, credits:0, currency:'USD'}, {account_id:'...', debits:0, credits:10000, currency:'USD'}]. Optional tags: customer_id, contract_id, invoice_id, custom_tags.",
3860
3874
  "type": "array",
3861
3875
  "required": true,
3862
3876
  "position": "body"
3863
3877
  },
3864
3878
  {
3865
- "name": "reference",
3866
- "description": "External reference number.",
3867
- "type": "string",
3879
+ "name": "custom_data",
3880
+ "description": "Additional metadata as key-value pairs.",
3881
+ "type": "object",
3868
3882
  "required": false,
3869
3883
  "position": "body"
3884
+ },
3885
+ {
3886
+ "name": "status_type",
3887
+ "description": "Journal entry status (default: 'posted').",
3888
+ "type": "string",
3889
+ "required": false,
3890
+ "position": "body",
3891
+ "default": "posted"
3870
3892
  }
3871
3893
  ],
3872
3894
  "requestTemplate": {
@@ -4178,7 +4200,7 @@
4178
4200
  },
4179
4201
  {
4180
4202
  "name": "createProductPricing",
4181
- "description": "Create a new pricing configuration for a product.",
4203
+ "description": "Create a new pricing configuration for a product. The pricing_data object is a discriminated union — the 'pricing_type' field determines which pricing model schema to use.",
4182
4204
  "args": [
4183
4205
  {
4184
4206
  "name": "productId",
@@ -4189,45 +4211,45 @@
4189
4211
  },
4190
4212
  {
4191
4213
  "name": "name",
4192
- "description": "Name of the pricing.",
4214
+ "description": "Name of the pricing (optional).",
4193
4215
  "type": "string",
4194
- "required": true,
4216
+ "required": false,
4195
4217
  "position": "body"
4196
4218
  },
4197
4219
  {
4198
- "name": "pricing_model",
4199
- "description": "Pricing model type (e.g., 'flat_fee', 'per_unit', 'tiered', 'volume', 'staircase', 'percentage').",
4220
+ "name": "description",
4221
+ "description": "Description of this pricing configuration.",
4200
4222
  "type": "string",
4201
- "required": true,
4223
+ "required": false,
4202
4224
  "position": "body"
4203
4225
  },
4204
4226
  {
4205
- "name": "currency",
4206
- "description": "Currency code (e.g., 'USD').",
4207
- "type": "string",
4208
- "required": false,
4227
+ "name": "pricing_data",
4228
+ "description": "Pricing data object (required). Must include 'pricing_type' discriminator. Supported types: flat_fee: {pricing_type:'flat_fee', unit_amount:10000} (amount in cents). per_unit: {pricing_type:'per_unit', unit_amount:500}. tiered: {pricing_type:'tiered', tiers:[{from:0, to:100, unit_amount:1000}, {from:100, to:null, unit_amount:500}]}. volume: {pricing_type:'volume', tiers:[{from:0, to:100, unit_amount:1000}, {from:100, to:null, unit_amount:500}]}. percentage: {pricing_type:'percentage', percentage:5.0}. package: {pricing_type:'package', package_size:10, unit_amount:5000}. staircase/step: {pricing_type:'step', tiers:[...]}. matrix: {pricing_type:'matrix', dimensions:[...], values:[...]}.",
4229
+ "type": "object",
4230
+ "required": true,
4209
4231
  "position": "body"
4210
4232
  },
4211
4233
  {
4212
- "name": "pricing_data",
4213
- "description": "Pricing data object. Must include 'pricing_type' discriminator matching pricing_model. For flat_fee: {pricing_type:'flat_fee', unit_amount:10000} (amount in cents). For per_unit: {pricing_type:'per_unit', unit_amount:500}.",
4234
+ "name": "billing_period",
4235
+ "description": "Billing cadence for this pricing. Object with 'cadence' (ISO 8601 duration, e.g. 'P1M' for monthly, 'P3M' for quarterly, 'P1Y' for annually) and optional 'offset'. Example: {cadence: 'P1M'}.",
4214
4236
  "type": "object",
4215
4237
  "required": false,
4216
4238
  "position": "body"
4217
4239
  },
4218
4240
  {
4219
- "name": "billing_frequency",
4220
- "description": "Billing frequency (e.g., 'monthly', 'quarterly', 'annually').",
4221
- "type": "string",
4241
+ "name": "is_recurring",
4242
+ "description": "Whether this pricing is recurring (true) or one-time (false).",
4243
+ "type": "boolean",
4222
4244
  "required": false,
4223
4245
  "position": "body"
4224
4246
  },
4225
4247
  {
4226
- "name": "invoice_timing",
4227
- "description": "When to invoice: 'in_advance' or 'in_arrears'.",
4228
- "type": "string",
4248
+ "name": "return_existing",
4249
+ "description": "If true, returns existing pricing with matching hash instead of creating a duplicate.",
4250
+ "type": "boolean",
4229
4251
  "required": false,
4230
- "position": "body"
4252
+ "position": "query"
4231
4253
  }
4232
4254
  ],
4233
4255
  "requestTemplate": {
@@ -4303,7 +4325,7 @@
4303
4325
  },
4304
4326
  {
4305
4327
  "name": "createPlan",
4306
- "description": "Create a new plan (template) that defines a reusable contract structure with phases and pricing.",
4328
+ "description": "Create a new plan (template) that defines a reusable contract structure with products and pricing.",
4307
4329
  "args": [
4308
4330
  {
4309
4331
  "name": "name",
@@ -4313,22 +4335,29 @@
4313
4335
  "position": "body"
4314
4336
  },
4315
4337
  {
4316
- "name": "description",
4317
- "description": "Description of the plan.",
4338
+ "name": "currency",
4339
+ "description": "Three-letter ISO 4217 currency code (e.g., 'USD', 'EUR', 'GBP').",
4318
4340
  "type": "string",
4341
+ "required": true,
4342
+ "position": "body"
4343
+ },
4344
+ {
4345
+ "name": "display_config",
4346
+ "description": "Customer-facing display content. Object with fields like title, description, etc.",
4347
+ "type": "object",
4319
4348
  "required": false,
4320
4349
  "position": "body"
4321
4350
  },
4322
4351
  {
4323
- "name": "currency",
4324
- "description": "Currency code (e.g., 'USD').",
4352
+ "name": "duration",
4353
+ "description": "Billing period in ISO 8601 duration format (e.g., 'P1M' for monthly, 'P1Y' for yearly).",
4325
4354
  "type": "string",
4326
4355
  "required": false,
4327
4356
  "position": "body"
4328
4357
  },
4329
4358
  {
4330
- "name": "phases",
4331
- "description": "Array of plan phases, each with name, pricings, etc.",
4359
+ "name": "products",
4360
+ "description": "Array of products to add to plan, each with product_id and pricing configuration.",
4332
4361
  "type": "array",
4333
4362
  "required": false,
4334
4363
  "position": "body"
@@ -4339,6 +4368,20 @@
4339
4368
  "type": "object",
4340
4369
  "required": false,
4341
4370
  "position": "body"
4371
+ },
4372
+ {
4373
+ "name": "status",
4374
+ "description": "Plan status. Default: 'draft'. Options: 'draft', 'active', 'archived'.",
4375
+ "type": "string",
4376
+ "required": false,
4377
+ "position": "body"
4378
+ },
4379
+ {
4380
+ "name": "business_entity_id",
4381
+ "description": "Business entity ID for invoicing.",
4382
+ "type": "string",
4383
+ "required": false,
4384
+ "position": "body"
4342
4385
  }
4343
4386
  ],
4344
4387
  "requestTemplate": {
@@ -4573,189 +4616,6 @@
4573
4616
  "prependBody": "## Created Tax Category\n\n"
4574
4617
  }
4575
4618
  },
4576
- {
4577
- "name": "createQuote",
4578
- "description": "Create a new quote/proposal for a customer.",
4579
- "args": [
4580
- {
4581
- "name": "name",
4582
- "description": "Name/title of the quote.",
4583
- "type": "string",
4584
- "required": true,
4585
- "position": "body"
4586
- },
4587
- {
4588
- "name": "currency",
4589
- "description": "Currency code (e.g., 'USD').",
4590
- "type": "string",
4591
- "required": true,
4592
- "position": "body"
4593
- },
4594
- {
4595
- "name": "line_items",
4596
- "description": "Array of line items for the quote. Each item includes product/pricing details.",
4597
- "type": "array",
4598
- "required": true,
4599
- "position": "body"
4600
- },
4601
- {
4602
- "name": "customer_id",
4603
- "description": "The customer ID this quote is for (required for non-amendment quotes).",
4604
- "type": "string",
4605
- "required": true,
4606
- "position": "body"
4607
- },
4608
- {
4609
- "name": "description",
4610
- "description": "Description of the quote.",
4611
- "type": "string",
4612
- "required": false,
4613
- "position": "body"
4614
- },
4615
- {
4616
- "name": "start_date",
4617
- "description": "Start date for the quote (YYYY-MM-DD).",
4618
- "type": "string",
4619
- "required": true,
4620
- "position": "body"
4621
- },
4622
- {
4623
- "name": "end_date",
4624
- "description": "End date for the quote (YYYY-MM-DD).",
4625
- "type": "string",
4626
- "required": true,
4627
- "position": "body"
4628
- },
4629
- {
4630
- "name": "custom_attributes",
4631
- "description": "Custom attributes as key-value pairs.",
4632
- "type": "object",
4633
- "required": false,
4634
- "position": "body"
4635
- }
4636
- ],
4637
- "requestTemplate": {
4638
- "url": "/quotes",
4639
- "method": "POST",
4640
- "headers": {
4641
- "Content-Type": "application/json"
4642
- }
4643
- },
4644
- "responseTemplate": {
4645
- "prependBody": "## Created Quote\n\n"
4646
- }
4647
- },
4648
- {
4649
- "name": "previewQuoteEstimate",
4650
- "description": "Preview the estimated billing for a quote before creating it. Requires customer_id, currency, and line_items at minimum. Use getProductPricings to find valid product_id + pricing_id combos for line_items.",
4651
- "args": [
4652
- {
4653
- "name": "customer_id",
4654
- "description": "The customer ID for the estimate.",
4655
- "type": "string",
4656
- "required": true,
4657
- "position": "body"
4658
- },
4659
- {
4660
- "name": "currency",
4661
- "description": "Three-letter ISO 4217 currency code (e.g. USD).",
4662
- "type": "string",
4663
- "required": true,
4664
- "position": "body"
4665
- },
4666
- {
4667
- "name": "line_items",
4668
- "description": "Array of line items. Each item: {product_id, pricing_id}. The pricing_id must belong to the product_id — use getProductPricings to find valid combos.",
4669
- "type": "array",
4670
- "required": true,
4671
- "position": "body"
4672
- },
4673
- {
4674
- "name": "plan_id",
4675
- "description": "Plan ID to estimate (alternative to line_items).",
4676
- "type": "string",
4677
- "required": false,
4678
- "position": "body"
4679
- },
4680
- {
4681
- "name": "start_date",
4682
- "description": "Start date (YYYY-MM-DD).",
4683
- "type": "string",
4684
- "required": true,
4685
- "position": "body"
4686
- },
4687
- {
4688
- "name": "end_date",
4689
- "description": "End date (YYYY-MM-DD).",
4690
- "type": "string",
4691
- "required": true,
4692
- "position": "body"
4693
- },
4694
- {
4695
- "name": "phases",
4696
- "description": "Array of quote phases with pricing.",
4697
- "type": "array",
4698
- "required": false,
4699
- "position": "body"
4700
- }
4701
- ],
4702
- "requestTemplate": {
4703
- "url": "/quotes/preview",
4704
- "method": "POST",
4705
- "headers": {
4706
- "Content-Type": "application/json"
4707
- }
4708
- },
4709
- "responseTemplate": {
4710
- "prependBody": "## Quote Estimate Preview\n\n"
4711
- }
4712
- },
4713
- {
4714
- "name": "getQuoteById",
4715
- "description": "Retrieve a quote by its ID, including phases, pricing, and status.",
4716
- "args": [
4717
- {
4718
- "name": "quoteId",
4719
- "description": "The unique identifier of the quote.",
4720
- "type": "string",
4721
- "required": true,
4722
- "position": "path"
4723
- }
4724
- ],
4725
- "requestTemplate": {
4726
- "url": "/quotes/{quoteId}",
4727
- "method": "GET",
4728
- "headers": {
4729
- "Content-Type": "application/json"
4730
- }
4731
- },
4732
- "responseTemplate": {
4733
- "prependBody": "## Quote Details\n\n"
4734
- }
4735
- },
4736
- {
4737
- "name": "acceptQuote",
4738
- "description": "Accept a quote, converting it into an active contract.",
4739
- "args": [
4740
- {
4741
- "name": "quoteId",
4742
- "description": "The unique identifier of the quote to accept.",
4743
- "type": "string",
4744
- "required": true,
4745
- "position": "path"
4746
- }
4747
- ],
4748
- "requestTemplate": {
4749
- "url": "/quotes/{quoteId}/accept",
4750
- "method": "POST",
4751
- "headers": {
4752
- "Content-Type": "application/json"
4753
- }
4754
- },
4755
- "responseTemplate": {
4756
- "prependBody": "## Accepted Quote\n\n"
4757
- }
4758
- },
4759
4619
  {
4760
4620
  "name": "listJobs",
4761
4621
  "description": "Retrieve a paginated list of async jobs (invoice generation, revenue recognition, etc.).",
@@ -4831,7 +4691,7 @@
4831
4691
  "name": "first_name",
4832
4692
  "description": "First name of the contact.",
4833
4693
  "type": "string",
4834
- "required": true,
4694
+ "required": false,
4835
4695
  "position": "body"
4836
4696
  },
4837
4697
  {
@@ -4849,22 +4709,15 @@
4849
4709
  "position": "body"
4850
4710
  },
4851
4711
  {
4852
- "name": "phone",
4853
- "description": "Phone number of the contact.",
4854
- "type": "string",
4855
- "required": false,
4856
- "position": "body"
4857
- },
4858
- {
4859
- "name": "designation",
4860
- "description": "Job title/designation of the contact.",
4861
- "type": "string",
4712
+ "name": "send_contract",
4713
+ "description": "Whether to send contracts to this contact.",
4714
+ "type": "boolean",
4862
4715
  "required": false,
4863
4716
  "position": "body"
4864
4717
  },
4865
4718
  {
4866
- "name": "is_primary",
4867
- "description": "Whether this is the primary contact.",
4719
+ "name": "send_invoice",
4720
+ "description": "Whether to send invoices to this contact.",
4868
4721
  "type": "boolean",
4869
4722
  "required": false,
4870
4723
  "position": "body"
@@ -4883,7 +4736,7 @@
4883
4736
  },
4884
4737
  {
4885
4738
  "name": "updateContact",
4886
- "description": "Update an existing contact's details. Requires customer (customer ID) and email even for partial updates.",
4739
+ "description": "Update an existing contact's details. Supports partial updates.",
4887
4740
  "args": [
4888
4741
  {
4889
4742
  "name": "contactId",
@@ -4894,9 +4747,9 @@
4894
4747
  },
4895
4748
  {
4896
4749
  "name": "customer",
4897
- "description": "The customer ID (UUID) this contact belongs to. Required even for updates.",
4750
+ "description": "The customer ID (UUID) this contact belongs to.",
4898
4751
  "type": "string",
4899
- "required": true,
4752
+ "required": false,
4900
4753
  "position": "body"
4901
4754
  },
4902
4755
  {
@@ -4915,28 +4768,21 @@
4915
4768
  },
4916
4769
  {
4917
4770
  "name": "email",
4918
- "description": "Email address of the contact. Required even for updates.",
4919
- "type": "string",
4920
- "required": true,
4921
- "position": "body"
4922
- },
4923
- {
4924
- "name": "phone",
4925
- "description": "Updated phone number.",
4771
+ "description": "Updated email address.",
4926
4772
  "type": "string",
4927
4773
  "required": false,
4928
4774
  "position": "body"
4929
4775
  },
4930
4776
  {
4931
- "name": "designation",
4932
- "description": "Updated job title/designation.",
4933
- "type": "string",
4777
+ "name": "send_contract",
4778
+ "description": "Whether to send contracts to this contact.",
4779
+ "type": "boolean",
4934
4780
  "required": false,
4935
4781
  "position": "body"
4936
4782
  },
4937
4783
  {
4938
- "name": "is_primary",
4939
- "description": "Whether this is the primary contact.",
4784
+ "name": "send_invoice",
4785
+ "description": "Whether to send invoices to this contact.",
4940
4786
  "type": "boolean",
4941
4787
  "required": false,
4942
4788
  "position": "body"
@@ -5141,11 +4987,25 @@
5141
4987
  "position": "body"
5142
4988
  },
5143
4989
  {
5144
- "name": "address_type",
5145
- "description": "Type of address (e.g., 'billing', 'shipping').",
4990
+ "name": "line3",
4991
+ "description": "Address line 3.",
5146
4992
  "type": "string",
5147
4993
  "required": false,
5148
4994
  "position": "body"
4995
+ },
4996
+ {
4997
+ "name": "is_default_billing",
4998
+ "description": "Set as default billing address. Default: false.",
4999
+ "type": "boolean",
5000
+ "required": false,
5001
+ "position": "body"
5002
+ },
5003
+ {
5004
+ "name": "is_default_shipping",
5005
+ "description": "Set as default shipping address. Default: false.",
5006
+ "type": "boolean",
5007
+ "required": false,
5008
+ "position": "body"
5149
5009
  }
5150
5010
  ],
5151
5011
  "requestTemplate": {
@@ -5225,6 +5085,27 @@
5225
5085
  "type": "string",
5226
5086
  "required": false,
5227
5087
  "position": "body"
5088
+ },
5089
+ {
5090
+ "name": "line3",
5091
+ "description": "Updated address line 3.",
5092
+ "type": "string",
5093
+ "required": false,
5094
+ "position": "body"
5095
+ },
5096
+ {
5097
+ "name": "is_default_billing",
5098
+ "description": "Set as default billing address.",
5099
+ "type": "boolean",
5100
+ "required": false,
5101
+ "position": "body"
5102
+ },
5103
+ {
5104
+ "name": "is_default_shipping",
5105
+ "description": "Set as default shipping address.",
5106
+ "type": "boolean",
5107
+ "required": false,
5108
+ "position": "body"
5228
5109
  }
5229
5110
  ],
5230
5111
  "requestTemplate": {