@hyperline/cli 0.1.0-build.1.2ba119b → 0.1.0-build.1.2d5778a

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.
@@ -34894,10 +34894,10 @@ var require_shared = __commonJS({
34894
34894
  ZodId: () => ZodId,
34895
34895
  ZodTranslationsSchemaFn: () => ZodTranslationsSchemaFn
34896
34896
  });
34897
- var import_zod18 = require_lib();
34897
+ var import_zod19 = require_lib();
34898
34898
  var countryIds2 = ["all", ...countries.map(({ id }) => id)];
34899
- var ZodId = import_zod18.z.enum(countryIds2);
34900
- var ZodTranslationsSchemaFn = (schema) => import_zod18.z.record(import_zod18.z.string(), schema.optional());
34899
+ var ZodId = import_zod19.z.enum(countryIds2);
34900
+ var ZodTranslationsSchemaFn = (schema) => import_zod19.z.record(import_zod19.z.string(), schema.optional());
34901
34901
  var UsStates = [
34902
34902
  { id: "AA", name: "Armed Forces Americas" },
34903
34903
  { id: "AE", name: "Armed Forces Europe" },
@@ -38020,7 +38020,7 @@ Examples:
38020
38020
  queryParamKeys: ["take", "skip"]
38021
38021
  });
38022
38022
  });
