lago-javascript-client 1.50.0 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1488,7 +1488,11 @@ export interface paths {
1488
1488
  */
1489
1489
  put: operations["updateInvoice"];
1490
1490
  post?: never;
1491
- delete?: never;
1491
+ /**
1492
+ * Delete a draft invoice
1493
+ * @description This endpoint is used for permanently deleting a `draft` invoice. Deleting a draft invoice removes it entirely: it never becomes accounts receivable, consumes no invoice number, and disappears from every list, export, and analytics surface. Only invoices in the `draft` status can be deleted; for a `finalized` invoice, void it instead.
1494
+ */
1495
+ delete: operations["deleteInvoice"];
1492
1496
  options?: never;
1493
1497
  head?: never;
1494
1498
  patch?: never;
@@ -3634,6 +3638,26 @@ export interface webhooks {
3634
3638
  patch?: never;
3635
3639
  trace?: never;
3636
3640
  };
3641
+ invoice_ready_to_finalize: {
3642
+ parameters: {
3643
+ query?: never;
3644
+ header?: never;
3645
+ path?: never;
3646
+ cookie?: never;
3647
+ };
3648
+ get?: never;
3649
+ put?: never;
3650
+ /**
3651
+ * A draft invoice is ready to be finalized
3652
+ * @description A draft invoice is ready to be finalized (taxes are resolved). Sent when the draft invoice is created if no tax provider call is pending, or once the tax provider has returned taxes for the draft invoice.
3653
+ */
3654
+ post: operations["invoiceReadyToFinalize"];
3655
+ delete?: never;
3656
+ options?: never;
3657
+ head?: never;
3658
+ patch?: never;
3659
+ trace?: never;
3660
+ };
3637
3661
  invoice_voided: {
3638
3662
  parameters: {
3639
3663
  query?: never;
@@ -3654,6 +3678,26 @@ export interface webhooks {
3654
3678
  patch?: never;
3655
3679
  trace?: never;
3656
3680
  };
3681
+ invoice_deleted: {
3682
+ parameters: {
3683
+ query?: never;
3684
+ header?: never;
3685
+ path?: never;
3686
+ cookie?: never;
3687
+ };
3688
+ get?: never;
3689
+ put?: never;
3690
+ /**
3691
+ * A draft invoice has been deleted
3692
+ * @description A draft invoice has been deleted
3693
+ */
3694
+ post: operations["invoiceDeleted"];
3695
+ delete?: never;
3696
+ options?: never;
3697
+ head?: never;
3698
+ patch?: never;
3699
+ trace?: never;
3700
+ };
3657
3701
  invoice_payment_dispute_lost: {
3658
3702
  parameters: {
3659
3703
  query?: never;
@@ -6988,6 +7032,55 @@ export interface components {
6988
7032
  shipping_address?: components["schemas"]["Address"];
6989
7033
  metadata?: components["schemas"]["CustomerMetadata"][];
6990
7034
  };
7035
+ /** @description Configuration specific to the accounting and tax integrations. This object contains settings and parameters necessary for syncing documents and payments. */
7036
+ IntegrationCustomer: {
7037
+ /**
7038
+ * Format: uuid
7039
+ * @description A unique identifier for the integration customer object in the Lago application.
7040
+ * @example 1a901a90-1a90-1a90-1a90-1a901a901a90
7041
+ */
7042
+ lago_id: string;
7043
+ /**
7044
+ * @description The integration type used for accounting and tax syncs.
7045
+ * Accepted values: `netsuite, anrok`.
7046
+ * @example netsuite
7047
+ * @enum {string}
7048
+ */
7049
+ type: "netsuite" | "anrok" | "xero" | "hubspot" | "salesforce";
7050
+ /**
7051
+ * @description Unique code used to identify an integration connection.
7052
+ * @example netsuite-eu-1
7053
+ */
7054
+ integration_code: string;
7055
+ /**
7056
+ * @description The customer ID within the integration's system. If this field is not provided, Lago has the option to create a new customer record within the integration's system on behalf of the customer.
7057
+ * @example cus_12345
7058
+ */
7059
+ external_customer_id: string;
7060
+ /**
7061
+ * @description Set this field to `true` if you want to create a customer record in the integration's system. This option is applicable only when the `external_customer_id` is null and the `sync_with_provider` field is set to `true`. By default, the value is set to `false`
7062
+ * @example true
7063
+ */
7064
+ sync_with_provider?: boolean | null;
7065
+ /**
7066
+ * @description This optional field is needed only when working with `netsuite` connection.
7067
+ * @example 2
7068
+ */
7069
+ subsidiary_id?: string;
7070
+ /**
7071
+ * @description This optional field is present only when working with `hubspot` connection.
7072
+ * @example contacts
7073
+ */
7074
+ targeted_object?: string | null;
7075
+ /**
7076
+ * @description This optional field is present only when working with `hubspot` connection.
7077
+ * @example dinesh@piedpiper.test
7078
+ */
7079
+ email?: string | null;
7080
+ };
7081
+ CustomerObject: components["schemas"]["CustomerBaseObject"] & {
7082
+ integration_customers?: components["schemas"]["IntegrationCustomer"][];
7083
+ };
6991
7084
  /**
6992
7085
  * @description Custom metadata stored as key-value pairs.
6993
7086
  * Keys are strings (max 100 characters), values can be strings (max 255 characters) or null.
@@ -7049,6 +7142,11 @@ export interface components {
7049
7142
  * @example LAG-1234
7050
7143
  */
7051
7144
  invoice_number: string;
7145
+ /**
7146
+ * @description The purchase order number of the invoice the credit note belongs to.
7147
+ * @example PO-123
7148
+ */
7149
+ purchase_order_number?: string | null;
7052
7150
  /**
7053
7151
  * Format: date
7054
7152
  * @description The date of creation of the credit note. It follows the ISO 8601 date format and provides the specific date when the credit note was created.
@@ -7162,7 +7260,7 @@ export interface components {
7162
7260
  * @example false
7163
7261
  */
7164
7262
  self_billed?: boolean;
7165
- customer?: components["schemas"]["CustomerBaseObject"];
7263
+ customer?: components["schemas"]["CustomerObject"];
7166
7264
  metadata?: components["schemas"]["MetadataObject"];
7167
7265
  error_details?: components["schemas"]["CreditNoteErrorDetailsObject"][] | null;
7168
7266
  };
@@ -7249,7 +7347,7 @@ export interface components {
7249
7347
  };
7250
7348
  };
7251
7349
  CreditNoteExtendedObject: components["schemas"]["CreditNoteObject"] & {
7252
- customer?: components["schemas"]["CustomerBaseObject"];
7350
+ customer?: components["schemas"]["CustomerObject"];
7253
7351
  };
7254
7352
  CreditNoteExtended: {
7255
7353
  credit_note: components["schemas"]["CreditNoteExtendedObject"];
@@ -7441,55 +7539,6 @@ export interface components {
7441
7539
  CreditNoteMetadataResponse: {
7442
7540
  metadata: components["schemas"]["MetadataObject"];
7443
7541
  };
7444
- /** @description Configuration specific to the accounting and tax integrations. This object contains settings and parameters necessary for syncing documents and payments. */
7445
- IntegrationCustomer: {
7446
- /**
7447
- * Format: uuid
7448
- * @description A unique identifier for the integration customer object in the Lago application.
7449
- * @example 1a901a90-1a90-1a90-1a90-1a901a901a90
7450
- */
7451
- lago_id: string;
7452
- /**
7453
- * @description The integration type used for accounting and tax syncs.
7454
- * Accepted values: `netsuite, anrok`.
7455
- * @example netsuite
7456
- * @enum {string}
7457
- */
7458
- type: "netsuite" | "anrok" | "xero" | "hubspot" | "salesforce";
7459
- /**
7460
- * @description Unique code used to identify an integration connection.
7461
- * @example netsuite-eu-1
7462
- */
7463
- integration_code: string;
7464
- /**
7465
- * @description The customer ID within the integration's system. If this field is not provided, Lago has the option to create a new customer record within the integration's system on behalf of the customer.
7466
- * @example cus_12345
7467
- */
7468
- external_customer_id: string;
7469
- /**
7470
- * @description Set this field to `true` if you want to create a customer record in the integration's system. This option is applicable only when the `external_customer_id` is null and the `sync_with_provider` field is set to `true`. By default, the value is set to `false`
7471
- * @example true
7472
- */
7473
- sync_with_provider?: boolean | null;
7474
- /**
7475
- * @description This optional field is needed only when working with `netsuite` connection.
7476
- * @example 2
7477
- */
7478
- subsidiary_id?: string;
7479
- /**
7480
- * @description This optional field is present only when working with `hubspot` connection.
7481
- * @example contacts
7482
- */
7483
- targeted_object?: string | null;
7484
- /**
7485
- * @description This optional field is present only when working with `hubspot` connection.
7486
- * @example dinesh@piedpiper.test
7487
- */
7488
- email?: string | null;
7489
- };
7490
- CustomerObject: components["schemas"]["CustomerBaseObject"] & {
7491
- integration_customers?: components["schemas"]["IntegrationCustomer"][];
7492
- };
7493
7542
  ErrorDetailObject: {
7494
7543
  /**
7495
7544
  * Format: uuid
@@ -7581,7 +7630,7 @@ export interface components {
7581
7630
  */
7582
7631
  logo_url?: string | null;
7583
7632
  /**
7584
- * @description The full name of the customer
7633
+ * @description The full name of the customer (255 characters max).
7585
7634
  * @example Gavin Belson
7586
7635
  */
7587
7636
  name?: string | null;
@@ -7752,6 +7801,11 @@ export interface components {
7752
7801
  * @example LAG-1234-001-002
7753
7802
  */
7754
7803
  number: string;
7804
+ /**
7805
+ * @description The purchase order number associated with the invoice. It is inherited from the subscription, wallet or wallet transaction the invoice was generated for.
7806
+ * @example PO-123
7807
+ */
7808
+ purchase_order_number?: string | null;
7755
7809
  /**
7756
7810
  * Format: date
7757
7811
  * @description The date when the invoice was issued. It is provided in the ISO 8601 date format.
@@ -7793,10 +7847,11 @@ export interface components {
7793
7847
  * - `voided`: the invoice has been issued and subsequently voided. In this state, events cannot be ingested or added to the invoice anymore.
7794
7848
  * - `pending`: the invoice remains pending until the taxes are fetched from the external provider.
7795
7849
  * - `failed`: during an attempt of finalization of the invoice, an error happened. This invoice will have an array of error_details, explaining, in which part of the system an error happened and how it's possible to fix it. This invoice can't be edited or updated, only retried. This action will discard current error_details and will create new ones if the finalization failed again.
7850
+ * - `deleted`: the draft invoice has been permanently deleted. This status is only returned by the delete endpoint and its webhook; a deleted invoice is no longer retrievable afterwards.
7796
7851
  * @example finalized
7797
7852
  * @enum {string}
7798
7853
  */
7799
- status: "draft" | "finalized" | "voided" | "failed" | "pending";
7854
+ status: "draft" | "finalized" | "voided" | "failed" | "pending" | "deleted";
7800
7855
  /**
7801
7856
  * @description The status of the payment associated with the invoice. It can have one of the following values:
7802
7857
  * - `pending`: the payment is pending, waiting for payment processing in Stripe or when the invoice is emitted but users have not updated the payment status through the endpoint.
@@ -7887,6 +7942,12 @@ export interface components {
7887
7942
  * @example https://getlago.com/invoice/file
7888
7943
  */
7889
7944
  file_url?: string;
7945
+ /**
7946
+ * Format: uri
7947
+ * @description Contains the URL to the invoice page in the Lago dashboard. It is `null` for invoices that are not visible in the dashboard (for example while still generating). Use it to link users directly to the invoice overview page.
7948
+ * @example https://app.getlago.com/acme/customer/1a901a90-1a90-1a90-1a90-1a901a901a90/invoice/2b012b01-2b01-2b01-2b01-2b012b012b01/overview
7949
+ */
7950
+ web_url?: string | null;
7890
7951
  /**
7891
7952
  * Format: date-time
7892
7953
  * @description The date of the invoice creation, represented in ISO 8601 datetime format and expressed in Coordinated Universal Time (UTC). The creation_date provides a standardized and internationally recognized timestamp for when the invoice object was created
@@ -7913,7 +7974,7 @@ export interface components {
7913
7974
  */
7914
7975
  key?: string;
7915
7976
  /**
7916
- * @description Represents the value of the metadata's key-value pair.
7977
+ * @description Represents the value of the metadata's key-value pair (140 characters max).
7917
7978
  * @example INV-0123456-98765
7918
7979
  */
7919
7980
  value?: string;
@@ -8460,14 +8521,15 @@ export interface components {
8460
8521
  */
8461
8522
  consolidate_invoice: boolean;
8462
8523
  /**
8463
- * @description The reason a payment-gated subscription was canceled before activation. Null unless the subscription was canceled by payment gating.
8524
+ * @description The reason a payment-gated subscription was canceled while still `incomplete`. Null unless the subscription was canceled before activation.
8464
8525
  *
8465
8526
  * - `payment_failed`: the gating payment failed.
8466
8527
  * - `timeout`: the activation rule expired before the payment succeeded.
8528
+ * - `manual`: the incomplete subscription was canceled on demand, via a terminate request with `status=incomplete`.
8467
8529
  * @example payment_failed
8468
8530
  * @enum {string|null}
8469
8531
  */
8470
- cancellation_reason?: "payment_failed" | "timeout" | null;
8532
+ cancellation_reason?: "payment_failed" | "timeout" | "manual" | null;
8471
8533
  /**
8472
8534
  * Format: date-time
8473
8535
  * @description The date and time when a payment-gated subscription was activated (i.e. moved from `incomplete` to `active` once the gating payment succeeded), represented in ISO 8601 datetime format and expressed in Coordinated Universal Time (UTC). Null while the subscription is still `incomplete`.
@@ -8476,11 +8538,25 @@ export interface components {
8476
8538
  activated_at?: string | null;
8477
8539
  /** @description The activation rules attached to the subscription. A payment activation rule gates activation on a successful first payment, keeping the subscription in the `incomplete` state until the payment succeeds or the rule expires. */
8478
8540
  activation_rules?: components["schemas"]["SubscriptionActivationRuleObject"][];
8541
+ /**
8542
+ * @description The purchase order number associated with the subscription. It will be added to invoices generated for this subscription.
8543
+ * @example PO-123
8544
+ */
8545
+ purchase_order_number?: string | null;
8479
8546
  };
8480
8547
  SubscriptionsPaginated: {
8481
8548
  subscriptions: components["schemas"]["SubscriptionObject"][];
8482
8549
  meta: components["schemas"]["PaginationMeta"];
8483
8550
  };
8551
+ /**
8552
+ * @description Fee type to which a wallet can be restricted. It can be any of the following values:
8553
+ * - `charge`
8554
+ * - `subscription`
8555
+ * - `commitment`
8556
+ * - `fixed_charge`
8557
+ * @enum {string}
8558
+ */
8559
+ WalletFeeTypeEnum: "charge" | "subscription" | "commitment" | "fixed_charge";
8484
8560
  /** @description Object that represents rule for wallet recurring transactions. */
8485
8561
  WalletRecurringTransactionRule: {
8486
8562
  /**
@@ -8594,6 +8670,11 @@ export interface components {
8594
8670
  applied_invoice_custom_sections?: components["schemas"]["AppliedInvoiceCustomSectionObject"][];
8595
8671
  /** @description The payment method assigned to this recurring transaction rule for processing top-up payments. */
8596
8672
  payment_method?: components["schemas"]["PaymentMethodReference"];
8673
+ /**
8674
+ * @description The purchase order number associated with this recurring transaction rule. It will be added to invoices generated for the resulting wallet top-ups. If not set, falls back to the wallet's `purchase_order_number`.
8675
+ * @example PO-123
8676
+ */
8677
+ purchase_order_number?: string | null;
8597
8678
  };
8598
8679
  WalletObject: {
8599
8680
  /**
@@ -8707,7 +8788,7 @@ export interface components {
8707
8788
  * "charge"
8708
8789
  * ]
8709
8790
  */
8710
- fee_types?: ("charge" | "subscription" | "commitment")[];
8791
+ fee_types?: components["schemas"]["WalletFeeTypeEnum"][];
8711
8792
  /**
8712
8793
  * @description An array of billable metric codes to which the wallet is applicable. By specifying the billable metric codes in this field, you can restrict the wallet's usage to specific metrics only.
8713
8794
  * @example [
@@ -8752,6 +8833,11 @@ export interface components {
8752
8833
  applied_invoice_custom_sections?: components["schemas"]["AppliedInvoiceCustomSectionObject"][];
8753
8834
  /** @description The payment method assigned to this wallet for processing top-up payments. */
8754
8835
  payment_method?: components["schemas"]["PaymentMethodReference"];
8836
+ /**
8837
+ * @description The purchase order number associated with the wallet. It will be added to invoices generated for wallet top-ups, unless a more specific purchase order number is set on the wallet transaction or recurring transaction rule that triggered the top-up.
8838
+ * @example PO-123
8839
+ */
8840
+ purchase_order_number?: string | null;
8755
8841
  metadata?: components["schemas"]["MetadataObject"];
8756
8842
  };
8757
8843
  WalletsPaginated: {
@@ -8855,6 +8941,11 @@ export interface components {
8855
8941
  * @example Tokens for models 'high-fidelity-boost'
8856
8942
  */
8857
8943
  transaction_name?: string | null;
8944
+ /**
8945
+ * @description The purchase order number associated with the wallet. It will be added to invoices generated for wallet top-ups, unless a more specific purchase order number is set on the wallet transaction or recurring transaction rule that triggered the top-up.
8946
+ * @example PO-123
8947
+ */
8948
+ purchase_order_number?: string | null;
8858
8949
  /** @description Set wallet limitations to fee types. */
8859
8950
  applies_to?: {
8860
8951
  /**
@@ -8863,7 +8954,7 @@ export interface components {
8863
8954
  * "charge"
8864
8955
  * ]
8865
8956
  */
8866
- fee_types?: ("charge" | "subscription" | "commitment")[] | null;
8957
+ fee_types?: components["schemas"]["WalletFeeTypeEnum"][] | null;
8867
8958
  /**
8868
8959
  * @description An array of billable metric codes to which the wallet is applicable. By specifying the billable metric codes in this field, you can restrict the wallet's usage to specific metrics only.
8869
8960
  * @example []
@@ -8972,6 +9063,11 @@ export interface components {
8972
9063
  * @example Tokens for models 'high-fidelity-boost'
8973
9064
  */
8974
9065
  transaction_name?: string | null;
9066
+ /**
9067
+ * @description The purchase order number associated with this recurring transaction rule. It will be added to invoices generated for the resulting wallet top-ups. If not set, falls back to the wallet's `purchase_order_number`.
9068
+ * @example PO-123
9069
+ */
9070
+ purchase_order_number?: string | null;
8975
9071
  /**
8976
9072
  * @description When true, allows rule to topped up wallet with transactions that exceed the paid top-up limits. Defaults to false.
8977
9073
  * @example false
@@ -9022,6 +9118,11 @@ export interface components {
9022
9118
  * @example default
9023
9119
  */
9024
9120
  billing_entity_code?: string;
9121
+ /**
9122
+ * @description The purchase order number associated with the wallet. It will be added to invoices generated for wallet top-ups, unless a more specific purchase order number is set on the wallet transaction or recurring transaction rule that triggered the top-up.
9123
+ * @example PO-123
9124
+ */
9125
+ purchase_order_number?: string | null;
9025
9126
  invoice_custom_section?: components["schemas"]["InvoiceCustomSectionInput"];
9026
9127
  /** @description List of recurring transaction rules. Currently, we only allow one recurring rule per wallet. */
9027
9128
  recurring_transaction_rules?: {
@@ -9115,6 +9216,11 @@ export interface components {
9115
9216
  * @example Tokens for models 'high-fidelity-boost'
9116
9217
  */
9117
9218
  transaction_name?: string | null;
9219
+ /**
9220
+ * @description The purchase order number associated with this recurring transaction rule. It will be added to invoices generated for the resulting wallet top-ups. If not set, falls back to the wallet's `purchase_order_number`.
9221
+ * @example PO-123
9222
+ */
9223
+ purchase_order_number?: string | null;
9118
9224
  invoice_custom_section?: components["schemas"]["InvoiceCustomSectionInput"];
9119
9225
  /** @description Optional payment method to use for processing recurring top-up payments. */
9120
9226
  payment_method?: components["schemas"]["PaymentMethodReference"];
@@ -9129,7 +9235,7 @@ export interface components {
9129
9235
  * "charge"
9130
9236
  * ]
9131
9237
  */
9132
- fee_types?: ("charge" | "subscription" | "commitment")[] | null;
9238
+ fee_types?: components["schemas"]["WalletFeeTypeEnum"][] | null;
9133
9239
  /**
9134
9240
  * @description An array of billable metric codes to which the wallet is applicable. By specifying the billable metric codes in this field, you can restrict the wallet's usage to specific metrics only.
9135
9241
  * @example []
@@ -10233,6 +10339,11 @@ export interface components {
10233
10339
  * @example EUR
10234
10340
  */
10235
10341
  currency?: components["schemas"]["Currency"];
10342
+ /**
10343
+ * @description The purchase order number to associate with the invoice.
10344
+ * @example PO-123
10345
+ */
10346
+ purchase_order_number?: string | null;
10236
10347
  fees: {
10237
10348
  /**
10238
10349
  * @description The code of the add-on used as invoice item.
@@ -10364,7 +10475,7 @@ export interface components {
10364
10475
  */
10365
10476
  key?: string;
10366
10477
  /**
10367
- * @description The value in the key-value pair of the metadata.
10478
+ * @description The value in the key-value pair of the metadata (140 characters max).
10368
10479
  * @example INV-0123456-98765
10369
10480
  */
10370
10481
  value?: string;
@@ -12998,7 +13109,10 @@ export interface components {
12998
13109
  /** @description List of taxes applied to the fixed charge. */
12999
13110
  tax_codes?: components["schemas"]["TaxCodes"];
13000
13111
  }[];
13001
- /** @description List of usage thresholds applied to the subscription. */
13112
+ /**
13113
+ * @deprecated
13114
+ * @description **Deprecated.** Managing usage thresholds through `plan_overrides` is deprecated and its behavior is inconsistent: an empty array does not reliably clear thresholds (it is ignored the first time a subscription is overridden), and it never affects thresholds inherited from a parent plan. Use the top-level `usage_thresholds` array on the subscription instead, or `progressive_billing_disabled` to switch progressive billing off.
13115
+ */
13002
13116
  usage_thresholds?: components["schemas"]["UsageThresholdInput"][];
13003
13117
  metadata?: components["schemas"]["MetadataInput"];
13004
13118
  };
@@ -13095,6 +13209,25 @@ export interface components {
13095
13209
  * @example true
13096
13210
  */
13097
13211
  consolidate_invoice: boolean;
13212
+ /**
13213
+ * @description The purchase order number associated with the subscription. It will be added to invoices generated for this subscription.
13214
+ * @example PO-123
13215
+ */
13216
+ purchase_order_number?: string | null;
13217
+ /**
13218
+ * @description Disables progressive billing for this subscription, regardless of any usage thresholds defined on the plan (including thresholds inherited from a parent plan when the subscription runs on a plan override).
13219
+ *
13220
+ * Set to `true` to switch progressive billing off for this subscription specifically, without changing the plan's thresholds.
13221
+ * @default false
13222
+ * @example true
13223
+ */
13224
+ progressive_billing_disabled: boolean;
13225
+ /**
13226
+ * @description Usage thresholds managed directly on the subscription. This is the recommended way to set progressive billing thresholds per subscription; when present, they take precedence over the thresholds defined on the plan.
13227
+ *
13228
+ * This field cannot be combined with `plan_overrides.usage_thresholds` in the same request.
13229
+ */
13230
+ usage_thresholds?: components["schemas"]["UsageThresholdInput"][];
13098
13231
  /** @description Optional list of activation rules that gate the subscription activation. When a `payment` rule is provided and the plan is paid in advance (and the subscription is not in a trial), the subscription is created in the `incomplete` state and is only activated once the gating payment succeeds. If the payment fails or the rule's `timeout_hours` elapses, the subscription is canceled. */
13099
13232
  activation_rules?: components["schemas"]["SubscriptionActivationRuleInput"][];
13100
13233
  };
@@ -13167,6 +13300,25 @@ export interface components {
13167
13300
  * @example default
13168
13301
  */
13169
13302
  billing_entity_code?: string;
13303
+ /**
13304
+ * @description The purchase order number associated with the subscription. It will be added to invoices generated for this subscription.
13305
+ * @example PO-123
13306
+ */
13307
+ purchase_order_number?: string | null;
13308
+ /**
13309
+ * @description Disables progressive billing for this subscription, regardless of any usage thresholds defined on the plan (including thresholds inherited from a parent plan when the subscription runs on a plan override).
13310
+ *
13311
+ * Set to `true` to switch progressive billing off for this subscription specifically. This is the recommended way to stop progressive billing on a subscription that inherits thresholds from its plan, since clearing `usage_thresholds` only removes subscription-level thresholds and does not remove those defined on (or inherited from) the plan.
13312
+ * @default false
13313
+ * @example true
13314
+ */
13315
+ progressive_billing_disabled: boolean;
13316
+ /**
13317
+ * @description Usage thresholds managed directly on the subscription. This is the recommended way to set progressive billing thresholds per subscription; when present, they take precedence over the thresholds defined on the plan.
13318
+ *
13319
+ * Sending an empty array removes all subscription-level thresholds. This field cannot be combined with `plan_overrides.usage_thresholds` in the same request. To fully disable progressive billing on a subscription that inherits thresholds from its plan, use `progressive_billing_disabled` instead.
13320
+ */
13321
+ usage_thresholds?: components["schemas"]["UsageThresholdInput"][];
13170
13322
  /** @description Optional list of activation rules that gate the subscription activation. Activation rules can only be set or modified while the subscription is `pending` (future-dated and not yet activated); the request is rejected for `incomplete`, `active`, or `terminated` subscriptions. */
13171
13323
  activation_rules?: components["schemas"]["SubscriptionActivationRuleInput"][];
13172
13324
  };
@@ -13556,6 +13708,11 @@ export interface components {
13556
13708
  * @example false
13557
13709
  */
13558
13710
  ignore_paid_top_up_limits?: boolean;
13711
+ /**
13712
+ * @description The purchase order number associated with this wallet transaction. It will be added to invoices generated for the resulting wallet top-up. If not set, falls back to the wallet's `purchase_order_number`.
13713
+ * @example PO-123
13714
+ */
13715
+ purchase_order_number?: string | null;
13559
13716
  invoice_custom_section?: components["schemas"]["InvoiceCustomSectionInput"];
13560
13717
  /** @description Optional payment method to use for processing the wallet transaction payment. */
13561
13718
  payment_method?: components["schemas"]["PaymentMethodReference"];
@@ -13711,6 +13868,11 @@ export interface components {
13711
13868
  applied_invoice_custom_sections?: components["schemas"]["AppliedInvoiceCustomSectionObject"][];
13712
13869
  /** @description The payment method assigned to this wallet transaction for processing the payment. */
13713
13870
  payment_method: components["schemas"]["PaymentMethodReference"];
13871
+ /**
13872
+ * @description The purchase order number associated with this wallet transaction. It will be added to invoices generated for the resulting wallet top-up. If not set, falls back to the wallet's `purchase_order_number`.
13873
+ * @example PO-123
13874
+ */
13875
+ purchase_order_number?: string | null;
13714
13876
  };
13715
13877
  WalletTransactions: {
13716
13878
  wallet_transactions: components["schemas"]["WalletTransactionObject"][];
@@ -13834,8 +13996,8 @@ export interface components {
13834
13996
  */
13835
13997
  lago_organization_id: string;
13836
13998
  /**
13837
- * @description The name of the wallet.
13838
- * @example Prepaid
13999
+ * @description The URL of the webhook endpoint.
14000
+ * @example https://foo.bar
13839
14001
  */
13840
14002
  webhook_url: string;
13841
14003
  /**
@@ -13844,6 +14006,19 @@ export interface components {
13844
14006
  * @enum {string}
13845
14007
  */
13846
14008
  signature_algo?: "jwt" | "hmac";
14009
+ /**
14010
+ * @description The name of the webhook.
14011
+ * @example EC2-production
14012
+ */
14013
+ name?: string | null;
14014
+ /**
14015
+ * @description A list of event types that will trigger the webhook. Passing null means that all event types will be sent.
14016
+ * @example [
14017
+ * "invoice.voided",
14018
+ * "customer.created"
14019
+ * ]
14020
+ */
14021
+ event_types?: string[] | null;
13847
14022
  /**
13848
14023
  * Format: date-time
13849
14024
  * @description The date of the webhook endpoint creation, represented in ISO 8601 datetime format and expressed in Coordinated Universal Time (UTC).
@@ -13868,6 +14043,19 @@ export interface components {
13868
14043
  * @enum {string|null}
13869
14044
  */
13870
14045
  signature_algo?: "jwt" | "hmac" | null;
14046
+ /**
14047
+ * @description The name of the webhook.
14048
+ * @example EC2-production
14049
+ */
14050
+ name?: string | null;
14051
+ /**
14052
+ * @description A list of event types that will trigger the webhook. Passing null means that all event types will be sent.
14053
+ * @example [
14054
+ * "invoice.voided",
14055
+ * "customer.created"
14056
+ * ]
14057
+ */
14058
+ event_types?: string[] | null;
13871
14059
  };
13872
14060
  };
13873
14061
  WebhookEndpoint: {
@@ -13886,6 +14074,19 @@ export interface components {
13886
14074
  * @enum {string|null}
13887
14075
  */
13888
14076
  signature_algo?: "jwt" | "hmac" | null;
14077
+ /**
14078
+ * @description The name of the webhook.
14079
+ * @example EC2-production
14080
+ */
14081
+ name?: string | null;
14082
+ /**
14083
+ * @description A list of event types that will trigger the webhook. Passing null means that all event types will be sent.
14084
+ * @example [
14085
+ * "invoice.voided",
14086
+ * "customer.created"
14087
+ * ]
14088
+ */
14089
+ event_types?: string[] | null;
13889
14090
  };
13890
14091
  };
13891
14092
  TriggeredAlertObject: {
@@ -14455,6 +14656,8 @@ export interface components {
14455
14656
  external_subscription_id: string;
14456
14657
  /** @description Show data only for given number of months. */
14457
14658
  months: number;
14659
+ /** @description Filter by the invoice purchase order number. The match is exact but case-insensitive. */
14660
+ purchase_order_number: string;
14458
14661
  /** @description The customer external unique identifier (provided by your own application) */
14459
14662
  external_customer_id_path: string;
14460
14663
  /** @description Filter by payment status. Possible values are `pending`, `failed` or `succeeded`. */
@@ -15617,6 +15820,8 @@ export interface operations {
15617
15820
  refund_status?: "pending" | "succeeded" | "failed";
15618
15821
  /** @description Filter credit notes by their related invoice number. */
15619
15822
  invoice_number?: string;
15823
+ /** @description Filter by the invoice purchase order number. The match is exact but case-insensitive. */
15824
+ purchase_order_number?: components["parameters"]["purchase_order_number"];
15620
15825
  /** @description Filter credit notes of at least a specific amount. This parameter must be defined in cents to ensure consistent handling for all currency types. */
15621
15826
  amount_from?: number;
15622
15827
  /** @description Filter credit notes up to a specific amount. This parameter must be defined in cents to ensure consistent handling for all currency types. */
@@ -16128,6 +16333,8 @@ export interface operations {
16128
16333
  refund_status?: "pending" | "succeeded" | "failed";
16129
16334
  /** @description Filter credit notes by their related invoice number. */
16130
16335
  invoice_number?: string;
16336
+ /** @description Filter by the invoice purchase order number. The match is exact but case-insensitive. */
16337
+ purchase_order_number?: components["parameters"]["purchase_order_number"];
16131
16338
  /** @description Filter credit notes of at least a specific amount. This parameter must be defined in cents to ensure consistent handling for all currency types. */
16132
16339
  amount_from?: number;
16133
16340
  /** @description Filter credit notes up to a specific amount. This parameter must be defined in cents to ensure consistent handling for all currency types. */
@@ -16188,6 +16395,8 @@ export interface operations {
16188
16395
  self_billed?: boolean;
16189
16396
  /** @description Filter invoices by metadata. Replace `key` with the actual metadata key you want to match, and provide the corresponding value. Providing empty value will search for invoice without given metadata key. For example, `metadata[color]=blue`. */
16190
16397
  "metadata[key]"?: string;
16398
+ /** @description Filter by the invoice purchase order number. The match is exact but case-insensitive. */
16399
+ purchase_order_number?: components["parameters"]["purchase_order_number"];
16191
16400
  };
16192
16401
  header?: never;
16193
16402
  path: {
@@ -17435,6 +17644,8 @@ export interface operations {
17435
17644
  "billing_entity_codes[]"?: string[];
17436
17645
  /** @description Filter invoices by metadata. Replace `key` with the actual metadata key you want to match, and provide the corresponding value. Providing empty value will search for invoice without given metadata key. For example, `metadata[color]=blue`. */
17437
17646
  "metadata[key]"?: string;
17647
+ /** @description Filter by the invoice purchase order number. The match is exact but case-insensitive. */
17648
+ purchase_order_number?: components["parameters"]["purchase_order_number"];
17438
17649
  };
17439
17650
  header?: never;
17440
17651
  path?: never;
@@ -17539,6 +17750,32 @@ export interface operations {
17539
17750
  422: components["responses"]["UnprocessableEntity"];
17540
17751
  };
17541
17752
  };
17753
+ deleteInvoice: {
17754
+ parameters: {
17755
+ query?: never;
17756
+ header?: never;
17757
+ path: {
17758
+ /** @description Unique identifier assigned to the invoice within the Lago application. This ID is exclusively created by Lago and serves as a unique identifier for the invoice's record within the Lago system. */
17759
+ lago_id: components["parameters"]["lago_invoice_id"];
17760
+ };
17761
+ cookie?: never;
17762
+ };
17763
+ requestBody?: never;
17764
+ responses: {
17765
+ /** @description Invoice deleted */
17766
+ 200: {
17767
+ headers: {
17768
+ [name: string]: unknown;
17769
+ };
17770
+ content: {
17771
+ "application/json": components["schemas"]["Invoice"];
17772
+ };
17773
+ };
17774
+ 401: components["responses"]["Unauthorized"];
17775
+ 404: components["responses"]["NotFound"];
17776
+ 405: components["responses"]["NotAllowed"];
17777
+ };
17778
+ };
17542
17779
  downloadInvoice: {
17543
17780
  parameters: {
17544
17781
  query?: never;
@@ -19061,7 +19298,12 @@ export interface operations {
19061
19298
  destroySubscription: {
19062
19299
  parameters: {
19063
19300
  query?: {
19064
- /** @description If the field is not defined, Lago will terminate only `active` subscriptions. However, if you wish to cancel a `pending` subscription, please ensure that you include `status=pending` in your request. */
19301
+ /**
19302
+ * @description Selects which subscription to terminate for the given `external_id`, based on its status. If the field is not defined, Lago targets only `active` subscriptions.
19303
+ *
19304
+ * - `pending`: cancel a subscription scheduled for a future activation (include `status=pending`).
19305
+ * - `incomplete`: cancel a payment-gated subscription that is still awaiting its activation payment (include `status=incomplete`). The subscription is canceled with `cancellation_reason: manual`, its invoice is closed and nothing is billed, and any pending payment is canceled on a best-effort basis with the payment provider (some provider statuses cannot be canceled). Applied coupons, credit notes and wallet credits are recredited. Termination behaviours (`on_termination_credit_note`, `on_termination_invoice`) are ignored, as an incomplete subscription has never been billed.
19306
+ */
19065
19307
  status?: string;
19066
19308
  /**
19067
19309
  * @description When a pay-in-advance subscription is terminated before the end of its billing period, we generate a credit note for the unused subscription time by default.
@@ -21976,6 +22218,48 @@ export interface operations {
21976
22218
  };
21977
22219
  };
21978
22220
  };
22221
+ invoiceReadyToFinalize: {
22222
+ parameters: {
22223
+ query?: never;
22224
+ header: {
22225
+ /** @description Signature of the webhook payload */
22226
+ "X-Lago-Signature": components["parameters"]["webhook_signature"];
22227
+ /** @description Algorithm used to generate the signature */
22228
+ "X-Lago-Signature-Algorithm": components["parameters"]["webhook_signature_algorithm"];
22229
+ /** @description Unique id of the webhook. It can be used for idempotency */
22230
+ "X-Lago-Unique-Key": components["parameters"]["webhook_unique_key"];
22231
+ };
22232
+ path?: never;
22233
+ cookie?: never;
22234
+ };
22235
+ /** @description Details of the draft invoice ready to be finalized */
22236
+ requestBody?: {
22237
+ content: {
22238
+ "application/json": {
22239
+ /** @enum {string} */
22240
+ webhook_type: "invoice.ready_to_finalize";
22241
+ /** @enum {string} */
22242
+ object_type: "invoice";
22243
+ /**
22244
+ * Format: uuid
22245
+ * @description Unique identifier of the organization, created by Lago.
22246
+ * @example 1a901a90-1a90-1a90-1a90-1a901a901a90
22247
+ */
22248
+ organization_id: string;
22249
+ invoice: components["schemas"]["InvoiceObjectExtended"];
22250
+ };
22251
+ };
22252
+ };
22253
+ responses: {
22254
+ /** @description Return a 200 status to indicate that the data was received successfully */
22255
+ 200: {
22256
+ headers: {
22257
+ [name: string]: unknown;
22258
+ };
22259
+ content?: never;
22260
+ };
22261
+ };
22262
+ };
21979
22263
  invoiceVoided: {
21980
22264
  parameters: {
21981
22265
  query?: never;
@@ -22018,6 +22302,48 @@ export interface operations {
22018
22302
  };
22019
22303
  };
22020
22304
  };
22305
+ invoiceDeleted: {
22306
+ parameters: {
22307
+ query?: never;
22308
+ header: {
22309
+ /** @description Signature of the webhook payload */
22310
+ "X-Lago-Signature": components["parameters"]["webhook_signature"];
22311
+ /** @description Algorithm used to generate the signature */
22312
+ "X-Lago-Signature-Algorithm": components["parameters"]["webhook_signature_algorithm"];
22313
+ /** @description Unique id of the webhook. It can be used for idempotency */
22314
+ "X-Lago-Unique-Key": components["parameters"]["webhook_unique_key"];
22315
+ };
22316
+ path?: never;
22317
+ cookie?: never;
22318
+ };
22319
+ /** @description Details of the invoice */
22320
+ requestBody?: {
22321
+ content: {
22322
+ "application/json": {
22323
+ /** @enum {string} */
22324
+ webhook_type: "invoice.deleted";
22325
+ /** @enum {string} */
22326
+ object_type: "invoice";
22327
+ /**
22328
+ * Format: uuid
22329
+ * @description Unique identifier of the organization, created by Lago.
22330
+ * @example 1a901a90-1a90-1a90-1a90-1a901a901a90
22331
+ */
22332
+ organization_id: string;
22333
+ invoice: components["schemas"]["InvoiceObjectExtended"];
22334
+ };
22335
+ };
22336
+ };
22337
+ responses: {
22338
+ /** @description Return a 200 status to indicate that the data was received successfully */
22339
+ 200: {
22340
+ headers: {
22341
+ [name: string]: unknown;
22342
+ };
22343
+ content?: never;
22344
+ };
22345
+ };
22346
+ };
22021
22347
  invoicePaymentDisputeLost: {
22022
22348
  parameters: {
22023
22349
  query?: never;