38023
- resource.command("create").description(`Create a new coupon with discount rules. Supports percentage or fixed amount discounts, duration limits, and redemption restrictions.`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38023
+ resource.command("create").description(`Create a new coupon with discount rules. Supports percentage or fixed amount discounts, duration limits, and redemption restrictions.`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).option("--repeat <value>", `Default repeat behaviour applied when the coupon is attached to a subscription. Valid values: \`once\`, \`forever\`, \`duration\`. Can be overridden at attach time.`).option("--duration <value>", `Default duration applied when \`repeat\` is \`duration\`. Required when \`repeat\` is \`duration\`, must be null otherwise.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38024
38024
  Examples:
38025
38025
  hyperline coupons create --name <name> --type <type>
38026
38026
  hyperline coupons create --name <name> --type <type> --description <description> --expiration-date <expiration_date>
@@ -38039,6 +38039,10 @@ Examples:
38039
38039
  args.expiration_date = opts.expirationDate;
38040
38040
  if (opts.productIds !== void 0)
38041
38041
  args.product_ids = opts.productIds;
38042
+ if (opts.repeat !== void 0)
38043
+ args.repeat = opts.repeat;
38044
+ if (opts.duration !== void 0)
38045
+ args.duration = opts.duration;
38042
38046
  if (opts.type !== void 0)
38043
38047
  args.type = opts.type;
38044
38048
  if (opts.currency !== void 0)
@@ -38074,7 +38078,7 @@ Examples:
38074
38078
  queryParamKeys: []
38075
38079
  });
38076
38080
  });
38077
- resource.command("update").description(`Update an existing coupon's name, discount rules, or restrictions.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38081
+ resource.command("update").description(`Update an existing coupon's name, discount rules, or restrictions.`).requiredOption("--id <value>", `id parameter`).requiredOption("--name <value>", `Coupon name.`).option("--description <value>", `Coupon description.`).option("--expiration-date <value>", `Date corresponding to the expiration of the coupon.`).option("--redemption-limit <number>", `Maximum number of subscriptions to which a single coupon can be applied.`).option("--product-ids <value>", `List of product IDs the coupon can be applied to. If empty, the coupon can be applied to any product.`).option("--repeat <value>", `Default repeat behaviour applied when the coupon is attached to a subscription. Valid values: \`once\`, \`forever\`, \`duration\`. Can be overridden at attach time.`).option("--duration <value>", `Default duration applied when \`repeat\` is \`duration\`. Required when \`repeat\` is \`duration\`, must be null otherwise.`).requiredOption("--type <value>", `type`).option("--discount-amount <number>", `Amount to apply as a discount on the total amount (excluding taxes) of a subscription. Expressed in the currency's smallest unit.`).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--discount-percent <number>", `Percentage to apply as a discount on the amount (excluding taxes) of a product.`).addHelpText("after", `
38078
38082
  Examples:
38079
38083
  hyperline coupons update --id <id> --name <name> --type <type>
38080
38084
  hyperline coupons update --id <id> --name <name> --type <type> --description <description> --expiration-date <expiration_date>
@@ -38095,6 +38099,10 @@ Examples:
38095
38099
  args.expiration_date = opts.expirationDate;
38096
38100
  if (opts.productIds !== void 0)
38097
38101
  args.product_ids = opts.productIds;
38102
+ if (opts.repeat !== void 0)
38103
+ args.repeat = opts.repeat;
38104
+ if (opts.duration !== void 0)
38105
+ args.duration = opts.duration;
38098
38106
  if (opts.type !== void 0)
38099
38107
  args.type = opts.type;
38100
38108
  if (opts.currency !== void 0)
@@ -38429,16 +38437,24 @@ Examples:
38429
38437
  // build/commands/generated/customers.js
38430
38438
  function registerCustomersCommands(parent) {
38431
38439
  const resource = parent.command("customers").description("Manage customers");
38432
- resource.command("list").description(`List customers with optional filters for name, type, status, currency, country, external_id, billing_email, search, tax_id, subscription_status, invoicing_entity_id, segment_id, custom_properties, payment_method_type, created_at, updated_at. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--country <value>", `country`).option("--country.not <value>", `country__not`).option("--country.is-null <value>", `country__isNull`).option("--country.is-not-null <value>", `country__isNotNull`).option("--country.equals <value>", `country__equals`).option("--country.contains <value>", `country__contains`).option("--country.starts-with <value>", `country__startsWith`).option("--country.end-with <value>", `country__endWith`).option("--external-id <value>", `external_id`).option("--external-id.not <value>", `external_id__not`).option("--external-id.is-null <value>", `external_id__isNull`).option("--external-id.is-not-null <value>", `external_id__isNotNull`).option("--external-id.equals <value>", `external_id__equals`).option("--external-id.contains <value>", `external_id__contains`).option("--external-id.starts-with <value>", `external_id__startsWith`).option("--external-id.end-with <value>", `external_id__endWith`).option("--billing-email <value>", `billing_email`).option("--billing-email.not <value>", `billing_email__not`).option("--billing-email.is-null <value>", `billing_email__isNull`).option("--billing-email.is-not-null <value>", `billing_email__isNotNull`).option("--billing-email.equals <value>", `billing_email__equals`).option("--billing-email.contains <value>", `billing_email__contains`).option("--billing-email.starts-with <value>", `billing_email__startsWith`).option("--billing-email.end-with <value>", `billing_email__endWith`).option("--search <value>", `search`).option("--tax-id <value>", `tax_id`).option("--tax-id.not <value>", `tax_id__not`).option("--tax-id.is-null <value>", `tax_id__isNull`).option("--tax-id.is-not-null <value>", `tax_id__isNotNull`).option("--tax-id.equals <value>", `tax_id__equals`).option("--tax-id.contains <value>", `tax_id__contains`).option("--tax-id.starts-with <value>", `tax_id__startsWith`).option("--tax-id.end-with <value>", `tax_id__endWith`).option("--subscription-status <value>", `subscription_status`).option("--subscription-status.in <value>", `subscription_status__in`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--segment-id <value>", `segment_id`).option("--custom-properties <value>", `custom_properties`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-type.in <value>", `payment_method_type__in`).option("--integration-entity-id <value>", `integration_entity_id`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.is-null <value>", `created_at__isNull`).option("--created-at.is-not-null <value>", `created_at__isNotNull`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
38440
+ resource.command("list").description(`List customers with optional filters for name, type, status, currency, country, external_id, billing_email, search, tax_id, subscription_status, invoicing_entity_id, segment_id, custom_properties, payment_method_type, integration_entity_id, created_at, and updated_at. Sortable by created_at or updated_at. Paginated with limit/cursor.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--name <value>", `name`).option("--name.not <value>", `name__not`).option("--name.is-null <value>", `name__isNull`).option("--name.is-not-null <value>", `name__isNotNull`).option("--name.equals <value>", `name__equals`).option("--name.contains <value>", `name__contains`).option("--name.starts-with <value>", `name__startsWith`).option("--name.end-with <value>", `name__endWith`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--currency <value>", `currency`).option("--currency.not <value>", `currency__not`).option("--currency.is-null <value>", `currency__isNull`).option("--currency.is-not-null <value>", `currency__isNotNull`).option("--currency.equals <value>", `currency__equals`).option("--currency.contains <value>", `currency__contains`).option("--currency.starts-with <value>", `currency__startsWith`).option("--currency.end-with <value>", `currency__endWith`).option("--country <value>", `country`).option("--country.not <value>", `country__not`).option("--country.is-null <value>", `country__isNull`).option("--country.is-not-null <value>", `country__isNotNull`).option("--country.equals <value>", `country__equals`).option("--country.contains <value>", `country__contains`).option("--country.starts-with <value>", `country__startsWith`).option("--country.end-with <value>", `country__endWith`).option("--external-id <value>", `external_id`).option("--external-id.not <value>", `external_id__not`).option("--external-id.is-null <value>", `external_id__isNull`).option("--external-id.is-not-null <value>", `external_id__isNotNull`).option("--external-id.equals <value>", `external_id__equals`).option("--external-id.contains <value>", `external_id__contains`).option("--external-id.starts-with <value>", `external_id__startsWith`).option("--external-id.end-with <value>", `external_id__endWith`).option("--billing-email <value>", `billing_email`).option("--billing-email.not <value>", `billing_email__not`).option("--billing-email.is-null <value>", `billing_email__isNull`).option("--billing-email.is-not-null <value>", `billing_email__isNotNull`).option("--billing-email.equals <value>", `billing_email__equals`).option("--billing-email.contains <value>", `billing_email__contains`).option("--billing-email.starts-with <value>", `billing_email__startsWith`).option("--billing-email.end-with <value>", `billing_email__endWith`).option("--search <value>", `search`).option("--tax-id <value>", `tax_id`).option("--tax-id.not <value>", `tax_id__not`).option("--tax-id.is-null <value>", `tax_id__isNull`).option("--tax-id.is-not-null <value>", `tax_id__isNotNull`).option("--tax-id.equals <value>", `tax_id__equals`).option("--tax-id.contains <value>", `tax_id__contains`).option("--tax-id.starts-with <value>", `tax_id__startsWith`).option("--tax-id.end-with <value>", `tax_id__endWith`).option("--subscription-status <value>", `subscription_status`).option("--subscription-status.in <value>", `subscription_status__in`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--segment-id <value>", `segment_id`).option("--custom-properties <value>", `custom_properties`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-type.in <value>", `payment_method_type__in`).option("--integration-entity-id <value>", `integration_entity_id`).option("--created-at <value>", `created_at`).option("--created-at.not <value>", `created_at__not`).option("--created-at.is-null <value>", `created_at__isNull`).option("--created-at.is-not-null <value>", `created_at__isNotNull`).option("--created-at.equals <value>", `created_at__equals`).option("--created-at.lt <value>", `created_at__lt`).option("--created-at.lte <value>", `created_at__lte`).option("--created-at.gt <value>", `created_at__gt`).option("--created-at.gte <value>", `created_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
38433
38441
  Examples:
38434
38442
  hyperline customers list
38435
- hyperline customers list --take <take> --name <name>`).action(async (opts) => {
38443
+ hyperline customers list --limit <limit> --cursor <cursor>`).action(async (opts) => {
38436
38444
  const ctx = resource.parent?.opts()._ctx;
38437
38445
  if (!ctx) {
38438
38446
  process.stderr.write("Error: Not authenticated\n");
38439
38447
  process.exit(1);
38440
38448
  }
38441
38449
  const args = {};
38450
+ if (opts.cursor !== void 0)
38451
+ args.cursor = opts.cursor;
38452
+ if (opts.includeTotal !== void 0)
38453
+ args.include_total = opts.includeTotal;
38454
+ if (opts.order !== void 0)
38455
+ args.order = opts.order;
38456
+ if (opts.sort !== void 0)
38457
+ args.sort = opts.sort;
38442
38458
  if (opts.name !== void 0)
38443
38459
  args.name = opts.name;
38444
38460
  if (opts["name.not"] !== void 0)
@@ -38611,17 +38627,18 @@ Examples:
38611
38627
  args.updated_at__gt = opts["updatedAt.gt"];
38612
38628
  if (opts["updatedAt.gte"] !== void 0)
38613
38629
  args.updated_at__gte = opts["updatedAt.gte"];
38614
- if (opts.take !== void 0)
38615
- args.take = Number(opts.take);
38616
- if (opts.skip !== void 0)
38617
- args.skip = Number(opts.skip);
38630
+ if (opts.limit !== void 0)
38631
+ args.limit = Number(opts.limit);
38618
38632
  await ctx.execute({
38619
38633
  method: "GET",
38620
- path: "/v1/customers",
38634
+ path: "/v2/customers",
38621
38635
  args,
38622
38636
  queryParamKeys: [
38623
- "take",
38624
- "skip",
38637
+ "limit",
38638
+ "cursor",
38639
+ "include_total",
38640
+ "order",
38641
+ "sort",
38625
38642
  "name",
38626
38643
  "name__not",
38627
38644
  "name__isNull",
@@ -38711,13 +38728,35 @@ Examples:
38711
38728
  ]
38712
38729
  });
38713
38730
  });
38731
+ resource.command("get").description(`Retrieve full details of a customer by ID including billing info, address, subscriptions, custom properties, integrations, payment method, and bank account.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
38732
+ Examples:
38733
+ hyperline customers get --id <id>`).action(async (opts) => {
38734
+ const ctx = resource.parent?.opts()._ctx;
38735
+ if (!ctx) {
38736
+ process.stderr.write("Error: Not authenticated\n");
38737
+ process.exit(1);
38738
+ }
38739
+ const args = {};
38740
+ if (opts.id !== void 0)
38741
+ args.id = opts.id;
38742
+ await ctx.execute({
38743
+ method: "GET",
38744
+ path: "/v2/customers/{id}",
38745
+ args,
38746
+ queryParamKeys: []
38747
+ });
38748
+ });
38714
38749
  resource.command("create-customer").description(`Create a new customer with billing details, address, currency, and optional provider mappings. Returns the full customer object.`).option("--name <value>", `Customer name.`).option("--type <value>", `
38715
38750
  Customer type.
38716
38751
 
38717
38752
  - \`corporate\`: The customer is a business entity.
38718
38753
  - \`person\`: The customer is a natural person.
38719
38754
  - \`automatically_created\`: The customer was automatically imported (e.g. from a data loader). This value cannot be used when creating/editing.
38720
- `).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment delay. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay for payment collection. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38755
+ `).option("--currency <value>", `Currency code. See [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--taxability <value>", `Customer taxability.
38756
+
38757
+ - \`taxable\`: Taxes are automatically determined for the customer.
38758
+ - \`exempt\`: The customer is exempt from tax.
38759
+ `).option("--registration-number <value>", `Customer registration number.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38721
38760
  How customer invoices are issued from the parent organisation.
38722
38761
 
38723
38762
  - \`none\`: Invoices will keep being issued from this customer.
@@ -38742,6 +38781,8 @@ Examples:
38742
38781
  args.currency = opts.currency;
38743
38782
  if (opts.taxIds !== void 0)
38744
38783
  args.tax_ids = opts.taxIds;
38784
+ if (opts.taxability !== void 0)
38785
+ args.taxability = opts.taxability;
38745
38786
  if (opts.registrationNumber !== void 0)
38746
38787
  args.registration_number = opts.registrationNumber;
38747
38788
  if (opts.externalId !== void 0)
@@ -38812,24 +38853,6 @@ Examples:
38812
38853
  queryParamKeys: []
38813
38854
  });
38814
38855
  });
38815
- resource.command("get").description(`Retrieve full details of a customer by ID including billing info, address, subscriptions, custom properties, and provider mappings.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
38816
- Examples:
38817
- hyperline customers get --id <id>`).action(async (opts) => {
38818
- const ctx = resource.parent?.opts()._ctx;
38819
- if (!ctx) {
38820
- process.stderr.write("Error: Not authenticated\n");
38821
- process.exit(1);
38822
- }
38823
- const args = {};
38824
- if (opts.id !== void 0)
38825
- args.id = opts.id;
38826
- await ctx.execute({
38827
- method: "GET",
38828
- path: "/v1/customers/{id}",
38829
- args,
38830
- queryParamKeys: []
38831
- });
38832
- });
38833
38856
  resource.command("get-customer-portal-url").description(`Get a portal URL for a customer. The portal allows the customer to view invoices, update payment methods, and manage their account.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
38834
38857
  Examples:
38835
38858
  hyperline customers get-customer-portal-url --id <id>`).action(async (opts) => {
@@ -38854,7 +38877,11 @@ Customer type.
38854
38877
  - \`corporate\`: The customer is a business entity.
38855
38878
  - \`person\`: The customer is a natural person.
38856
38879
  - \`automatically_created\`: The customer was automatically imported (e.g. from a data loader). This value cannot be used when creating/editing.
38857
- `).option("--currency <value>", `Customer currency. Can only be changed if the customer doesn't have existing invoices, a wallet or a payment method saved.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment delay. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay for payment collection. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38880
+ `).option("--currency <value>", `Customer currency. Can only be changed if the customer doesn't have existing invoices, a wallet or a payment method saved.`).option("--tax-ids <value>", `Customer tax IDs.`).option("--tax-rate-custom <number>", `Customer custom tax rate. If not defined, the rate will be automatically determined based on the customer's country, your country, and applicable legal requirements.`).option("--taxability <value>", `Customer taxability.
38881
+
38882
+ - \`taxable\`: Taxes are automatically determined for the customer.
38883
+ - \`exempt\`: The customer is exempt from tax.
38884
+ `).option("--registration-number <value>", `Customer registration number.`).option("--is-government-affiliated", `Indicates if the customer is affiliated with a government entity.`).option("--external-id <value>", `ID of the customer in your system. This helps matching your customer with the one on Hyperline.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity this customer will be attached to.`).option("--billing-address <value>", `Customer billing address.`).option("--shipping-address <value>", `Customer shipping address.`).option("--billing-email <value>", `Email to which all communications will be sent.`).option("--invoice-emails <value>", `Emails to which invoices will be sent (e.g. payer, finance team, accounting firm). If not defined, invoices will be sent to the \`billing_email\`; otherwise, they won't be sent to the \`billing_email\`.`).option("--language <value>", `Language used for invoices, emails, and hosted pages.`).option("--timezone <value>", `Customer timezone.`).option("--available-payment-methods <value>", `List of payment methods you allow your customer to pay with. You customer will be able to select one of them in their portal page and those will be the default options when creating a checkout session.`).option("--payment-method-type <value>", `Default payment method type used to pay subscriptions and one-off invoices.`).option("--payment-method-id <value>", `ID of the default payment method of the customer. Only applies to card and direct debit.`).option("--bank-account <value>", `Custom bank account for the customer. If not defined and customer paying by bank transfer, the bank accounts configured in your account settings will be used.`).option("--custom-payment-delay <number>", `Custom payment terms in days. If not defined, the default one defined on the related invoicing entity will be used.`).option("--custom-payment-initiation-delay <number>", `Custom initiation delay in days before triggering payment. If not defined, the default one defined on the related invoicing entity will be used.`).option("--organisation-id <value>", `Parent organization ID to which the client is attached.`).option("--organisation-invoicing <value>", `
38858
38885
  How customer invoices are issued from the parent organisation.
38859
38886
 
38860
38887
  - \`none\`: Invoices will keep being issued from this customer.
@@ -38881,6 +38908,8 @@ Examples:
38881
38908
  args.currency = opts.currency;
38882
38909
  if (opts.taxIds !== void 0)
38883
38910
  args.tax_ids = opts.taxIds;
38911
+ if (opts.taxability !== void 0)
38912
+ args.taxability = opts.taxability;
38884
38913
  if (opts.registrationNumber !== void 0)
38885
38914
  args.registration_number = opts.registrationNumber;
38886
38915
  if (opts.externalId !== void 0)
@@ -39816,16 +39845,20 @@ Examples:
39816
39845
  // build/commands/generated/invoices.js
39817
39846
  function registerInvoicesCommands(parent) {
39818
39847
  const resource = parent.command("invoices").description("Manage invoices");
39819
- resource.command("list").description(`List invoices with filters for type, status, customer_id, customer_external_id, subscription_id, invoicing_entity_id, invoice_number, period dates, emission_date, due_date, and updated_at. Sortable by created_at or emitted_at. By default, open invoices are excluded. Paginated with take/skip.`).option("--take <number>", `take`).option("--skip <number>", `skip`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--customer-external-id <value>", `customer_external_id`).option("--subscription-id <value>", `subscription_id`).option("--subscription-id.not <value>", `subscription_id__not`).option("--subscription-id.is-null <value>", `subscription_id__isNull`).option("--subscription-id.is-not-null <value>", `subscription_id__isNotNull`).option("--subscription-id.equals <value>", `subscription_id__equals`).option("--subscription-id.contains <value>", `subscription_id__contains`).option("--subscription-id.starts-with <value>", `subscription_id__startsWith`).option("--subscription-id.end-with <value>", `subscription_id__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--invoice-number <value>", `invoice_number`).option("--invoice-number.not <value>", `invoice_number__not`).option("--invoice-number.is-null <value>", `invoice_number__isNull`).option("--invoice-number.is-not-null <value>", `invoice_number__isNotNull`).option("--invoice-number.equals <value>", `invoice_number__equals`).option("--invoice-number.contains <value>", `invoice_number__contains`).option("--invoice-number.starts-with <value>", `invoice_number__startsWith`).option("--invoice-number.end-with <value>", `invoice_number__endWith`).option("--original-invoice-id <value>", `original_invoice_id`).option("--original-invoice-id.not <value>", `original_invoice_id__not`).option("--original-invoice-id.is-null <value>", `original_invoice_id__isNull`).option("--original-invoice-id.is-not-null <value>", `original_invoice_id__isNotNull`).option("--original-invoice-id.equals <value>", `original_invoice_id__equals`).option("--original-invoice-id.contains <value>", `original_invoice_id__contains`).option("--original-invoice-id.starts-with <value>", `original_invoice_id__startsWith`).option("--original-invoice-id.end-with <value>", `original_invoice_id__endWith`).option("--original-invoice-number <value>", `original_invoice_number`).option("--original-invoice-number.not <value>", `original_invoice_number__not`).option("--original-invoice-number.is-null <value>", `original_invoice_number__isNull`).option("--original-invoice-number.is-not-null <value>", `original_invoice_number__isNotNull`).option("--original-invoice-number.equals <value>", `original_invoice_number__equals`).option("--original-invoice-number.contains <value>", `original_invoice_number__contains`).option("--original-invoice-number.starts-with <value>", `original_invoice_number__startsWith`).option("--original-invoice-number.end-with <value>", `original_invoice_number__endWith`).option("--line-item-id <value>", `line_item_id`).option("--period-start <value>", `period_start`).option("--period-start.not <value>", `period_start__not`).option("--period-start.is-null <value>", `period_start__isNull`).option("--period-start.is-not-null <value>", `period_start__isNotNull`).option("--period-start.equals <value>", `period_start__equals`).option("--period-start.lt <value>", `period_start__lt`).option("--period-start.lte <value>", `period_start__lte`).option("--period-start.gt <value>", `period_start__gt`).option("--period-start.gte <value>", `period_start__gte`).option("--period-end <value>", `period_end`).option("--period-end.not <value>", `period_end__not`).option("--period-end.is-null <value>", `period_end__isNull`).option("--period-end.is-not-null <value>", `period_end__isNotNull`).option("--period-end.equals <value>", `period_end__equals`).option("--period-end.lt <value>", `period_end__lt`).option("--period-end.lte <value>", `period_end__lte`).option("--period-end.gt <value>", `period_end__gt`).option("--period-end.gte <value>", `period_end__gte`).option("--emission-date <value>", `emission_date`).option("--emission-date.not <value>", `emission_date__not`).option("--emission-date.is-null <value>", `emission_date__isNull`).option("--emission-date.is-not-null <value>", `emission_date__isNotNull`).option("--emission-date.equals <value>", `emission_date__equals`).option("--emission-date.lt <value>", `emission_date__lt`).option("--emission-date.lte <value>", `emission_date__lte`).option("--emission-date.gt <value>", `emission_date__gt`).option("--emission-date.gte <value>", `emission_date__gte`).option("--due-date <value>", `due_date`).option("--due-date.not <value>", `due_date__not`).option("--due-date.is-null <value>", `due_date__isNull`).option("--due-date.is-not-null <value>", `due_date__isNotNull`).option("--due-date.equals <value>", `due_date__equals`).option("--due-date.lt <value>", `due_date__lt`).option("--due-date.lte <value>", `due_date__lte`).option("--due-date.gt <value>", `due_date__gt`).option("--due-date.gte <value>", `due_date__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
39848
+ resource.command("list").description(`List invoices with filters for type, status, customer_id, customer_external_id, subscription_id, invoicing_entity_id, invoice_number, period dates, emission_date, due_date, and updated_at. Sortable by created_at or emitted_at. By default, open invoices are excluded. Paginated with limit/cursor.`).option("--limit <number>", `Maximum number of items to return (1-100).`).option("--cursor <value>", `Opaque cursor returned in the previous response's \`next_cursor\`. Omit to fetch the first page.`).option("--include-total <value>", `Set to \`true\` to include \`total\` in the response.`).option("--order <value>", `Sort direction.`).option("--sort <value>", `Field used to sort the results.`).option("--type <value>", `type`).option("--type.in <value>", `type__in`).option("--status <value>", `status`).option("--status.in <value>", `status__in`).option("--customer-id <value>", `customer_id`).option("--customer-id.not <value>", `customer_id__not`).option("--customer-id.is-null <value>", `customer_id__isNull`).option("--customer-id.is-not-null <value>", `customer_id__isNotNull`).option("--customer-id.equals <value>", `customer_id__equals`).option("--customer-id.contains <value>", `customer_id__contains`).option("--customer-id.starts-with <value>", `customer_id__startsWith`).option("--customer-id.end-with <value>", `customer_id__endWith`).option("--customer-external-id <value>", `customer_external_id`).option("--subscription-id <value>", `subscription_id`).option("--subscription-id.not <value>", `subscription_id__not`).option("--subscription-id.is-null <value>", `subscription_id__isNull`).option("--subscription-id.is-not-null <value>", `subscription_id__isNotNull`).option("--subscription-id.equals <value>", `subscription_id__equals`).option("--subscription-id.contains <value>", `subscription_id__contains`).option("--subscription-id.starts-with <value>", `subscription_id__startsWith`).option("--subscription-id.end-with <value>", `subscription_id__endWith`).option("--invoicing-entity-id <value>", `invoicing_entity_id`).option("--invoicing-entity-id.not <value>", `invoicing_entity_id__not`).option("--invoicing-entity-id.is-null <value>", `invoicing_entity_id__isNull`).option("--invoicing-entity-id.is-not-null <value>", `invoicing_entity_id__isNotNull`).option("--invoicing-entity-id.equals <value>", `invoicing_entity_id__equals`).option("--invoicing-entity-id.contains <value>", `invoicing_entity_id__contains`).option("--invoicing-entity-id.starts-with <value>", `invoicing_entity_id__startsWith`).option("--invoicing-entity-id.end-with <value>", `invoicing_entity_id__endWith`).option("--invoice-number <value>", `invoice_number`).option("--invoice-number.not <value>", `invoice_number__not`).option("--invoice-number.is-null <value>", `invoice_number__isNull`).option("--invoice-number.is-not-null <value>", `invoice_number__isNotNull`).option("--invoice-number.equals <value>", `invoice_number__equals`).option("--invoice-number.contains <value>", `invoice_number__contains`).option("--invoice-number.starts-with <value>", `invoice_number__startsWith`).option("--invoice-number.end-with <value>", `invoice_number__endWith`).option("--original-invoice-id <value>", `original_invoice_id`).option("--original-invoice-id.not <value>", `original_invoice_id__not`).option("--original-invoice-id.is-null <value>", `original_invoice_id__isNull`).option("--original-invoice-id.is-not-null <value>", `original_invoice_id__isNotNull`).option("--original-invoice-id.equals <value>", `original_invoice_id__equals`).option("--original-invoice-id.contains <value>", `original_invoice_id__contains`).option("--original-invoice-id.starts-with <value>", `original_invoice_id__startsWith`).option("--original-invoice-id.end-with <value>", `original_invoice_id__endWith`).option("--original-invoice-number <value>", `original_invoice_number`).option("--original-invoice-number.not <value>", `original_invoice_number__not`).option("--original-invoice-number.is-null <value>", `original_invoice_number__isNull`).option("--original-invoice-number.is-not-null <value>", `original_invoice_number__isNotNull`).option("--original-invoice-number.equals <value>", `original_invoice_number__equals`).option("--original-invoice-number.contains <value>", `original_invoice_number__contains`).option("--original-invoice-number.starts-with <value>", `original_invoice_number__startsWith`).option("--original-invoice-number.end-with <value>", `original_invoice_number__endWith`).option("--line-item-id <value>", `line_item_id`).option("--period-start <value>", `period_start`).option("--period-start.not <value>", `period_start__not`).option("--period-start.is-null <value>", `period_start__isNull`).option("--period-start.is-not-null <value>", `period_start__isNotNull`).option("--period-start.equals <value>", `period_start__equals`).option("--period-start.lt <value>", `period_start__lt`).option("--period-start.lte <value>", `period_start__lte`).option("--period-start.gt <value>", `period_start__gt`).option("--period-start.gte <value>", `period_start__gte`).option("--period-end <value>", `period_end`).option("--period-end.not <value>", `period_end__not`).option("--period-end.is-null <value>", `period_end__isNull`).option("--period-end.is-not-null <value>", `period_end__isNotNull`).option("--period-end.equals <value>", `period_end__equals`).option("--period-end.lt <value>", `period_end__lt`).option("--period-end.lte <value>", `period_end__lte`).option("--period-end.gt <value>", `period_end__gt`).option("--period-end.gte <value>", `period_end__gte`).option("--issued-at <value>", `issued_at`).option("--issued-at.not <value>", `issued_at__not`).option("--issued-at.is-null <value>", `issued_at__isNull`).option("--issued-at.is-not-null <value>", `issued_at__isNotNull`).option("--issued-at.equals <value>", `issued_at__equals`).option("--issued-at.lt <value>", `issued_at__lt`).option("--issued-at.lte <value>", `issued_at__lte`).option("--issued-at.gt <value>", `issued_at__gt`).option("--issued-at.gte <value>", `issued_at__gte`).option("--due-at <value>", `due_at`).option("--due-at.not <value>", `due_at__not`).option("--due-at.is-null <value>", `due_at__isNull`).option("--due-at.is-not-null <value>", `due_at__isNotNull`).option("--due-at.equals <value>", `due_at__equals`).option("--due-at.lt <value>", `due_at__lt`).option("--due-at.lte <value>", `due_at__lte`).option("--due-at.gt <value>", `due_at__gt`).option("--due-at.gte <value>", `due_at__gte`).option("--updated-at <value>", `updated_at`).option("--updated-at.not <value>", `updated_at__not`).option("--updated-at.is-null <value>", `updated_at__isNull`).option("--updated-at.is-not-null <value>", `updated_at__isNotNull`).option("--updated-at.equals <value>", `updated_at__equals`).option("--updated-at.lt <value>", `updated_at__lt`).option("--updated-at.lte <value>", `updated_at__lte`).option("--updated-at.gt <value>", `updated_at__gt`).option("--updated-at.gte <value>", `updated_at__gte`).addHelpText("after", `
39820
39849
  Examples:
39821
39850
  hyperline invoices list
39822
- hyperline invoices list --take <take> --order <order>`).action(async (opts) => {
39851
+ hyperline invoices list --limit <limit> --cursor <cursor>`).action(async (opts) => {
39823
39852
  const ctx = resource.parent?.opts()._ctx;
39824
39853
  if (!ctx) {
39825
39854
  process.stderr.write("Error: Not authenticated\n");
39826
39855
  process.exit(1);
39827
39856
  }
39828
39857
  const args = {};
39858
+ if (opts.cursor !== void 0)
39859
+ args.cursor = opts.cursor;
39860
+ if (opts.includeTotal !== void 0)
39861
+ args.include_total = opts.includeTotal;
39829
39862
  if (opts.order !== void 0)
39830
39863
  args.order = opts.order;
39831
39864
  if (opts.sort !== void 0)
@@ -39974,42 +40007,42 @@ Examples:
39974
40007
  args.period_end__gt = opts["periodEnd.gt"];
39975
40008
  if (opts["periodEnd.gte"] !== void 0)
39976
40009
  args.period_end__gte = opts["periodEnd.gte"];
39977
- if (opts.emissionDate !== void 0)
39978
- args.emission_date = opts.emissionDate;
39979
- if (opts["emissionDate.not"] !== void 0)
39980
- args.emission_date__not = opts["emissionDate.not"];
39981
- if (opts["emissionDate.isNull"] !== void 0)
39982
- args.emission_date__isNull = opts["emissionDate.isNull"];
39983
- if (opts["emissionDate.isNotNull"] !== void 0)
39984
- args.emission_date__isNotNull = opts["emissionDate.isNotNull"];
39985
- if (opts["emissionDate.equals"] !== void 0)
39986
- args.emission_date__equals = opts["emissionDate.equals"];
39987
- if (opts["emissionDate.lt"] !== void 0)
39988
- args.emission_date__lt = opts["emissionDate.lt"];
39989
- if (opts["emissionDate.lte"] !== void 0)
39990
- args.emission_date__lte = opts["emissionDate.lte"];
39991
- if (opts["emissionDate.gt"] !== void 0)
39992
- args.emission_date__gt = opts["emissionDate.gt"];
39993
- if (opts["emissionDate.gte"] !== void 0)
39994
- args.emission_date__gte = opts["emissionDate.gte"];
39995
- if (opts.dueDate !== void 0)
39996
- args.due_date = opts.dueDate;
39997
- if (opts["dueDate.not"] !== void 0)
39998
- args.due_date__not = opts["dueDate.not"];
39999
- if (opts["dueDate.isNull"] !== void 0)
40000
- args.due_date__isNull = opts["dueDate.isNull"];
40001
- if (opts["dueDate.isNotNull"] !== void 0)
40002
- args.due_date__isNotNull = opts["dueDate.isNotNull"];
40003
- if (opts["dueDate.equals"] !== void 0)
40004
- args.due_date__equals = opts["dueDate.equals"];
40005
- if (opts["dueDate.lt"] !== void 0)
40006
- args.due_date__lt = opts["dueDate.lt"];
40007
- if (opts["dueDate.lte"] !== void 0)
40008
- args.due_date__lte = opts["dueDate.lte"];
40009
- if (opts["dueDate.gt"] !== void 0)
40010
- args.due_date__gt = opts["dueDate.gt"];
40011
- if (opts["dueDate.gte"] !== void 0)
40012
- args.due_date__gte = opts["dueDate.gte"];
40010
+ if (opts.issuedAt !== void 0)
40011
+ args.issued_at = opts.issuedAt;
40012
+ if (opts["issuedAt.not"] !== void 0)
40013
+ args.issued_at__not = opts["issuedAt.not"];
40014
+ if (opts["issuedAt.isNull"] !== void 0)
40015
+ args.issued_at__isNull = opts["issuedAt.isNull"];
40016
+ if (opts["issuedAt.isNotNull"] !== void 0)
40017
+ args.issued_at__isNotNull = opts["issuedAt.isNotNull"];
40018
+ if (opts["issuedAt.equals"] !== void 0)
40019
+ args.issued_at__equals = opts["issuedAt.equals"];
40020
+ if (opts["issuedAt.lt"] !== void 0)
40021
+ args.issued_at__lt = opts["issuedAt.lt"];
40022
+ if (opts["issuedAt.lte"] !== void 0)
40023
+ args.issued_at__lte = opts["issuedAt.lte"];
40024
+ if (opts["issuedAt.gt"] !== void 0)
40025
+ args.issued_at__gt = opts["issuedAt.gt"];
40026
+ if (opts["issuedAt.gte"] !== void 0)
40027
+ args.issued_at__gte = opts["issuedAt.gte"];
40028
+ if (opts.dueAt !== void 0)
40029
+ args.due_at = opts.dueAt;
40030
+ if (opts["dueAt.not"] !== void 0)
40031
+ args.due_at__not = opts["dueAt.not"];
40032
+ if (opts["dueAt.isNull"] !== void 0)
40033
+ args.due_at__isNull = opts["dueAt.isNull"];
40034
+ if (opts["dueAt.isNotNull"] !== void 0)
40035
+ args.due_at__isNotNull = opts["dueAt.isNotNull"];
40036
+ if (opts["dueAt.equals"] !== void 0)
40037
+ args.due_at__equals = opts["dueAt.equals"];
40038
+ if (opts["dueAt.lt"] !== void 0)
40039
+ args.due_at__lt = opts["dueAt.lt"];
40040
+ if (opts["dueAt.lte"] !== void 0)
40041
+ args.due_at__lte = opts["dueAt.lte"];
40042
+ if (opts["dueAt.gt"] !== void 0)
40043
+ args.due_at__gt = opts["dueAt.gt"];
40044
+ if (opts["dueAt.gte"] !== void 0)
40045
+ args.due_at__gte = opts["dueAt.gte"];
40013
40046
  if (opts.updatedAt !== void 0)
40014
40047
  args.updated_at = opts.updatedAt;
40015
40048
  if (opts["updatedAt.not"] !== void 0)
@@ -40028,17 +40061,16 @@ Examples:
40028
40061
  args.updated_at__gt = opts["updatedAt.gt"];
40029
40062
  if (opts["updatedAt.gte"] !== void 0)
40030
40063
  args.updated_at__gte = opts["updatedAt.gte"];
40031
- if (opts.take !== void 0)
40032
- args.take = Number(opts.take);
40033
- if (opts.skip !== void 0)
40034
- args.skip = Number(opts.skip);
40064
+ if (opts.limit !== void 0)
40065
+ args.limit = Number(opts.limit);
40035
40066
  await ctx.execute({
40036
40067
  method: "GET",
40037
- path: "/v1/invoices",
40068
+ path: "/v2/invoices",
40038
40069
  args,
40039
40070
  queryParamKeys: [
40040
- "take",
40041
- "skip",
40071
+ "limit",
40072
+ "cursor",
40073
+ "include_total",
40042
40074
  "order",
40043
40075
  "sort",
40044
40076
  "type",
@@ -40113,24 +40145,24 @@ Examples:
40113
40145
  "period_end__lte",
40114
40146
  "period_end__gt",
40115
40147
  "period_end__gte",
40116
- "emission_date",
40117
- "emission_date__not",
40118
- "emission_date__isNull",
40119
- "emission_date__isNotNull",
40120
- "emission_date__equals",
40121
- "emission_date__lt",
40122
- "emission_date__lte",
40123
- "emission_date__gt",
40124
- "emission_date__gte",
40125
- "due_date",
40126
- "due_date__not",
40127
- "due_date__isNull",
40128
- "due_date__isNotNull",
40129
- "due_date__equals",
40130
- "due_date__lt",
40131
- "due_date__lte",
40132
- "due_date__gt",
40133
- "due_date__gte",
40148
+ "issued_at",
40149
+ "issued_at__not",
40150
+ "issued_at__isNull",
40151
+ "issued_at__isNotNull",
40152
+ "issued_at__equals",
40153
+ "issued_at__lt",
40154
+ "issued_at__lte",
40155
+ "issued_at__gt",
40156
+ "issued_at__gte",
40157
+ "due_at",
40158
+ "due_at__not",
40159
+ "due_at__isNull",
40160
+ "due_at__isNotNull",
40161
+ "due_at__equals",
40162
+ "due_at__lt",
40163
+ "due_at__lte",
40164
+ "due_at__gt",
40165
+ "due_at__gte",
40134
40166
  "updated_at",
40135
40167
  "updated_at__not",
40136
40168
  "updated_at__isNull",
@@ -40172,7 +40204,7 @@ Payment method strategy used to charge the invoice. Only applies to \`to_pay\` s
40172
40204
 
40173
40205
  - \`current\`: Use the current default payment method of the customer.
40174
40206
  - \`external\`: Manage the payment of the invoice outside of Hyperline.
40175
- `).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--subscription-id <value>", `ID of the subscription related to the invoice.`).option("--emitted-at <value>", `Issue date of the invoice.`).option("--due-at <value>", `Due date of the invoice. Computed from the issue date and the payment delay configured in your settings.`).option("--settled-at <value>", `Date the invoice was fully paid.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).requiredOption("--line-items <value>", `line_items`).option("--transactions <value>", `transactions`).option("--coupons <value>", `coupons`).addHelpText("after", `
40207
+ `).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--subscription-id <value>", `ID of the subscription related to the invoice.`).option("--emitted-at <value>", `Issue date of the invoice.`).option("--due-at <value>", `Due date of the invoice. Computed from the issue date and the payment delay configured in your settings.`).option("--settled-at <value>", `Date the invoice was fully paid.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `Values for custom properties defined for the \`invoice\` entity, keyed by slug.`).requiredOption("--line-items <value>", `line_items`).option("--transactions <value>", `transactions`).option("--coupons <value>", `coupons`).addHelpText("after", `
40176
40208
  Examples:
40177
40209
  hyperline invoices create-invoice --customer-id <customer_id> --line-items <line_items>
40178
40210
  hyperline invoices create-invoice --customer-id <customer_id> --line-items <line_items> --currency <currency> --status <status>
@@ -40225,6 +40257,8 @@ Examples:
40225
40257
  args.settled_at = opts.settledAt;
40226
40258
  if (opts.properties !== void 0)
40227
40259
  args.properties = opts.properties;
40260
+ if (opts.customProperties !== void 0)
40261
+ args.custom_properties = opts.customProperties;
40228
40262
  if (opts.lineItems !== void 0)
40229
40263
  args.line_items = opts.lineItems;
40230
40264
  if (opts.transactions !== void 0)
@@ -40238,10 +40272,15 @@ Examples:
40238
40272
  queryParamKeys: []
40239
40273
  });
40240
40274
  });
40241
- resource.command("create-credit-note").description(`Create a credit note for an existing invoice by ID. Credit notes partially or fully reverse an invoice amount.`).requiredOption("--id <value>", `id parameter`).option("--amount-including-tax <number>", `Amount of the credit note. If not specified, the amount will be computed from the original invoice.`).option("--status <value>", `Status of the credit note.
40275
+ resource.command("create-credit-note").description(`Create a credit note for an existing invoice by ID. Credit notes partially or fully reverse an invoice amount. Optionally trigger a refund via wallet, original payment method, or external settlement.`).requiredOption("--id <value>", `id parameter`).option("--amount-including-tax <number>", `Amount of the credit note. If not specified, the amount will be computed from the original invoice.`).option("--status <value>", `Status of the credit note.
40242
40276
 
40243
40277
  - \`to_pay\`: Credit note is awaiting payment.
40244
40278
  - \`draft\`: Credit note is in draft mode (not finalized yet).
40279
+ `).option("--trigger-refund", `Whether to trigger a refund for the credit note amount. Defaults to \`false\`. When \`true\`, the refund is issued using \`refund_method\`.`).option("--refund-method <value>", `How the refund should be settled. Only used when \`trigger_refund\` is \`true\`. Defaults to \`original_payment_method\`.
40280
+
40281
+ - \`wallet\`: Credit the customer's wallet with the refunded amount.
40282
+ - \`original_payment_method\`: Refund to the payment method used on the original invoice.
40283
+ - \`external\`: Mark the refund as settled externally (no automatic transfer).
40245
40284
  `).addHelpText("after", `
40246
40285
  Examples:
40247
40286
  hyperline invoices create-credit-note --id <id>
@@ -40257,8 +40296,12 @@ Examples:
40257
40296
  args.id = opts.id;
40258
40297
  if (opts.status !== void 0)
40259
40298
  args.status = opts.status;
40299
+ if (opts.refundMethod !== void 0)
40300
+ args.refund_method = opts.refundMethod;
40260
40301
  if (opts.amountIncludingTax !== void 0)
40261
40302
  args.amount_including_tax = Number(opts.amountIncludingTax);
40303
+ if (opts.triggerRefund !== void 0)
40304
+ args.trigger_refund = true;
40262
40305
  await ctx.execute({
40263
40306
  method: "POST",
40264
40307
  path: "/v1/invoices/{id}/credit-notes",
@@ -40370,7 +40413,7 @@ Examples:
40370
40413
  queryParamKeys: []
40371
40414
  });
40372
40415
  });
40373
- resource.command("get").description(`Retrieve full details of an invoice by ID including line items, transactions, customer info, and billing metadata.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
40416
+ resource.command("get").description(`Retrieve the details of an invoice by ID including line items, transactions, customer info, and billing metadata.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
40374
40417
  Examples:
40375
40418
  hyperline invoices get --id <id>`).action(async (opts) => {
40376
40419
  const ctx = resource.parent?.opts()._ctx;
@@ -40383,7 +40426,7 @@ Examples:
40383
40426
  args.id = opts.id;
40384
40427
  await ctx.execute({
40385
40428
  method: "GET",
40386
- path: "/v1/invoices/{id}",
40429
+ path: "/v2/invoices/{id}",
40387
40430
  args,
40388
40431
  queryParamKeys: []
40389
40432
  });
@@ -40397,7 +40440,7 @@ Examples:
40397
40440
 
40398
40441
  - \`auto\`: Tax is automatically computed and applied.
40399
40442
  - \`not_eligible\`: Tax collection is disabled for the invoice.
40400
- `).option("--line-items <value>", `line_items`).option("--coupons <value>", `coupons`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--customer <value>", `Override customer details on the invoice. Only allowed for draft or grace period invoices.`).addHelpText("after", `
40443
+ `).option("--line-items <value>", `line_items`).option("--coupons <value>", `coupons`).option("--payment-method-type <value>", `payment_method_type`).option("--payment-method-id <value>", `ID of the default payment method used to pay the invoice. Transactions related to the invoice may use different payment methods.`).option("--bank-account-id <value>", `ID of the bank account displayed on the invoice. Transactions related to the invoice may use different bank accounts.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `Values for custom properties defined for the \`invoice\` entity, keyed by slug.`).option("--customer <value>", `Override customer details on the invoice. Only allowed for draft or grace period invoices.`).addHelpText("after", `
40401
40444
  Examples:
40402
40445
  hyperline invoices update --id <id>
40403
40446
  hyperline invoices update --id <id> --type <type> --document-name <document_name>
@@ -40438,6 +40481,8 @@ Examples:
40438
40481
  args.bank_account_id = opts.bankAccountId;
40439
40482
  if (opts.properties !== void 0)
40440
40483
  args.properties = opts.properties;
40484
+ if (opts.customProperties !== void 0)
40485
+ args.custom_properties = opts.customProperties;
40441
40486
  if (opts.customer !== void 0)
40442
40487
  args.customer = opts.customer;
40443
40488
  await ctx.execute({
@@ -40630,7 +40675,7 @@ Examples:
40630
40675
  queryParamKeys: []
40631
40676
  });
40632
40677
  });
40633
- resource.command("create-invoicing-entity").description(`Create a new invoicing entity with company details, address, and tax configuration. Used as the sender on invoices.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).requiredOption("--name <value>", `The name of the invoicing entity.`).option("--trade-name <value>", `The trade name of the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).requiredOption("--country <value>", `The country in which the invoicing entity is registered.`).requiredOption("--currency <value>", `The currency code that the invoicing entity operates in.`).requiredOption("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--next-invoice-number <number>", `The next invoice number to be used.`).option("--next-credit-note-number <number>", `The next credit note number to be used.`).option("--next-document-number <number>", `The next document number to be used.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--quote-footer <value>", `The footer text to be used in quotes.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).addHelpText("after", `
40678
+ resource.command("create-invoicing-entity").description(`Create a new invoicing entity with company details, address, and tax configuration. Used as the sender on invoices.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).requiredOption("--name <value>", `The name of the invoicing entity.`).option("--trade-name <value>", `The trade name of the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).requiredOption("--country <value>", `The country in which the invoicing entity is registered.`).requiredOption("--currency <value>", `The currency code that the invoicing entity operates in.`).requiredOption("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--next-invoice-number <number>", `The next invoice number to be used.`).option("--next-credit-note-number <number>", `The next credit note number to be used.`).option("--next-document-number <number>", `The next document number to be used.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--quote-footer <value>", `The footer text to be used in quotes.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled, credit note refunds default to the customer's wallet for invoices under this invoicing entity. The default applies only when \`refund_method\` is omitted on \`POST /v1/invoices/{id}/credit-notes\`; an explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).addHelpText("after", `
40634
40679
  Examples:
40635
40680
  hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency>
40636
40681
  hyperline invoicing-entities create-invoicing-entity --name <name> --country <country> --currency <currency> --accounting-currency <accounting_currency> --is-default --trade-name <trade_name>
@@ -40709,6 +40754,8 @@ Examples:
40709
40754
  args.document_payment_initiation_delay = Number(opts.documentPaymentInitiationDelay);
40710
40755
  if (opts.isDefault !== void 0)
40711
40756
  args.is_default = true;
40757
+ if (opts.creditNoteWalletRefundEnabled !== void 0)
40758
+ args.credit_note_wallet_refund_enabled = true;
40712
40759
  await ctx.execute({
40713
40760
  method: "POST",
40714
40761
  path: "/v1/invoicing-entities",
@@ -40716,7 +40763,7 @@ Examples:
40716
40763
  queryParamKeys: []
40717
40764
  });
40718
40765
  });
40719
- resource.command("update-invoicing-entity").description(`Update an existing invoicing entity's details (address, tax ID, branding, etc.).`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `The name of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).option("--country <value>", `The country in which the invoicing entity is registered.`).option("--currency <value>", `The currency code that the invoicing entity operates in.`).option("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).addHelpText("after", `
40766
+ resource.command("update-invoicing-entity").description(`Update an existing invoicing entity's details (address, tax ID, branding, etc.).`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `The name of the invoicing entity.`).option("--registration-number <value>", `The registration number of the invoicing entity.`).option("--tax-id <value>", `The tax identification number of the invoicing entity.`).option("--billing-email <value>", `The billing email address for the invoicing entity.`).option("--timezone <value>", `The timezone the invoicing entity operates in.`).option("--language <value>", `The default language of the invoicing entity.`).option("--is-default", `Flag to indicate if this is the default invoicing entity. If true, it will switch the other existing invoicing entities to non-default.`).option("--address-line1 <value>", `The first line of the address for the invoicing entity.`).option("--address-line2 <value>", `The second line of the address for the invoicing entity.`).option("--zip-code <value>", `The postal code for the invoicing entity's address.`).option("--state <value>", `The state or province of the invoicing entity.`).option("--city <value>", `The city of the invoicing entity.`).option("--country <value>", `The country in which the invoicing entity is registered.`).option("--currency <value>", `The currency code that the invoicing entity operates in.`).option("--accounting-currency <value>", `The currency used for accounting purposes.`).option("--invoice-number-pattern <value>", `The pattern used for generating invoice numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--credit-note-number-pattern <value>", `The pattern used for generating credit note numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--document-number-pattern <value>", `The pattern used for generating document numbers. Available dynamic elements: number {number} (mandatory), year {YYYY}, month {MM} and day {DD}.`).option("--default-payment-delay <number>", `The default payment term in days.`).option("--invoice-grace-period-duration <number>", `The grace period duration in days.`).option("--invoice-payment-initiation-delay <number>", `The payment initiation delay in days for the invoices.`).option("--document-payment-initiation-delay <number>", `The payment initiation delay in days for the custom documents.`).option("--invoice-late-fees <value>", `The late fees applicable to the invoices.`).option("--invoice-footer <value>", `The footer text to be used in invoices.`).option("--document-footer <value>", `The footer text to be used in documents. If not specified, the invoice footer will be used.`).option("--logo-url <value>", `URL of the logo to be used in invoices.`).option("--favicon-url <value>", `URL of the logo to be used as favicon.`).option("--brand-color <value>", `Brand color to be used in invoices (hexadecimal color code).`).option("--forced-customer-type <value>", `Forces all customers created under this invoicing entity to have this type. Set to null to allow users to choose.`).option("--credit-note-wallet-refund-enabled", `When enabled, credit note refunds default to the customer's wallet for invoices under this invoicing entity. The default applies only when \`refund_method\` is omitted on \`POST /v1/invoices/{id}/credit-notes\`; an explicit \`refund_method\` always wins. Requires wallets to be enabled at the workspace level.`).addHelpText("after", `
40720
40767
  Examples:
40721
40768
  hyperline invoicing-entities update-invoicing-entity --id <id>
40722
40769
  hyperline invoicing-entities update-invoicing-entity --id <id> --name <name> --registration-number <registration_number>
@@ -40787,6 +40834,8 @@ Examples:
40787
40834
  args.document_payment_initiation_delay = Number(opts.documentPaymentInitiationDelay);
40788
40835
  if (opts.isDefault !== void 0)
40789
40836
  args.is_default = true;
40837
+ if (opts.creditNoteWalletRefundEnabled !== void 0)
40838
+ args.credit_note_wallet_refund_enabled = true;
40790
40839
  await ctx.execute({
40791
40840
  method: "PUT",
40792
40841
  path: "/v1/invoicing-entities/{id}",
@@ -41355,18 +41404,18 @@ Examples:
41355
41404
  // build/commands/generated/quotes.js
41356
41405
  function registerQuotesCommands(parent) {
41357
41406
  const resource = parent.command("quotes").description("Manage quotes");
41358
- resource.command("create").description(`Create a new quote for a customer with line items, products, and optional file attachments. Quotes can be sent for signature and converted to subscriptions.`).option("--status <value>", `
41407
+ resource.command("create").description(`Create a new quote for a customer. Use \`subscription\` (or \`template_id\`) for subscription quotes; use \`invoice\` for one-off quotes backed by a draft invoice with line items. Quotes can be sent for signature and converted to subscriptions or one-off invoices.`).option("--status <value>", `
41359
41408
  Quote status.
41360
41409
 
41361
41410
  - \`draft\`: The quote is a draft.
41362
41411
  - \`approved\`: The quote is approved and ready to be sent to the customer.
41363
41412
  - \`pending_signature\`: The quote is awaiting the customer's signature.
41364
- `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. If not specified, automatically computed from the subscription configuration.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41413
+ `).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner. If not specified, the Hyperline account owner will be assigned.`).requiredOption("--customer-id <value>", `ID of the customer.`).option("--invoicing-entity-id <value>", `ID of the invoicing entity attached to the quote.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. For subscription quotes, defaults to the computed subscription value if not specified. For one-off quotes, this field is ignored \u2014 the amount is always derived from the linked invoice's \`amount_excluding_tax\`.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41365
41414
 
41366
41415
  - \`all\`: Display all pricing tiers.
41367
41416
  - \`matching\`: Only display the tiers used to compute the price based on quantity.
41368
41417
  - \`none\`: Hide all pricing tiers.
41369
- `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--template-id <value>", `ID of the quote template. If not specified, a subscription configuration must be defined.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--subscription <value>", `Subscription configuration constituting the quote.`).addHelpText("after", `
41418
+ `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--template-id <value>", `ID of the quote template. If not specified, a subscription configuration or an \`invoice\` payload must be defined.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--subscription <value>", `Subscription configuration constituting the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided, a draft invoice is created and linked to the quote. Cannot be combined with \`subscription\` or \`template_id\`.`).addHelpText("after", `
41370
41419
  Examples:
41371
41420
  hyperline quotes create --customer-id <customer_id>
41372
41421
  hyperline quotes create --customer-id <customer_id> --status <status> --owner-email <owner_email>
@@ -41411,12 +41460,16 @@ Examples:
41411
41460
  args.display_documents_in_preview = opts.displayDocumentsInPreview;
41412
41461
  if (opts.displaySubscriptionOnUpdate !== void 0)
41413
41462
  args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
41463
+ if (opts.generateDraftInvoices !== void 0)
41464
+ args.generate_draft_invoices = opts.generateDraftInvoices;
41414
41465
  if (opts.templateId !== void 0)
41415
41466
  args.template_id = opts.templateId;
41416
41467
  if (opts.expiresAt !== void 0)
41417
41468
  args.expires_at = opts.expiresAt;
41418
41469
  if (opts.subscription !== void 0)
41419
41470
  args.subscription = opts.subscription;
41471
+ if (opts.invoice !== void 0)
41472
+ args.invoice = opts.invoice;
41420
41473
  if (opts.amount !== void 0)
41421
41474
  args.amount = Number(opts.amount);
41422
41475
  await ctx.execute({
@@ -41645,6 +41698,69 @@ Examples:
41645
41698
  queryParamKeys: []
41646
41699
  });
41647
41700
  });
41701
+ resource.command("update").description(`Update quote-level fields before a quote is finalized. On draft quotes, pass \`subscription\` to create or replace the draft subscription configuration, or pass \`invoice\` on a one-off quote to replace the linked draft invoice.`).requiredOption("--id <value>", `id parameter`).option("--owner-email <value>", `Email address of the Hyperline user acting as the quote owner.`).option("--comments <value>", `Custom comments displayed on the quote.`).option("--terms <value>", `Custom quotation terms.`).option("--amount <number>", `Estimated contract value. Set to \`null\` to clear the manually set value.`).option("--collect-payment-details <value>", `Collect customer payment method mandate during signature flow or not.`).option("--collect-custom-property-ids <value>", `IDs of the customer custom properties required to be filled during the signature flow.`).option("--require-tax-id <value>", `Require the customer to provide a tax ID during the signature flow.`).option("--display-quote-value <value>", `Display the total quote value on the quote.`).option("--display-quote-value-with-tax <value>", `Display the total quote value including tax on the quote. Only applies to \`one_off\` quotes.`).option("--display-taxes <value>", `Display tax breakdown on the quote.`).option("--display-price-tiers <value>", `Controls which price tiers are displayed on the quote.
41702
+
41703
+ - \`all\`: Display all pricing tiers.
41704
+ - \`matching\`: Only display the tiers used to compute the price based on quantity.
41705
+ - \`none\`: Hide all pricing tiers.
41706
+ `).option("--display-phase-value <value>", `Display per-phase value breakdown on the quote.`).option("--display-first-invoice-amount <value>", `Display the first invoice amount on the quote.`).option("--display-documents-in-preview <value>", `Display attached documents in the quote preview.`).option("--display-subscription-on-update <value>", `Display subscription details on subscription update quotes.`).option("--generate-draft-invoices <value>", `When \`true\`, the invoice issued after signature stays in \`draft\` status instead of being emitted for payment. Use this when you want to review the final invoice manually before sending it. Defaults to \`false\`.`).option("--expires-at <value>", `Quote expiration date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Set to \`null\` to clear the expiration.`).option("--subscription <value>", `Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.`).option("--invoice <value>", `Invoice configuration constituting the one-off quote. When provided on a draft one-off quote, it deletes the previous draft invoice and creates a fresh one linked to the quote. \`invoice.invoicing_entity_id\` is ignored on update \u2014 the quote's existing invoicing entity is reused.`).addHelpText("after", `
41707
+ Examples:
41708
+ hyperline quotes update --id <id>
41709
+ hyperline quotes update --id <id> --owner-email <owner_email> --comments <comments>
41710
+ hyperline quotes update --id <id> --output json`).action(async (opts) => {
41711
+ const ctx = resource.parent?.opts()._ctx;
41712
+ if (!ctx) {
41713
+ process.stderr.write("Error: Not authenticated\n");
41714
+ process.exit(1);
41715
+ }
41716
+ const args = {};
41717
+ if (opts.id !== void 0)
41718
+ args.id = opts.id;
41719
+ if (opts.ownerEmail !== void 0)
41720
+ args.owner_email = opts.ownerEmail;
41721
+ if (opts.comments !== void 0)
41722
+ args.comments = opts.comments;
41723
+ if (opts.terms !== void 0)
41724
+ args.terms = opts.terms;
41725
+ if (opts.collectPaymentDetails !== void 0)
41726
+ args.collect_payment_details = opts.collectPaymentDetails;
41727
+ if (opts.collectCustomPropertyIds !== void 0)
41728
+ args.collect_custom_property_ids = opts.collectCustomPropertyIds;
41729
+ if (opts.requireTaxId !== void 0)
41730
+ args.require_tax_id = opts.requireTaxId;
41731
+ if (opts.displayQuoteValue !== void 0)
41732
+ args.display_quote_value = opts.displayQuoteValue;
41733
+ if (opts.displayQuoteValueWithTax !== void 0)
41734
+ args.display_quote_value_with_tax = opts.displayQuoteValueWithTax;
41735
+ if (opts.displayTaxes !== void 0)
41736
+ args.display_taxes = opts.displayTaxes;
41737
+ if (opts.displayPriceTiers !== void 0)
41738
+ args.display_price_tiers = opts.displayPriceTiers;
41739
+ if (opts.displayPhaseValue !== void 0)
41740
+ args.display_phase_value = opts.displayPhaseValue;
41741
+ if (opts.displayFirstInvoiceAmount !== void 0)
41742
+ args.display_first_invoice_amount = opts.displayFirstInvoiceAmount;
41743
+ if (opts.displayDocumentsInPreview !== void 0)
41744
+ args.display_documents_in_preview = opts.displayDocumentsInPreview;
41745
+ if (opts.displaySubscriptionOnUpdate !== void 0)
41746
+ args.display_subscription_on_update = opts.displaySubscriptionOnUpdate;
41747
+ if (opts.generateDraftInvoices !== void 0)
41748
+ args.generate_draft_invoices = opts.generateDraftInvoices;
41749
+ if (opts.expiresAt !== void 0)
41750
+ args.expires_at = opts.expiresAt;
41751
+ if (opts.subscription !== void 0)
41752
+ args.subscription = opts.subscription;
41753
+ if (opts.invoice !== void 0)
41754
+ args.invoice = opts.invoice;
41755
+ if (opts.amount !== void 0)
41756
+ args.amount = Number(opts.amount);
41757
+ await ctx.execute({
41758
+ method: "PATCH",
41759
+ path: "/v1/quotes/{id}",
41760
+ args,
41761
+ queryParamKeys: []
41762
+ });
41763
+ });
41648
41764
  resource.command("download").description(`Download the PDF of a quote. Supports locale parameter for localization.`).requiredOption("--id <value>", `id parameter`).option("--locale <value>", `locale`).addHelpText("after", `
41649
41765
  Examples:
41650
41766
  hyperline quotes download --id <id>
@@ -41795,7 +41911,7 @@ Examples:
41795
41911
  // build/commands/generated/subscriptions.js
41796
41912
  function registerSubscriptionsCommands(parent) {
41797
41913
  const resource = parent.command("subscriptions").description("Manage subscriptions");
41798
- resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
41914
+ resource.command("create-subscription-update").description(`Apply a single update to an existing subscription (e.g. change quantity, add/remove product, modify price).`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--type <value>", `type`).requiredOption("--payload <value>", `payload`).addHelpText("after", `
41799
41915
  Examples:
41800
41916
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload>
41801
41917
  hyperline subscriptions create-subscription-update --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --type <type> --payload <payload> --apply-at <apply_at> --charge-at <charge_at>
@@ -41818,6 +41934,8 @@ Examples:
41818
41934
  args.charge_at = opts.chargeAt;
41819
41935
  if (opts.calculationMethod !== void 0)
41820
41936
  args.calculation_method = opts.calculationMethod;
41937
+ if (opts.refundMethod !== void 0)
41938
+ args.refund_method = opts.refundMethod;
41821
41939
  if (opts.type !== void 0)
41822
41940
  args.type = opts.type;
41823
41941
  if (opts.payload !== void 0)
@@ -41829,7 +41947,7 @@ Examples:
41829
41947
  queryParamKeys: []
41830
41948
  });
41831
41949
  });
41832
- resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
41950
+ resource.command("create-subscription-updates").description(`Apply multiple updates at once to an existing subscription in a single atomic operation.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
41833
41951
  Examples:
41834
41952
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
41835
41953
  hyperline subscriptions create-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
@@ -41852,6 +41970,8 @@ Examples:
41852
41970
  args.charge_at = opts.chargeAt;
41853
41971
  if (opts.calculationMethod !== void 0)
41854
41972
  args.calculation_method = opts.calculationMethod;
41973
+ if (opts.refundMethod !== void 0)
41974
+ args.refund_method = opts.refundMethod;
41855
41975
  if (opts.updates !== void 0)
41856
41976
  args.updates = opts.updates;
41857
41977
  await ctx.execute({
@@ -41861,7 +41981,7 @@ Examples:
41861
41981
  queryParamKeys: []
41862
41982
  });
41863
41983
  });
41864
- resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).addHelpText("after", `
41984
+ resource.command("cancel").description(`Cancel a subscription. Supports immediate or end-of-period cancellation. Optionally specify a cancellation reason.`).requiredOption("--id <value>", `id parameter`).option("--cancel-at <value>", `Subscription cancel date. UTC date time string in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.`).option("--reason <value>", `Reason for the cancellation.`).option("--pro-rata", `Indicates if the cancel should refund the customer using a pro rata strategy.`).option("--refund-method <value>", `Override the refund destination for the resulting credit note. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).addHelpText("after", `
41865
41985
  Examples:
41866
41986
  hyperline subscriptions cancel --id <id>
41867
41987
  hyperline subscriptions cancel --id <id> --cancel-at <cancel_at> --reason <reason>
@@ -41878,6 +41998,8 @@ Examples:
41878
41998
  args.cancel_at = opts.cancelAt;
41879
41999
  if (opts.reason !== void 0)
41880
42000
  args.reason = opts.reason;
42001
+ if (opts.refundMethod !== void 0)
42002
+ args.refund_method = opts.refundMethod;
41881
42003
  if (opts.proRata !== void 0)
41882
42004
  args.pro_rata = true;
41883
42005
  await ctx.execute({
@@ -41987,7 +42109,7 @@ Examples:
41987
42109
  queryParamKeys: []
41988
42110
  });
41989
42111
  });
41990
- resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
42112
+ resource.command("simulate-subscription-updates").description(`Preview the effect of updates on a subscription without applying them. Returns simulated invoice and billing impact.`).requiredOption("--id <value>", `id parameter`).requiredOption("--application-schedule <value>", `application_schedule`).option("--apply-at <value>", `The date when the update should be applied. Required when application_schedule is 'scheduled'.`).requiredOption("--payment-schedule <value>", `payment_schedule`).option("--charge-at <value>", `The date when the resulting subscription update should be charged. Required when payment_schedule is 'custom'. Must be in the future.`).requiredOption("--calculation-method <value>", `calculation_method`).option("--refund-method <value>", `Override the refund destination when the update generates a refund credit note (e.g. seat reduction). When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).requiredOption("--updates <value>", `updates`).addHelpText("after", `
41991
42113
  Examples:
41992
42114
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates>
41993
42115
  hyperline subscriptions simulate-subscription-updates --id <id> --application-schedule <application_schedule> --payment-schedule <payment_schedule> --calculation-method <calculation_method> --updates <updates> --apply-at <apply_at> --charge-at <charge_at>
@@ -42010,6 +42132,8 @@ Examples:
42010
42132
  args.charge_at = opts.chargeAt;
42011
42133
  if (opts.calculationMethod !== void 0)
42012
42134
  args.calculation_method = opts.calculationMethod;
42135
+ if (opts.refundMethod !== void 0)
42136
+ args.refund_method = opts.refundMethod;
42013
42137
  if (opts.updates !== void 0)
42014
42138
  args.updates = opts.updates;
42015
42139
  await ctx.execute({
@@ -42035,7 +42159,7 @@ Strategy used to cancel the subscription. If not specified \`do_nothing\` is use
42035
42159
  - \`refund_custom\`: Will refund to the customer a custom amount.
42036
42160
  - \`end_of_period\`: Will cancel the subscription at the end date of the current billing period.
42037
42161
  - \`do_nothing\`: Will only cease the subscription without any additional actions.
42038
- `).option("--cancellation-amount <number>", `Custom amount used when cancelling the subscription. Only applies to the \`charge_custom\` or the \`refund_custom\` cancellation strategy.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42162
+ `).option("--cancellation-amount <number>", `Custom amount used when cancelling the subscription. Only applies to the \`charge_custom\` or the \`refund_custom\` cancellation strategy.`).option("--cancellation-refund-method <value>", `Override the refund destination for credit notes generated by \`refund_prorata\` / \`refund_custom\` cancellation strategies. When omitted, falls back to the invoicing entity's \`creditNoteWalletRefundEnabled\` setting.`).option("--properties <value>", `Key/value pairs to store any metadata useful in your context.`).option("--custom-properties <value>", `A list of key value with the slug of the custom property as the key and the custom property value as value.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42039
42163
  Defines when invoices are generated relative to the billing period.
42040
42164
 
42041
42165
  - \`period_start\`: Invoices are generated at the start of the billing period.
@@ -42090,6 +42214,8 @@ Examples:
42090
42214
  args.cancel_at = opts.cancelAt;
42091
42215
  if (opts.cancellationStrategy !== void 0)
42092
42216
  args.cancellation_strategy = opts.cancellationStrategy;
42217
+ if (opts.cancellationRefundMethod !== void 0)
42218
+ args.cancellation_refund_method = opts.cancellationRefundMethod;
42093
42219
  if (opts.properties !== void 0)
42094
42220
  args.properties = opts.properties;
42095
42221
  if (opts.customProperties !== void 0)
@@ -42372,7 +42498,7 @@ Examples:
42372
42498
  queryParamKeys: []
42373
42499
  });
42374
42500
  });
42375
- resource.command("update").description(`Comprehensive subscription update: modify fields, manage phases (add/update/delete pending phases), update products within phases, and manage coupons. Payload mirrors GET response structure.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Subscription custom name.`).option("--purchase-order <value>", `Reference to the purchase order.`).option("--minimum-invoice-fee <number>", `Minimum fee applied to each invoice outside of one time payments.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42501
+ resource.command("update").description(`Comprehensive subscription update: modify fields, manage phases (add/update/delete pending phases), update products within phases, and manage coupons. Draft quote subscription configuration must be updated through PATCH /v1/quotes/{id}.`).requiredOption("--id <value>", `id parameter`).option("--name <value>", `Subscription custom name.`).option("--purchase-order <value>", `Reference to the purchase order.`).option("--minimum-invoice-fee <number>", `Minimum fee applied to each invoice outside of one time payments.`).option("--crm-opportunity-id <value>", `ID of the related opportunity/deal in the connected CRM.`).option("--tax-only <value>", `Only tax will be charged on this subscription.`).option("--generate-draft-invoices <value>", `Generate draft invoices for the subscription. Each invoice will need to be reviewed and validated manually before being sent`).option("--generate-document <value>", `Generate non-legal documents instead of invoices.`).option("--document-name <value>", `If \`generate_document\` is turned on, allows you to give a name to your document.`).option("--add-tax-to-document <value>", `If \`generate_document\` is turned on, will add taxes to document.`).option("--do-not-charge-subscription <value>", `Subscription will be invoiced but not charged (invoices/documents will be settled directly).`).option("--invoice-custom-note <value>", `Default custom note added to invoices generated by the subscription.`).option("--invoice-schedule <value>", `
42376
42502
  Defines when invoices are generated relative to the billing period.
42377
42503
 
42378
42504
  - \`period_start\`: Invoices are generated at the start of the billing period.
@@ -42946,6 +43072,30 @@ Examples:
42946
43072
  });
42947
43073
  }
42948
43074
 
43075
+ // build/commands/generated/transactions.js
43076
+ function registerTransactionsCommands(parent) {
43077
+ const resource = parent.command("transactions").description("Manage transactions");
43078
+ resource.command("refund").description(`Refund a settled banking transaction for its full amount. The related invoice will switch back to to pay status. Use the create credit note endpoint if you want to cancel (and optionally refund) the initial invoice.`).requiredOption("--id <value>", `id parameter`).addHelpText("after", `
43079
+ Examples:
43080
+ hyperline transactions refund --id <id>
43081
+ hyperline transactions refund --id <id> --output json`).action(async (opts) => {
43082
+ const ctx = resource.parent?.opts()._ctx;
43083
+ if (!ctx) {
43084
+ process.stderr.write("Error: Not authenticated\n");
43085
+ process.exit(1);
43086
+ }
43087
+ const args = {};
43088
+ if (opts.id !== void 0)
43089
+ args.id = opts.id;
43090
+ await ctx.execute({
43091
+ method: "POST",
43092
+ path: "/v1/transactions/{id}/refund",
43093
+ args,
43094
+ queryParamKeys: []
43095
+ });
43096
+ });
43097
+ }
43098
+
42949
43099
  // build/commands/generated/wallets.js
42950
43100
  function registerWalletsCommands(parent) {
42951
43101
  const resource = parent.command("wallets").description("Manage wallets");
@@ -43106,10 +43256,10 @@ Examples:
43106
43256
  queryParamKeys: []
43107
43257
  });
43108
43258
  });
43109
- resource.command("load").description(`Add credits to a wallet by charging the customer's payment method. The customer must have an active payment method.`).requiredOption("--id <value>", `id parameter`).option("--amount <number>", `Amount to be loaded onto the wallet. A corresponding invoice to pay will be generated. Expressed in currency's smallest unit.`).option("--amount-free <number>", `Amount free/offered to be loaded onto the wallet. No invoice is generated. Expressed in currency's smallest unit.`).option("--document-status <value>", `Indicates the status of the document (credit note in case of free top-up or invoice)`).addHelpText("after", `
43259
+ resource.command("load").description(`Add paid credits by charging the customer's payment method, or add free credits by issuing a credit note.`).requiredOption("--id <value>", `id parameter`).option("--type <value>", `Wallet load type. Use \`paid\` to collect payment from the customer's payment method, or \`free\` to grant credits without collecting payment.`).option("--amount <number>", `Amount to be loaded onto the wallet as free credits. A corresponding credit note will be generated and no payment is collected. Expressed in currency's smallest unit.`).option("--comment <value>", `Internal comment stored on the wallet transaction for context.`).option("--document-status <value>", `Indicates the status of the generated credit note for free top-ups.`).option("--bank-account-id <value>", `Bank account ID to use when recording a paid wallet load by bank transfer.`).option("--reference <value>", `Reference stored on the generated payment document for a paid wallet load.`).addHelpText("after", `
43110
43260
  Examples:
43111
43261
  hyperline wallets load --id <id>
43112
- hyperline wallets load --id <id> --amount <amount> --amount-free <amount_free>
43262
+ hyperline wallets load --id <id> --type <type> --amount <amount>
43113
43263
  hyperline wallets load --id <id> --output json`).action(async (opts) => {
43114
43264
  const ctx = resource.parent?.opts()._ctx;
43115
43265
  if (!ctx) {
@@ -43119,12 +43269,18 @@ Examples:
43119
43269
  const args = {};
43120
43270
  if (opts.id !== void 0)
43121
43271
  args.id = opts.id;
43272
+ if (opts.type !== void 0)
43273
+ args.type = opts.type;
43274
+ if (opts.comment !== void 0)
43275
+ args.comment = opts.comment;
43122
43276
  if (opts.documentStatus !== void 0)
43123
43277
  args.document_status = opts.documentStatus;
43278
+ if (opts.bankAccountId !== void 0)
43279
+ args.bank_account_id = opts.bankAccountId;
43280
+ if (opts.reference !== void 0)
43281
+ args.reference = opts.reference;
43124
43282
  if (opts.amount !== void 0)
43125
43283
  args.amount = Number(opts.amount);
43126
- if (opts.amountFree !== void 0)
43127
- args.amount_free = Number(opts.amountFree);
43128
43284
  await ctx.execute({
43129
43285
  method: "POST",
43130
43286
  path: "/v1/wallets/{id}/load",
@@ -43358,6 +43514,7 @@ function registerAllCommands(program2) {
43358
43514
  registerSubscriptions_TransitionsCommands(program2);
43359
43515
  registerSubscriptions_PhasesCommands(program2);
43360
43516
  registerTaxesCommands(program2);
43517
+ registerTransactionsCommands(program2);
43361
43518
  registerWalletsCommands(program2);
43362
43519
  registerWebhooksCommands(program2);
43363
43520
  }
@@ -57148,6 +57305,7 @@ var BooleanSchema = external_exports.boolean().or(external_exports.enum(["true",
57148
57305
  });
57149
57306
  var StringSchemaForMultipartForm = external_exports.string().transform((value) => value === "" ? null : value);
57150
57307
  var StringArraySchemaForMultipartForm = external_exports.string().array().or(external_exports.string().length(0)).transform((value) => typeof value === "string" ? [] : value);
57308
+ var CommaSeparatedArraySchema = external_exports.string().optional().transform((raw) => raw ? raw.split(",").filter(Boolean) : void 0);
57151
57309
  var urlRegex = /^(?:(?:https?):\/\/)?(?:www\.)?(?:[\w-]+\.)+[a-z]{2,7}(?:\/\S*)?$/i;
57152
57310
  var ZodFlexibleUrl = external_exports.string({ message: "Invalid URL" }).regex(urlRegex).transform((url2) => {
57153
57311
  if (!url2)
@@ -61460,6 +61618,7 @@ function getConfig(schema, testValues) {
61460
61618
  var config3 = getConfig({
61461
61619
  // config
61462
61620
  APP_VERSION: types.string().optional(),
61621
+ DD_SERVICE: types.string().optional(),
61463
61622
  LOGGER_CONSOLE_ENABLED: types.boolean().optional(),
61464
61623
  LOGGER_STDOUT_ENABLED: types.boolean().optional(),
61465
61624
  NODE_ENV: types.enum(["local", "test", "staging", "sandbox", "production"]),
@@ -61469,6 +61628,7 @@ var config3 = getConfig({
61469
61628
  // secrets
61470
61629
  }, {
61471
61630
  APP_VERSION: void 0,
61631
+ DD_SERVICE: void 0,
61472
61632
  LOGGER_CONSOLE_ENABLED: false,
61473
61633
  LOGGER_STDOUT_ENABLED: false,
61474
61634
  EVENT_LOOP_MONITORING_ENABLED: false,
@@ -61747,13 +61907,16 @@ var loggerFactory = buildLoggerFactory({
61747
61907
  },
61748
61908
  context: {
61749
61909
  env: config3.NODE_ENV,
61750
- service: "api",
61910
+ service: config3.DD_SERVICE ?? "api",
61751
61911
  version: config3.APP_VERSION
61752
61912
  }
61753
61913
  });
61754
61914
  var createLogger2 = loggerFactory.createLogger;
61755
61915
  var logger = loggerFactory.createLogger({ serviceName: "default" });
61756
61916
 
61917
+ // ../hyperline-monitoring/build/tracing/tracing.js
61918
+ import tracer from "dd-trace";
61919
+
61757
61920
  // ../hyperline-lib/build/utils/config/usStates.js
61758
61921
  var usStates = [
61759
61922
  "AA",
@@ -61904,7 +62067,7 @@ var PublicCursorPaginationParams = {
61904
62067
  description: "Opaque cursor returned in the previous response's `next_cursor`. Omit to fetch the first page."
61905
62068
  }),
61906
62069
  include_total: BooleanSchema.optional().default(false).openapi({
61907
- description: "Set to `true` to include `total` in the response. Off by default because computing the total runs a full COUNT(*) and is significantly slower on large datasets.",
62070
+ description: "Set to `true` to include `total` in the response.",
61908
62071
  example: false
61909
62072
  })
61910
62073
  };
@@ -61938,6 +62101,7 @@ var languages = [
61938
62101
  var de = {
61939
62102
  "accounting.invoicePosted.entryDescription": "Buchungseintrag f\xFCr Rechnung {{invoiceId}}",
61940
62103
  "accounting.transactionSettled.entryDescription": "Zahlungsabwicklung f\xFCr Rechnung {{invoiceId}}",
62104
+ "accounting.transactionRefunded.entryDescription": "R\xFCckerstattung f\xFCr Rechnung {{invoiceId}}",
61941
62105
  "accounting.creditNotePosted.entryDescription": "Gutschrift {{creditNoteId}} f\xFCr Rechnung {{invoiceId}}",
61942
62106
  "accounting.revrec.creditLineDescription": "Umsatz realisieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
61943
62107
  "accounting.revrec.debitLineDescription": "Abgrenzungsposten reduzieren \u2013 Zeitplan {{scheduleId}}, Zeitraum {{periodDate}}",
@@ -62003,6 +62167,7 @@ var en = {
62003
62167
  "subscriptions.updates.updateCount.description.full.not_committed.not_invoiced": "Amount of {{amount}} not invoiced for the full period",
62004
62168
  "accounting.invoicePosted.entryDescription": "Posting entry for Invoice {{invoiceId}} issued",
62005
62169
  "accounting.transactionSettled.entryDescription": "Payment settlement for Invoice {{invoiceId}}",
62170
+ "accounting.transactionRefunded.entryDescription": "Refund for Invoice {{invoiceId}}",
62006
62171
  "accounting.creditNotePosted.entryDescription": "Credit note {{creditNoteId}} for Invoice {{invoiceId}}",
62007
62172
  "accounting.revrec.entryDescription": "Revenue recognition for schedule {{scheduleId}}, period {{periodStart}} - {{periodEnd}}",
62008
62173
  "accounting.revrec.debitLineDescription": "Decrease deferred revenue \u2013 schedule {{scheduleId}}, period {{periodDate}}",
@@ -62018,6 +62183,7 @@ var en = {
62018
62183
  var es = {
62019
62184
  "accounting.invoicePosted.entryDescription": "Asiento contable para la factura {{invoiceId}}",
62020
62185
  "accounting.transactionSettled.entryDescription": "Liquidaci\xF3n de pago para la factura {{invoiceId}}",
62186
+ "accounting.transactionRefunded.entryDescription": "Reembolso de la factura {{invoiceId}}",
62021
62187
  "accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para la factura {{invoiceId}}",
62022
62188
  "accounting.revrec.creditLineDescription": "Reconocer ingresos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62023
62189
  "accounting.revrec.debitLineDescription": "Disminuci\xF3n de ingresos diferidos \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
@@ -62062,6 +62228,7 @@ var fr = {
62062
62228
  "accounting.revrec.discountDebitLineDescription": "Diminution des remises diff\xE9r\xE9es \u2013 \xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodDate}}",
62063
62229
  "accounting.invoicePosted.entryDescription": "\xC9criture de comptabilisation pour la facture {{invoiceId}}",
62064
62230
  "accounting.transactionSettled.entryDescription": "R\xE8glement de la facture {{invoiceId}}",
62231
+ "accounting.transactionRefunded.entryDescription": "Remboursement de la facture {{invoiceId}}",
62065
62232
  "accounting.creditNotePosted.entryDescription": "Avoir {{creditNoteId}} pour la facture {{invoiceId}}",
62066
62233
  "accounting.revrec.entryDescription": "Reconnaissance du chiffre d'affaires pour l'\xE9ch\xE9ancier {{scheduleId}}, p\xE9riode {{periodStart}} - {{periodEnd}}",
62067
62234
  "creditNotes.refundChargeName": "Remboursement pour facture",
@@ -62098,6 +62265,7 @@ var fr = {
62098
62265
  var it = {
62099
62266
  "accounting.invoicePosted.entryDescription": "Registrazione contabile per la fattura {{invoiceId}}",
62100
62267
  "accounting.transactionSettled.entryDescription": "Regolamento pagamento per la fattura {{invoiceId}}",
62268
+ "accounting.transactionRefunded.entryDescription": "Rimborso per la fattura {{invoiceId}}",
62101
62269
  "accounting.creditNotePosted.entryDescription": "Nota di credito {{creditNoteId}} per la fattura {{invoiceId}}",
62102
62270
  "accounting.revrec.creditLineDescription": "Riconoscere i ricavi \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
62103
62271
  "accounting.revrec.debitLineDescription": "Diminuzione dei ricavi differiti \u2013 programma {{scheduleId}}, periodo {{periodDate}}",
@@ -62138,6 +62306,7 @@ var it = {
62138
62306
  var nl = {
62139
62307
  "accounting.invoicePosted.entryDescription": "Boekingsregel voor factuur {{invoiceId}}",
62140
62308
  "accounting.transactionSettled.entryDescription": "Betalingsafwikkeling voor factuur {{invoiceId}}",
62309
+ "accounting.transactionRefunded.entryDescription": "Terugbetaling voor factuur {{invoiceId}}",
62141
62310
  "accounting.creditNotePosted.entryDescription": "Creditnota {{creditNoteId}} voor factuur {{invoiceId}}",
62142
62311
  "accounting.revrec.creditLineDescription": "Omzet erkennen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
62143
62312
  "accounting.revrec.debitLineDescription": "Uitgestelde omzet verlagen \u2013 schema {{scheduleId}}, periode {{periodDate}}",
@@ -62178,6 +62347,7 @@ var nl = {
62178
62347
  var pl = {
62179
62348
  "accounting.invoicePosted.entryDescription": "Zapis ksi\u0119gowy dla faktury {{invoiceId}}",
62180
62349
  "accounting.transactionSettled.entryDescription": "Rozliczenie p\u0142atno\u015Bci dla faktury {{invoiceId}}",
62350
+ "accounting.transactionRefunded.entryDescription": "Zwrot za faktur\u0119 {{invoiceId}}",
62181
62351
  "accounting.creditNotePosted.entryDescription": "Nota kredytowa {{creditNoteId}} dla faktury {{invoiceId}}",
62182
62352
  "accounting.revrec.creditLineDescription": "Rozpoznanie przychodu \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
62183
62353
  "accounting.revrec.debitLineDescription": "Zmniejszenie przychod\xF3w przysz\u0142ych okres\xF3w \u2013 harmonogram {{scheduleId}}, okres {{periodDate}}",
@@ -62218,6 +62388,7 @@ var pl = {
62218
62388
  var pt = {
62219
62389
  "accounting.invoicePosted.entryDescription": "Lan\xE7amento cont\xE1bil para a fatura {{invoiceId}}",
62220
62390
  "accounting.transactionSettled.entryDescription": "Liquida\xE7\xE3o de pagamento para a fatura {{invoiceId}}",
62391
+ "accounting.transactionRefunded.entryDescription": "Reembolso da fatura {{invoiceId}}",
62221
62392
  "accounting.creditNotePosted.entryDescription": "Nota de cr\xE9dito {{creditNoteId}} para a fatura {{invoiceId}}",
62222
62393
  "accounting.revrec.creditLineDescription": "Reconhecer receita \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
62223
62394
  "accounting.revrec.debitLineDescription": "Diminui\xE7\xE3o da receita diferida \u2013 cronograma {{scheduleId}}, per\xEDodo {{periodDate}}",
@@ -62452,6 +62623,9 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
62452
62623
 
62453
62624
  // ../hyperline-mcp/build/server/server.js
62454
62625
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
62626
+ var defaultToolOutputSchema = {
62627
+ result: external_exports.unknown()
62628
+ };
62455
62629
 
62456
62630
  // ../hyperline-mcp/build/session/sessionKey.js
62457
62631
  import { createHmac } from "node:crypto";
@@ -4,6 +4,7 @@
4
4
  "axios": "1.13.2",
5
5
  "axios-retry": "4.5.0",
6
6
  "commander": "13.1.0",
7
+ "dd-trace": "5.45.0",
7
8
  "dotenv": "16.3.1",
8
9
  "express": "5.2.1",
9
10
  "express-idempotency": "2.0.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperline/cli",
3
- "version": "0.1.0-build.1.2ba119b",
3
+ "version": "0.1.0-build.1.2d5778a",
4
4
  "description": "Agent-first CLI for Hyperline API",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -27,6 +27,7 @@
27
27
  "axios": "1.13.2",
28
28
  "axios-retry": "4.5.0",
29
29
  "commander": "13.1.0",
30
+ "dd-trace": "5.45.0",
30
31
  "dotenv": "16.3.1",
31
32
  "express": "5.2.1",
32
33
  "express-idempotency": "2.0.0",