@epilot/sdk 2.20.28 → 2.20.30
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.
- package/definitions/integration-toolkit.json +18 -17
- package/definitions/pricing-runtime.json +1 -1
- package/definitions/pricing.json +865 -3585
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/chat.cjs +6 -6
- package/dist/apis/chat.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/integration-toolkit.cjs +18 -6
- package/dist/apis/integration-toolkit.d.cts +2 -2
- package/dist/apis/integration-toolkit.d.ts +2 -2
- package/dist/apis/integration-toolkit.js +13 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +8 -8
- package/dist/apis/pricing.d.cts +2 -2
- package/dist/apis/pricing.d.ts +2 -2
- package/dist/apis/pricing.js +2 -2
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-UM53DB6T.cjs → chunk-FZAVCO4Z.cjs} +3 -3
- package/dist/{chunk-W5PMKQO7.js → chunk-L7M2HFK3.js} +3 -3
- package/dist/{chunk-7Q3JW72Y.js → chunk-OHYTCUUB.js} +1 -1
- package/dist/{chunk-QLWDOKGE.cjs → chunk-UKHR33EL.cjs} +1 -1
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/integration-toolkit-FM53LFD7.cjs +7 -0
- package/dist/integration-toolkit-PUA7B6YT.js +7 -0
- package/dist/{integration-toolkit.d--hon4GPp.d.cts → integration-toolkit.d-CEY26qJu.d.cts} +49 -73
- package/dist/{integration-toolkit.d--hon4GPp.d.ts → integration-toolkit.d-CEY26qJu.d.ts} +49 -73
- package/dist/pricing-QERD2QHS.cjs +7 -0
- package/dist/pricing-XJ7PKOWG.js +7 -0
- package/dist/{pricing-runtime-MJAIO4AY.js → pricing-runtime-AT27C3BP.js} +1 -1
- package/dist/{pricing-runtime-NMRZO6J4.cjs → pricing-runtime-PFVTRERK.cjs} +2 -2
- package/dist/{pricing.d-CuF7KcXt.d.cts → pricing.d-BKrHrQxy.d.cts} +2780 -11112
- package/dist/{pricing.d-CuF7KcXt.d.ts → pricing.d-BKrHrQxy.d.ts} +2780 -11112
- package/docs/integration-toolkit.md +261 -12
- package/docs/pricing.md +292 -1412
- package/package.json +1 -1
- package/dist/integration-toolkit-FHPQSYLH.js +0 -7
- package/dist/integration-toolkit-YBZJK4IG.cjs +0 -7
- package/dist/pricing-WMGQHFJV.cjs +0 -7
- package/dist/pricing-WNSMDD5D.js +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-NJK5F5TF.cjs');
|
|
2
|
-
|
|
3
|
-
// src/docs/pricing.json
|
|
4
|
-
var pricing_default = '# Pricing API\n\n- **Base URL:** `https://pricing-api.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/pricing](https://docs.epilot.io/api/pricing)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.pricing.$calculatePricingDetails(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/pricing\'\n\nconst pricingClient = getClient()\nauthorize(pricingClient, () => \'<token>\')\nconst { data } = await pricingClient.$calculatePricingDetails(...)\n```\n\n## Operations\n\n**Order API**\n- [`$calculatePricingDetails`](#$calculatepricingdetails)\n- [`createOrder`](#createorder)\n- [`putOrder`](#putorder)\n\n**Cart API**\n- [`$checkoutCart`](#$checkoutcart)\n\n**Catalog API**\n- [`$searchCatalog`](#$searchcatalog)\n- [`$privateSearchCatalog`](#$privatesearchcatalog)\n\n**Promo Codes API**\n- [`$validatePromoCodes`](#$validatepromocodes)\n\n**Availability API**\n- [`$availabilityCheck`](#$availabilitycheck)\n- [`$validateAvailabilityFile`](#$validateavailabilityfile)\n\n**Spot Market API**\n- [`$historicMarketPrices`](#$historicmarketprices)\n- [`$averageMarketPrice`](#$averagemarketprice)\n\n**External Integrations API**\n- [`$searchExternalProducts`](#$searchexternalproducts)\n- [`$searchExternalProductRecommendations`](#$searchexternalproductrecommendations)\n- [`$searchProviders`](#$searchproviders)\n- [`$searchStreets`](#$searchstreets)\n- [`$computePrice`](#$computeprice)\n- [`$getCredentials`](#$getcredentials)\n- [`$saveCredentials`](#$savecredentials)\n- [`$deleteCredentials`](#$deletecredentials)\n\n**External Catalog API**\n- [`$getExternalCatalogProducts`](#$getexternalcatalogproducts)\n- [`$getExternalCatalogProductRecommendations`](#$getexternalcatalogproductrecommendations)\n\n**Product Recommendations API**\n- [`$productRecommendations`](#$productrecommendations)\n\n**Conditional Pricing API**\n- [`$getConditionSets`](#$getconditionsets)\n- [`$resolveConditionalEntity`](#$resolveconditionalentity)\n- [`$createConditionalVariant`](#$createconditionalvariant)\n- [`$listConditionalVariants`](#$listconditionalvariants)\n- [`$getConditionalVariantTree`](#$getconditionalvarianttree)\n- [`$getActiveConditionalVariantVersion`](#$getactiveconditionalvariantversion)\n- [`$replaceActiveConditionalVariantVersion`](#$replaceactiveconditionalvariantversion)\n- [`$patchActiveConditionalVariantVersion`](#$patchactiveconditionalvariantversion)\n- [`$deleteConditionalVariant`](#$deleteconditionalvariant)\n- [`$listConditionalVariantVersions`](#$listconditionalvariantversions)\n- [`$appendConditionalVariantVersion`](#$appendconditionalvariantversion)\n- [`$getConditionalVariantVersion`](#$getconditionalvariantversion)\n- [`$replaceConditionalVariantVersion`](#$replaceconditionalvariantversion)\n- [`$patchConditionalVariantVersion`](#$patchconditionalvariantversion)\n- [`$deleteConditionalVariantVersion`](#$deleteconditionalvariantversion)\n- [`$batchUpsertConditionalVariants`](#$batchupsertconditionalvariants)\n- [`$batchDeleteConditionalVariants`](#$batchdeleteconditionalvariants)\n\n**Schemas**\n- [`IntegrationId`](#integrationid)\n- [`ConditionalEntitySlug`](#conditionalentityslug)\n- [`ConditionType`](#conditiontype)\n- [`ConditionDefinition`](#conditiondefinition)\n- [`ConditionSet`](#conditionset)\n- [`ConditionSetCatalog`](#conditionsetcatalog)\n- [`ConditionalPricingErrorCode`](#conditionalpricingerrorcode)\n- [`ResolveConditionalEntityRequest`](#resolveconditionalentityrequest)\n- [`ResolveByContextRequest`](#resolvebycontextrequest)\n- [`ResolveByPinRequest`](#resolvebypinrequest)\n- [`ResolveContext`](#resolvecontext)\n- [`ResolveOptions`](#resolveoptions)\n- [`PinnedResolveOptions`](#pinnedresolveoptions)\n- [`ResolvedVariants`](#resolvedvariants)\n- [`ResolvedVariant`](#resolvedvariant)\n- [`CreateVariantRequest`](#createvariantrequest)\n- [`VariantConditions`](#variantconditions)\n- [`PinnedConditions`](#pinnedconditions)\n- [`VariantValues`](#variantvalues)\n- [`CreatedVariant`](#createdvariant)\n- [`WriteWarning`](#writewarning)\n- [`VersionMoved`](#versionmoved)\n- [`InertOverride`](#inertoverride)\n- [`InertOverrideReason`](#inertoverridereason)\n- [`DeletedVariant`](#deletedvariant)\n- [`VariantVersion`](#variantversion)\n- [`WrittenVariantVersion`](#writtenvariantversion)\n- [`DeletedVariantVersion`](#deletedvariantversion)\n- [`AppendVersionRequest`](#appendversionrequest)\n- [`ReplaceVersionRequest`](#replaceversionrequest)\n- [`PatchVersionRequest`](#patchversionrequest)\n- [`ListVariantsRequest`](#listvariantsrequest)\n- [`VariantTreeRequest`](#varianttreerequest)\n- [`VariantConditionFilter`](#variantconditionfilter)\n- [`VariantList`](#variantlist)\n- [`VariantListRow`](#variantlistrow)\n- [`VariantTree`](#varianttree)\n- [`VariantTreeRow`](#varianttreerow)\n- [`VariantTreeRowStatus`](#varianttreerowstatus)\n- [`VariantVersionSnapshot`](#variantversionsnapshot)\n- [`VariantVersionList`](#variantversionlist)\n- [`BatchUpsertVariantsRequest`](#batchupsertvariantsrequest)\n- [`BatchUpsertItem`](#batchupsertitem)\n- [`BatchDeleteVariantsRequest`](#batchdeletevariantsrequest)\n- [`BatchDeleteItem`](#batchdeleteitem)\n- [`BatchDeleteByVariantId`](#batchdeletebyvariantid)\n- [`BatchDeleteByConditions`](#batchdeletebyconditions)\n- [`BatchUpsertResult`](#batchupsertresult)\n- [`BatchDeleteResult`](#batchdeleteresult)\n- [`BatchUpsertOutcome`](#batchupsertoutcome)\n- [`BatchDeleteOutcome`](#batchdeleteoutcome)\n- [`BatchUpsertCounts`](#batchupsertcounts)\n- [`BatchDeleteCounts`](#batchdeletecounts)\n- [`BatchUpsertResultEntry`](#batchupsertresultentry)\n- [`BatchDeleteResultEntry`](#batchdeleteresultentry)\n- [`Error`](#error)\n- [`ReportedError`](#reportederror)\n- [`ConditionalPricingError`](#conditionalpricingerror)\n- [`Product`](#product)\n- [`Opportunity`](#opportunity)\n- [`Order`](#order)\n- [`Price`](#price)\n- [`BaseCompositePrice`](#basecompositeprice)\n- [`NonHydratedCompositePrice`](#nonhydratedcompositeprice)\n- [`HydratedCompositePrice`](#hydratedcompositeprice)\n- [`CompositePrice`](#compositeprice)\n- [`PriceComponentRelation`](#pricecomponentrelation)\n- [`MetaData`](#metadata)\n- [`PriceInputMappings`](#priceinputmappings)\n- [`PriceInputMapping`](#priceinputmapping)\n- [`PriceConditions`](#priceconditions)\n- [`ExternalFeeMetadata`](#externalfeemetadata)\n- [`ExternalLocationMetadata`](#externallocationmetadata)\n- [`ExternalPriceMetadata`](#externalpricemetadata)\n- [`ExternalFeeMappings`](#externalfeemappings)\n- [`ExternalFeeMapping`](#externalfeemapping)\n- [`CatalogSearch`](#catalogsearch)\n- [`CatalogFieldsParam`](#catalogfieldsparam)\n- [`CatalogSearchResult`](#catalogsearchresult)\n- [`SearchProvidersParams`](#searchprovidersparams)\n- [`SearchStreetsParams`](#searchstreetsparams)\n- [`AvailabilityCheckParams`](#availabilitycheckparams)\n- [`AvailabilityResult`](#availabilityresult)\n- [`ValidateAvailabilityFileError`](#validateavailabilityfileerror)\n- [`IntegrationCredentialsResult`](#integrationcredentialsresult)\n- [`SaveIntegrationCredentialsParams`](#saveintegrationcredentialsparams)\n- [`ComputePriceParamsBase`](#computepriceparamsbase)\n- [`ComputePriceParamsPower`](#computepriceparamspower)\n- [`ComputePriceParamsGas`](#computepriceparamsgas)\n- [`SignatureMeta`](#signaturemeta)\n- [`ComputedBasePrice`](#computedbaseprice)\n- [`ComputePriceParams`](#computepriceparams)\n- [`GasConcessionType`](#gasconcessiontype)\n- [`PowerMeterType`](#powermetertype)\n- [`DynamicTariffMode`](#dynamictariffmode)\n- [`DynamicTariffInterval`](#dynamictariffinterval)\n- [`ComputedPriceBreakdown`](#computedpricebreakdown)\n- [`ComputedPriceComponents`](#computedpricecomponents)\n- [`ComputePriceResult`](#computepriceresult)\n- [`SpotMarketBiddingZone`](#spotmarketbiddingzone)\n- [`SpotMarketType`](#spotmarkettype)\n- [`SpotMarketDataFrequency`](#spotmarketdatafrequency)\n- [`HistoricMarketPricesResult`](#historicmarketpricesresult)\n- [`AverageMarketPriceResult`](#averagemarketpriceresult)\n- [`AverageMarketPriceRecord`](#averagemarketpricerecord)\n- [`HistoricMarketPriceRecord`](#historicmarketpricerecord)\n- [`BaseMarketPriceRecord`](#basemarketpricerecord)\n- [`OAuthCredentials`](#oauthcredentials)\n- [`BasicAuthCredentials`](#basicauthcredentials)\n- [`BasicAuthIntegration`](#basicauthintegration)\n- [`OAuthIntegration`](#oauthintegration)\n- [`IntegrationAuthCredentials`](#integrationauthcredentials)\n- [`SearchStreetsResult`](#searchstreetsresult)\n- [`SearchProvidersResult`](#searchprovidersresult)\n- [`Provider`](#provider)\n- [`AdditionalProviderData`](#additionalproviderdata)\n- [`MarketParticipant`](#marketparticipant)\n- [`GasMarketAreaDetails`](#gasmarketareadetails)\n- [`PowerMarketAreaDetails`](#powermarketareadetails)\n- [`Street`](#street)\n- [`ValidateAvailabilityFileResult`](#validateavailabilityfileresult)\n- [`CartDto`](#cartdto)\n- [`CheckoutCart`](#checkoutcart)\n- [`CheckoutCartResult`](#checkoutcartresult)\n- [`CheckoutMode`](#checkoutmode)\n- [`OrderStatus`](#orderstatus)\n- [`BasePriceItemCommon`](#basepriceitemcommon)\n- [`PriceItemDtoUnion`](#priceitemdtounion)\n- [`PriceItemsDto`](#priceitemsdto)\n- [`BasePriceItemDto`](#basepriceitemdto)\n- [`PriceItemDto`](#priceitemdto)\n- [`CompositePriceItemDto`](#compositepriceitemdto)\n- [`TaxAmountDto`](#taxamountdto)\n- [`OrderSource`](#ordersource)\n- [`OpportunitySource`](#opportunitysource)\n- [`RecurrenceAmountDto`](#recurrenceamountdto)\n- [`Currency`](#currency)\n- [`OrderRelation`](#orderrelation)\n- [`OrderPayload`](#orderpayload)\n- [`PriceItems`](#priceitems)\n- [`CompositePriceItem`](#compositepriceitem)\n- [`BasePriceItem`](#basepriceitem)\n- [`CashbackAmounts`](#cashbackamounts)\n- [`DiscountAmounts`](#discountamounts)\n- [`PriceAmounts`](#priceamounts)\n- [`Amounts`](#amounts)\n- [`PriceItem`](#priceitem)\n- [`TaxAmount`](#taxamount)\n- [`TaxAmountBreakdown`](#taxamountbreakdown)\n- [`RecurrenceAmount`](#recurrenceamount)\n- [`CashbackAmount`](#cashbackamount)\n- [`RecurrenceAmountWithTax`](#recurrenceamountwithtax)\n- [`TotalDetails`](#totaldetails)\n- [`PricingDetails`](#pricingdetails)\n- [`PromoCodeValidationResponse`](#promocodevalidationresponse)\n- [`PricingDetailsResponse`](#pricingdetailsresponse)\n- [`BillingPeriod`](#billingperiod)\n- [`CashbackPeriod`](#cashbackperiod)\n- [`SalesTax`](#salestax)\n- [`AvailabilityLocation`](#availabilitylocation)\n- [`AvailabilityFilters`](#availabilityfilters)\n- [`Address`](#address)\n- [`PaymentMethod`](#paymentmethod)\n- [`Customer`](#customer)\n- [`File`](#file)\n- [`EntityId`](#entityid)\n- [`EntityItem`](#entityitem)\n- [`EntityRelation`](#entityrelation)\n- [`Tax`](#tax)\n- [`TaxItem`](#taxitem)\n- [`TaxBreakdownInfo`](#taxbreakdowninfo)\n- [`BaseCouponCommon`](#basecouponcommon)\n- [`CouponWithoutPromoCodes`](#couponwithoutpromocodes)\n- [`Coupon`](#coupon)\n- [`CouponItem`](#couponitem)\n- [`PromoCode`](#promocode)\n- [`RedeemedPromo`](#redeemedpromo)\n- [`PriceTier`](#pricetier)\n- [`PriceTierDisplayMode`](#pricetierdisplaymode)\n- [`PricingModel`](#pricingmodel)\n- [`MarkupPricingModel`](#markuppricingmodel)\n- [`TypeGetAg`](#typegetag)\n- [`TariffTypeGetAg`](#tarifftypegetag)\n- [`ConsumptionTypeGetAg`](#consumptiontypegetag)\n- [`ProductCategory`](#productcategory)\n- [`PriceGetAg`](#pricegetag)\n- [`PriceDynamicTariff`](#pricedynamictariff)\n- [`TierDetails`](#tierdetails)\n- [`SearchExternalCatalogParams`](#searchexternalcatalogparams)\n- [`ExternalCatalogRequest`](#externalcatalogrequest)\n- [`ExternalCatalogConfigurationRequest`](#externalcatalogconfigurationrequest)\n- [`ExternalCatalogJourneyRequest`](#externalcatalogjourneyrequest)\n- [`ExternalCatalogPortalRequest`](#externalcatalogportalrequest)\n- [`ExternalCatalogCustomRequest`](#externalcatalogcustomrequest)\n- [`CustomContext`](#customcontext)\n- [`JourneyContext`](#journeycontext)\n- [`PortalContext`](#portalcontext)\n- [`SearchExternalCatalogResult`](#searchexternalcatalogresult)\n- [`SearchExternalCatalogRecommendationsResult`](#searchexternalcatalogrecommendationsresult)\n- [`ExternalCatalogItem`](#externalcatalogitem)\n- [`ProductRecommendationSearch`](#productrecommendationsearch)\n- [`ProductRecommendationResponse`](#productrecommendationresponse)\n- [`OfferHighlightConfig`](#offerhighlightconfig)\n- [`Offer`](#offer)\n- [`ProductRecommendation`](#productrecommendation)\n\n### `$calculatePricingDetails`\n\nComputes a set of pricing details that can be persisted on an entity with the pricing capability enabled, e.g: Orders or Contracts.\n\n`POST /v1/pricing:compute`\n\n```ts\nconst { data } = await client.$calculatePricingDetails(\n null,\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "items": [\n {\n "amount_subtotal": 10000,\n "amount_total": 10600,\n "currency": "EUR",\n "description": "Annual internet service",\n "price_id": "7e24ff5d-d580-4136-a32f-19191eed039a",\n "product_id": "6241487f-b7fd-428b-ab92-24ee0b37fd84",\n "taxes": [],\n "unit_amount": 10000,\n "unit_amount_net": 10000,\n "pricing_model": "per_unit",\n "_price": {},\n "_product": {}\n },\n {\n "amount_subtotal": 10000,\n "amount_total": 10600,\n "currency": "EUR",\n "description": "Annual internet service",\n "price_id": "7e24ff5d-d580-4136-a32f-19191eed039a",\n "product_id": "6241487f-b7fd-428b-ab92-24ee0b37fd84",\n "taxes": [],\n "unit_amount": 10000,\n "unit_amount_net": 10000,\n "pricing_model": "per_unit",\n "_price": {},\n "_product": {}\n }\n ],\n "amount_subtotal": 0,\n "amount_total": 0,\n "unit_amount_gross": 0,\n "unit_amount_net": 0,\n "amount_tax": 0,\n "total_details": {\n "amount_shipping": 0,\n "amount_tax": 0,\n "breakdown": {\n "taxes": [],\n "recurrences": [],\n "cashbacks": [],\n "recurrencesByTax": []\n }\n },\n "currency": "EUR",\n "redeemed_promos": [\n {\n "code": "string",\n "coupons": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createOrder`\n\nCreate an order\n\n`POST /v1/order`\n\n```ts\nconst { data } = await client.createOrder(\n null,\n {\n status: \'draft\',\n line_items: [\n {\n external_fees_mappings: [ /* ... */ ],\n external_fees_metadata: { /* ... */ },\n external_location_metadata: { /* ... */ },\n external_price_metadata: { /* ... */ },\n _immutable_pricing_details: { /* ... */ },\n coupon_ids: [\'string\'],\n taxes: [ /* ... */ ],\n recurrences: [ /* ... */ ],\n _coupons: [ /* ... */ ],\n metadata: [ /* ... */ ],\n quantity: 0,\n product_id: \'string\',\n price_id: \'string\',\n description: \'string\',\n product_description: \'string\',\n product_name: \'string\',\n price_mappings: [ /* ... */ ],\n is_tax_inclusive: true,\n _product: { /* ... */ },\n type: \'one_time\',\n billing_period: \'weekly\',\n unit_amount: 0,\n unit_amount_gross: 0,\n unit_amount_currency: \'EUR\',\n unit_amount_decimal: \'string\',\n is_composite_price: false,\n pricing_model: \'per_unit\',\n _price: { /* ... */ }\n },\n {\n external_fees_mappings: [ /* ... */ ],\n external_fees_metadata: { /* ... */ },\n external_location_metadata: { /* ... */ },\n external_price_metadata: { /* ... */ },\n _immutable_pricing_details: { /* ... */ },\n coupon_ids: [\'string\'],\n taxes: [ /* ... */ ],\n recurrences: [ /* ... */ ],\n _coupons: [ /* ... */ ],\n metadata: [ /* ... */ ],\n quantity: 0,\n product_id: \'string\',\n price_id: \'string\',\n description: \'string\',\n product_description: \'string\',\n product_name: \'string\',\n price_mappings: [ /* ... */ ],\n is_tax_inclusive: true,\n _product: { /* ... */ },\n is_composite_price: true,\n item_components: [ /* ... */ ],\n selected_price_component_ids: [\'string\'],\n price_component_coupon_ids: {},\n _price: { /* ... */ }\n }\n ],\n source_type: \'journey\',\n currency: \'EUR\',\n contact: \'string\',\n billing_first_name: \'string\',\n billing_last_name: \'string\',\n billing_company_name: \'string\',\n billing_vat: \'string\',\n billing_email: \'string\',\n billing_phone: \'string\',\n billing_address: [\n {\n _tags: [\'billing\'],\n street: \'string\',\n street_number: \'string\',\n postal_code: \'string\',\n city: \'string\',\n country: \'string\',\n additional_info: \'string\',\n company_name: \'string\',\n first_name: \'string\',\n last_name: \'string\',\n salutation: \'string\',\n title: \'string\'\n }\n ],\n delivery_address: [\n {\n _tags: [\'billing\'],\n street: \'string\',\n street_number: \'string\',\n postal_code: \'string\',\n city: \'string\',\n country: \'string\',\n additional_info: \'string\',\n company_name: \'string\',\n first_name: \'string\',\n last_name: \'string\',\n salutation: \'string\',\n title: \'string\'\n }\n ],\n payment_method: [\n {\n type: \'string\',\n details: {}\n }\n ],\n redeemed_promos: [\n {\n code: \'string\',\n coupons: [ /* ... */ ]\n }\n ],\n _tags: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "order_number": "OR 2022/742701",\n "status": "quote",\n "source": {\n "title": "manual",\n "href": null\n },\n "source_type": "manual",\n "_schema": "order",\n "_title": "OR 2022/742701",\n "expires_at": "2022-06-30T16:17:00.000Z",\n "line_items": [\n {\n "price_id": "9c36c23b-1574-4193-beff-b1b5e1124bc7",\n "product_id": "a7f4771a-6368-4d77-bb01-71f1e4902de5",\n "pricing_model": "per_unit",\n "is_composite_price": false,\n "taxes": [],\n "_price": {},\n "_product": {},\n "quantity": 16,\n "currency": "EUR",\n "description": "Solar Panel Module",\n "unit_amount": 100000,\n "unit_amount_net": 84034,\n "amount_subtotal": 1344538,\n "amount_total": 1600000\n },\n {\n "price_id": "146aa2cc-f267-4d5e-bda4-cbe2669b7741",\n "product_id": "a7f4771a-6368-4d77-bb01-71f1e4902de5",\n "pricing_model": "per_unit",\n "is_composite_price": false,\n "taxes": [],\n "_price": {},\n "_product": {},\n "quantity": 4,\n "currency": "EUR",\n "description": "Battery Module 500amps",\n "unit_amount": 50000,\n "unit_amount_net": 42017,\n "amount_subtotal": 168067,\n "amount_total": 200000\n }\n ],\n "amount_subtotal": 1532191,\n "amount_total": 1821955,\n "total_details": {\n "amount_tax": 289764,\n "breakdown": {\n "taxes": [],\n "recurrences": []\n }\n },\n "currency": "EUR",\n "payment_method": [\n {\n "type": "IBAN",\n "details": {}\n }\n ],\n "billing_contact": {\n "$relation": [\n {}\n ]\n },\n "billing_first_name": "Joao",\n "billing_last_name": "Pinho",\n "billing_email": "j.pinho@epilot.cloud",\n "billing_company_name": "epilot cloud",\n "billing_address": [\n {\n "_tags": [],\n "street": "Im Media Park",\n "street_number": "8a",\n "postal_code": "52000",\n "city": "Cologne",\n "country": "DE",\n "additional_info": ""\n }\n ],\n "delivery_address": [],\n "dates": [\n {\n "_tags": ["Instalation Date"],\n "dates": "",\n "value": "2022-06-30T16:29:00.000Z"\n }\n ],\n "_id": "4c7c9562-f8f0-4af0-a3a6-6aebc5571a6e",\n "_org": "728",\n "_created_at": "2022-06-03T16:29:46.303Z",\n "_updated_at": "2022-06-03T16:29:46.303Z"\n}\n```\n\n</details>\n\n---\n\n### `putOrder`\n\nUpdate an existing Order\n\n`PUT /v1/order/{id}`\n\n```ts\nconst { data } = await client.putOrder(\n {\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n },\n {\n status: \'draft\',\n line_items: [\n {\n external_fees_mappings: [ /* ... */ ],\n external_fees_metadata: { /* ... */ },\n external_location_metadata: { /* ... */ },\n external_price_metadata: { /* ... */ },\n _immutable_pricing_details: { /* ... */ },\n coupon_ids: [\'string\'],\n taxes: [ /* ... */ ],\n recurrences: [ /* ... */ ],\n _coupons: [ /* ... */ ],\n metadata: [ /* ... */ ],\n quantity: 0,\n product_id: \'string\',\n price_id: \'string\',\n description: \'string\',\n product_description: \'string\',\n product_name: \'string\',\n price_mappings: [ /* ... */ ],\n is_tax_inclusive: true,\n _product: { /* ... */ },\n type: \'one_time\',\n billing_period: \'weekly\',\n unit_amount: 0,\n unit_amount_gross: 0,\n unit_amount_currency: \'EUR\',\n unit_amount_decimal: \'string\',\n is_composite_price: false,\n pricing_model: \'per_unit\',\n _price: { /* ... */ }\n },\n {\n external_fees_mappings: [ /* ... */ ],\n external_fees_metadata: { /* ... */ },\n external_location_metadata: { /* ... */ },\n external_price_metadata: { /* ... */ },\n _immutable_pricing_details: { /* ... */ },\n coupon_ids: [\'string\'],\n taxes: [ /* ... */ ],\n recurrences: [ /* ... */ ],\n _coupons: [ /* ... */ ],\n metadata: [ /* ... */ ],\n quantity: 0,\n product_id: \'string\',\n price_id: \'string\',\n description: \'string\',\n product_description: \'string\',\n product_name: \'string\',\n price_mappings: [ /* ... */ ],\n is_tax_inclusive: true,\n _product: { /* ... */ },\n is_composite_price: true,\n item_components: [ /* ... */ ],\n selected_price_component_ids: [\'string\'],\n price_component_coupon_ids: {},\n _price: { /* ... */ }\n }\n ],\n source_type: \'journey\',\n currency: \'EUR\',\n contact: \'string\',\n billing_first_name: \'string\',\n billing_last_name: \'string\',\n billing_company_name: \'string\',\n billing_vat: \'string\',\n billing_email: \'string\',\n billing_phone: \'string\',\n billing_address: [\n {\n _tags: [\'billing\'],\n street: \'string\',\n street_number: \'string\',\n postal_code: \'string\',\n city: \'string\',\n country: \'string\',\n additional_info: \'string\',\n company_name: \'string\',\n first_name: \'string\',\n last_name: \'string\',\n salutation: \'string\',\n title: \'string\'\n }\n ],\n delivery_address: [\n {\n _tags: [\'billing\'],\n street: \'string\',\n street_number: \'string\',\n postal_code: \'string\',\n city: \'string\',\n country: \'string\',\n additional_info: \'string\',\n company_name: \'string\',\n first_name: \'string\',\n last_name: \'string\',\n salutation: \'string\',\n title: \'string\'\n }\n ],\n payment_method: [\n {\n type: \'string\',\n details: {}\n }\n ],\n redeemed_promos: [\n {\n code: \'string\',\n coupons: [ /* ... */ ]\n }\n ],\n _tags: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "order_number": "OR 2022/742701",\n "status": "quote",\n "source": {\n "title": "manual",\n "href": null\n },\n "source_type": "manual",\n "_schema": "order",\n "_title": "OR 2022/742701",\n "expires_at": "2022-06-30T16:17:00.000Z",\n "line_items": [\n {\n "price_id": "9c36c23b-1574-4193-beff-b1b5e1124bc7",\n "product_id": "a7f4771a-6368-4d77-bb01-71f1e4902de5",\n "pricing_model": "per_unit",\n "is_composite_price": false,\n "taxes": [],\n "_price": {},\n "_product": {},\n "quantity": 16,\n "currency": "EUR",\n "description": "Solar Panel Module",\n "unit_amount": 100000,\n "unit_amount_net": 84034,\n "amount_subtotal": 1344538,\n "amount_total": 1600000\n },\n {\n "price_id": "146aa2cc-f267-4d5e-bda4-cbe2669b7741",\n "product_id": "a7f4771a-6368-4d77-bb01-71f1e4902de5",\n "pricing_model": "per_unit",\n "is_composite_price": false,\n "taxes": [],\n "_price": {},\n "_product": {},\n "quantity": 4,\n "currency": "EUR",\n "description": "Battery Module 500amps",\n "unit_amount": 50000,\n "unit_amount_net": 42017,\n "amount_subtotal": 168067,\n "amount_total": 200000\n }\n ],\n "amount_subtotal": 1532191,\n "amount_total": 1821955,\n "total_details": {\n "amount_tax": 289764,\n "breakdown": {\n "taxes": [],\n "recurrences": []\n }\n },\n "currency": "EUR",\n "payment_method": [\n {\n "type": "IBAN",\n "details": {}\n }\n ],\n "billing_contact": {\n "$relation": [\n {}\n ]\n },\n "billing_first_name": "Joao",\n "billing_last_name": "Pinho",\n "billing_email": "j.pinho@epilot.cloud",\n "billing_company_name": "epilot cloud",\n "billing_address": [\n {\n "_tags": [],\n "street": "Im Media Park",\n "street_number": "8a",\n "postal_code": "52000",\n "city": "Cologne",\n "country": "DE",\n "additional_info": ""\n }\n ],\n "delivery_address": [],\n "dates": [\n {\n "_tags": ["Instalation Date"],\n "dates": "",\n "value": "2022-06-30T16:29:00.000Z"\n }\n ],\n "_id": "4c7c9562-f8f0-4af0-a3a6-6aebc5571a6e",\n "_org": "728",\n "_created_at": "2022-06-03T16:29:46.303Z",\n "_updated_at": "2022-06-03T16:29:46.303Z"\n}\n```\n\n</details>\n\n---\n\n### `$checkoutCart`\n\nCheckouts a cart and executes the specified checkout `mode` process.\n\n`POST /v1/public/cart:checkout`\n\n```ts\nconst { data } = await client.$checkoutCart(\n {\n X-Ivy-Org-ID: \'example\',\n },\n {\n cart: \'string\',\n redeemed_promos: [\n {\n code: \'string\',\n coupons: [\n {\n _id: \'123e4567-e89b-12d3-a456-426614174000\',\n _schema: \'coupon\',\n _org: \'org_12345\',\n _created_at: \'2024-01-15T10:00:00.000Z\',\n _updated_at: \'2024-01-20T12:00:00.000Z\',\n _title: \'Sample Coupon\',\n name: \'Sample Coupon\',\n type: \'fixed\',\n fixed_value: 555,\n fixed_value_currency: \'USD\',\n fixed_value_decimal: \'5.55\',\n active: true,\n category: \'cashback\',\n prices: {\n $relation: [\n {\n entity_id: \'abc12345-def6-7890-gh12-ijklmnopqrst\',\n _tags: [\'discount\', \'special\'],\n _schema: \'price\'\n }\n ]\n }\n }\n ]\n }\n ],\n mode: \'create_order\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "order": {\n "order_number": "OR 2022/742701",\n "status": "quote",\n "source": {\n "title": "manual",\n "href": null\n },\n "source_type": "manual",\n "_schema": "order",\n "_title": "OR 2022/742701",\n "expires_at": "2022-06-30T16:17:00.000Z",\n "line_items": [\n {},\n {}\n ],\n "amount_subtotal": 1532191,\n "amount_total": 1821955,\n "total_details": {\n "amount_tax": 289764,\n "breakdown": {}\n },\n "currency": "EUR",\n "payment_method": [\n {}\n ],\n "billing_contact": {\n "$relation": []\n },\n "billing_first_name": "Joao",\n "billing_last_name": "Pinho",\n "billing_email": "j.pinho@epilot.cloud",\n "billing_company_name": "epilot cloud",\n "billing_address": [\n {}\n ],\n "delivery_address": [],\n "dates": [\n {}\n ],\n "_id": "4c7c9562-f8f0-4af0-a3a6-6aebc5571a6e",\n "_org": "728",\n "_created_at": "2022-06-03T16:29:46.303Z",\n "_updated_at": "2022-06-03T16:29:46.303Z"\n }\n}\n```\n\n</details>\n\n---\n\n### `$searchCatalog`\n\nProvides a querying functionalities over products and prices of the Catalog for a given organization.\n\n`POST /v1/public/catalog`\n\n```ts\nconst { data } = await client.$searchCatalog(\n {\n X-Ivy-Org-ID: \'example\',\n Authorization: \'example\',\n },\n {\n q: \'_id:1233432 OR _id:123432454 OR _id:23445433\',\n sort: \'description ASC\',\n from: 0,\n size: 200\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 2,\n "results": [\n {\n "schema": "product",\n "description": "product a"\n },\n {\n "schema": "price",\n "unit_amount_decimal": "124.342343434"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$privateSearchCatalog`\n\nProvides a querying functionalities over products and prices of the Catalog for a given organization.\n\n`POST /v1/catalog`\n\n```ts\nconst { data } = await client.$privateSearchCatalog(\n null,\n {\n q: \'_id:1233432 OR _id:123432454 OR _id:23445433\',\n sort: \'description ASC\',\n from: 0,\n size: 200\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 2,\n "results": [\n {\n "schema": "product",\n "description": "product a"\n },\n {\n "schema": "price",\n "unit_amount_decimal": "124.342343434"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$validatePromoCodes`\n\nValidate a list of promo codes against a list of coupons\n\n`POST /v1/public/validate-promo-codes`\n\n```ts\nconst { data } = await client.$validatePromoCodes(\n {\n X-Ivy-Org-ID: \'example\',\n },\n {},\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "matched_coupons": [\n {\n "_id": "123e4567-e89b-12d3-a456-426614174000",\n "_schema": "coupon",\n "_org": "org_12345",\n "_created_at": "2024-01-15T10:00:00.000Z",\n "_updated_at": "2024-01-20T12:00:00.000Z",\n "_title": "Sample Coupon",\n "name": "Sample Coupon",\n "type": "fixed",\n "fixed_value": 555,\n "fixed_value_currency": "USD",\n "fixed_value_decimal": "5.55",\n "active": true,\n "category": "cashback",\n "prices": {\n "$relation": [\n {\n "entity_id": "abc12345-def6-7890-gh12-ijklmnopqrst",\n "_tags": ["discount", "special"],\n "_schema": "price"\n }\n ]\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$availabilityCheck`\n\nThe availability check endpoint\n\n`POST /v1/public/availability:check`\n\n```ts\nconst { data } = await client.$availabilityCheck(\n {\n X-Ivy-Org-ID: \'example\',\n },\n {\n products: [\'string\'],\n filters: {\n location: {\n street: \'string\',\n street_number: \'string\',\n postal_code: \'string\',\n city: \'string\',\n country: \'string\'\n },\n available_date: \'2017-07-21\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "available_products": [],\n "check_results": [\n {\n "product_id": "my-product-id-123-1",\n "matching_hits": 0\n },\n {\n "product_id": "my-product-id-123-2",\n "matching_hits": 0\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$validateAvailabilityFile`\n\nValidates an availability file, it returns an array of errors if the file is invalid\n\n`GET /v1/validate-availability/{id}`\n\n```ts\nconst { data } = await client.$validateAvailabilityFile({\n id: \'123e4567-e89b-12d3-a456-426614174000\',\n X-Epilot-Org-ID: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "status": "success",\n "rules_parsed_count": 10,\n "errors": []\n}\n```\n\n</details>\n\n---\n\n### `$historicMarketPrices`\n\nGet a series of historic energy prices for a given time period, market and bidding zone.\n\n`GET /v1/public/historicMarketPrices`\n\n```ts\nconst { data } = await client.$historicMarketPrices({\n market: \'example\',\n bidding_zone: \'example\',\n frequency: \'example\',\n from: \'example\',\n to: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "market": "day_ahead",\n "bidding_zone": "AT",\n "prices": [\n {\n "unit_amount": 12.3,\n "unit_amount_decimal": "0.123",\n "unit_amount_currency": "EUR",\n "timestamp": "1970-01-01T00:00:00.000Z"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$averageMarketPrice`\n\nGet the average energy prices for a given time period, market and bidding zone.\n\n`GET /v1/public/averageMarketPrice`\n\n```ts\nconst { data } = await client.$averageMarketPrice({\n market: \'example\',\n bidding_zone: \'example\',\n from: \'example\',\n to: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "market": "day_ahead",\n "bidding_zone": "AT",\n "price": {\n "unit_amount": 12.3,\n "unit_amount_decimal": "0.123",\n "unit_amount_currency": "EUR",\n "timestamp": "2025-01-01T00:00:00Z/2025-01-31T23:59:59Z"\n },\n "_meta": {\n "signature": "string",\n "timestamp": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `$searchExternalProducts`\n\nReturns the list of available products with computed prices based on a given context and for a given org integration.\n\n`POST /v1/public/integration/{integrationId}/products`\n\n```ts\nconst { data } = await client.$searchExternalProducts(\n {\n integrationId: \'example\',\n },\n {\n context: {\n journey_id: \'8d0a2235-97ce-42d0-88a3-e374634ca44e\',\n entity_id: \'8d0a2235-97ce-42d0-88a3-e374634ca44e\',\n journey_name: \'journey name\',\n journey_tags: [\'string\'],\n journey_url_params: {},\n current_step_name: \'step name\',\n current_block_name: \'block name\',\n steps_data: [\n {\n step_name: \'string\',\n step_index: 0,\n blocks: {\n Adresse: {\n countryCode: \'DE\',\n city: \'Koblenz\',\n zipCode: \'56068\',\n streetName: \'Am Alten Hospital\',\n houseNumber: \'123\'\n }\n }\n }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "pricing_details": {},\n "_meta": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$searchExternalProductRecommendations`\n\nReturns the list of available product recommendations with computed prices based on a given context and for a given org integration.\n\n`POST /v1/public/integration/{integrationId}/product-recommendations`\n\n```ts\nconst { data } = await client.$searchExternalProductRecommendations(\n {\n integrationId: \'example\',\n },\n {\n context: {\n journey_id: \'8d0a2235-97ce-42d0-88a3-e374634ca44e\',\n entity_id: \'8d0a2235-97ce-42d0-88a3-e374634ca44e\',\n journey_name: \'journey name\',\n journey_tags: [\'string\'],\n journey_url_params: {},\n current_step_name: \'step name\',\n current_block_name: \'block name\',\n steps_data: [\n {\n step_name: \'string\',\n step_index: 0,\n blocks: {\n Adresse: {\n countryCode: \'DE\',\n city: \'Koblenz\',\n zipCode: \'56068\',\n streetName: \'Am Alten Hospital\',\n houseNumber: \'123\'\n }\n }\n }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "source": {\n "pricing_details": {\n "items": [],\n "amount_subtotal": 0,\n "amount_total": 0,\n "unit_amount_gross": 0,\n "unit_amount_net": 0,\n "amount_tax": 0,\n "total_details": {},\n "currency": "EUR",\n "redeemed_promos": []\n },\n "_meta": {\n "signature": "string",\n "timestamp": 0\n }\n },\n "offers": [\n {\n "pricing_details": {},\n "_meta": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$searchProviders`\n\nReturns the list of providers available based on a given location\n\n`POST /v1/public/integration/{integrationId}/providers:search`\n\n```ts\nconst { data } = await client.$searchProviders(\n {\n X-Epilot-Org-ID: \'example\',\n integrationId: \'example\',\n },\n {\n type: \'power\',\n postal_code: \'string\',\n city: \'string\',\n street: \'string\',\n street_number: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "name": "string",\n "code": "string",\n "type": "gas",\n "additionalData": {\n "gridOperators": [\n {\n "name": "string",\n "codeNumber": "string",\n "validFrom": "1970-01-01",\n "validUntil": "1970-01-01"\n }\n ],\n "defaultSuppliers": [\n {\n "name": "string",\n "codeNumber": "string",\n "validFrom": "1970-01-01",\n "validUntil": "1970-01-01"\n }\n ],\n "marketAreaDetails": {\n "gasType": "L-Gas",\n "marketArea": "string",\n "virtualTradingPoint": "string"\n }\n },\n "_meta": {\n "signature": "string",\n "timestamp": 0\n }\n }\n]\n```\n\n</details>\n\n---\n\n### `$searchStreets`\n\nReturns the list of streets available for a given postal code and city\n\n`POST /v1/public/integration/{integrationId}/streets:search`\n\n```ts\nconst { data } = await client.$searchStreets(\n {\n X-Epilot-Org-ID: \'example\',\n integrationId: \'example\',\n },\n {\n postal_code: \'string\',\n city: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "street": "string"\n }\n]\n```\n\n</details>\n\n---\n\n### `$computePrice`\n\nReturns the price for a given product type based on location and consumption\n\n`POST /v1/public/integration/{integrationId}/compute-price`\n\n```ts\nconst { data } = await client.$computePrice(\n {\n X-Epilot-Org-ID: \'example\',\n integrationId: \'example\',\n },\n {\n postal_code: \'string\',\n consumption_type: \'household\',\n consumption: 0,\n consumption_HT: 0,\n consumption_NT: 0,\n association_id: \'string\',\n billing_period: \'monthly\',\n reference_date: \'1970-01-01\',\n type: \'power\',\n meter_type: \'classic\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "amount_total": 0,\n "amount_total_decimal": "string",\n "amount_static": 0,\n "amount_static_decimal": {},\n "amount_variable_ht": 0,\n "amount_variable_decimal_ht": "string",\n "unit_amount_variable_ht": 0,\n "unit_amount_variable_decimal_ht": "string",\n "amount_variable_nt": 0,\n "amount_variable_decimal_nt": "string",\n "unit_amount_variable_nt": 0,\n "unit_amount_variable_decimal_nt": "string",\n "currency": "EUR",\n "billing_period": "weekly",\n "breakdown": {\n "static": {},\n "variable": {},\n "variable_ht": {},\n "variable_nt": {}\n },\n "_meta": {\n "signature": "string",\n "timestamp": 0\n }\n}\n```\n\n</details>\n\n---\n\n### `$getCredentials`\n\nGets the credentials for a given integration / organization\n\n`GET /v1/integration/{integrationId}/credentials`\n\n```ts\nconst { data } = await client.$getCredentials({\n integrationId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{}\n```\n\n</details>\n\n---\n\n### `$saveCredentials`\n\nSaves the credentials for a given integration / organization\n\n`PUT /v1/integration/{integrationId}/credentials:save`\n\n```ts\nconst { data } = await client.$saveCredentials(\n {\n integrationId: \'example\',\n },\n {},\n)\n```\n\n---\n\n### `$deleteCredentials`\n\nDelete the credentials for a given integration / organization\n\n`DELETE /v1/integration/{integrationId}/credentials:delete`\n\n```ts\nconst { data } = await client.$deleteCredentials({\n integrationId: \'example\',\n})\n```\n\n---\n\n### `$getExternalCatalogProducts`\n\nReturns the list of available external catalog products with computed prices based on a given context\n\n`POST /v1/public/external-catalog/products`\n\n```ts\nconst { data } = await client.$getExternalCatalogProducts(\n {\n x-epilot-org-id: \'example\',\n },\n {\n config: {\n appId: \'1234567890\',\n componentId: \'1234567890\',\n hookId: \'1234567890\'\n },\n origin: \'journey\',\n context: {\n journey_id: \'8d0a2235-97ce-42d0-88a3-e374634ca44e\',\n entity_id: \'9e1b3346-a8df-53e1-99b4-f485745db55f\',\n journey_name: \'Product Selection Journey\',\n journey_tags: [\'electricity\', \'residential\'],\n journey_url_params: {\n utm_source: \'google\',\n utm_campaign: \'spring2024\'\n },\n current_step_name: \'Product Selection\',\n current_block_name: \'Energy Products\',\n steps_data: [\n {\n step_name: \'Address Information\',\n step_index: 0,\n blocks: {\n Adresse: {\n countryCode: \'DE\',\n city: \'Koblenz\',\n zipCode: \'56068\',\n streetName: \'Am Alten Hospital\',\n houseNumber: \'123\'\n }\n }\n }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "pricing_details": {},\n "_meta": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$getExternalCatalogProductRecommendations`\n\nReturns the list of available external catalog products recommendations based on a given context\n\n`POST /v1/public/external-catalog/product-recommendations`\n\n```ts\nconst { data } = await client.$getExternalCatalogProductRecommendations(\n {\n x-epilot-org-id: \'example\',\n },\n {\n config: {\n appId: \'1234567890\',\n componentId: \'1234567890\',\n hookId: \'1234567890\'\n },\n origin: \'journey\',\n context: {\n journey_id: \'8d0a2235-97ce-42d0-88a3-e374634ca44e\',\n entity_id: \'9e1b3346-a8df-53e1-99b4-f485745db55f\',\n journey_name: \'Product Selection Journey\',\n journey_tags: [\'electricity\', \'residential\'],\n journey_url_params: {\n utm_source: \'google\',\n utm_campaign: \'spring2024\'\n },\n current_step_name: \'Product Selection\',\n current_block_name: \'Energy Products\',\n steps_data: [\n {\n step_name: \'Address Information\',\n step_index: 0,\n blocks: {\n Adresse: {\n countryCode: \'DE\',\n city: \'Koblenz\',\n zipCode: \'56068\',\n streetName: \'Am Alten Hospital\',\n houseNumber: \'123\'\n }\n }\n }\n ]\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "source": {\n "pricing_details": {\n "items": [],\n "amount_subtotal": 0,\n "amount_total": 0,\n "unit_amount_gross": 0,\n "unit_amount_net": 0,\n "amount_tax": 0,\n "total_details": {},\n "currency": "EUR",\n "redeemed_promos": []\n },\n "_meta": {\n "signature": "string",\n "timestamp": 0\n }\n },\n "offers": [\n {\n "pricing_details": {},\n "_meta": {}\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$productRecommendations`\n\nGet a list of product recommendations based on the search parameters.\n\n`POST /v1/public/product-recommendations`\n\n```ts\nconst { data } = await client.$productRecommendations(\n {\n X-Ivy-Org-ID: \'example\',\n },\n {\n product_recommendation_ids: [\'string\'],\n catalog_item: {\n product_id: \'string\',\n price_id: \'string\'\n },\n contract_id: \'string\',\n filters: {\n location: {\n street: \'string\',\n street_number: \'string\',\n postal_code: \'string\',\n city: \'string\',\n country: \'string\'\n },\n available_date: \'2017-07-21\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "_id": "73f857a4-0fbc-4aa6-983f-87c0d6d410a6",\n "_title": "Cool box",\n "_org": "728",\n "_schema": "order",\n "_created_at": "2022-06-03T16:04:10.000Z",\n "_updated_at": "2022-06-03T16:04:10.000Z",\n "amount_subtotal": 10000,\n "amount_total": 10600,\n "currency": "EUR",\n "description": "Annual internet service",\n "price_id": "7e24ff5d-d580-4136-a32f-19191eed039a",\n "product_id": "6241487f-b7fd-428b-ab92-24ee0b37fd84",\n "taxes": [\n {\n "amount": 600,\n "tax": {\n "active": true,\n "description": "Without Behaviour",\n "rate": 6,\n "region": "DE",\n "type": "VAT",\n "_created_at": "2022-02-07T14:49:08.831Z",\n "_id": "18bbbc2e-2c37-4f91-924a-07ae60d830e4",\n "_org": "739224",\n "_schema": "tax",\n "_title": "Tax Without Behaviour",\n "_updated_at": "2022-02-07T14:49:08.831Z"\n }\n }\n ],\n "unit_amount": 10000,\n "unit_amount_net": 10000,\n "pricing_model": "per_unit",\n "_price": {\n "_id": "7e24ff5d-d580-4136-a32f-19191eed039a",\n "unit_amount": 10000,\n "unit_amount_currency": "EUR",\n "unit_amount_decimal": "100.00",\n "sales_tax": "standard",\n "is_tax_inclusive": false,\n "price_display_in_journeys": "show_price",\n "type": "one_time",\n "billing_period": "weekly",\n "billing_duration_unit": "months",\n "notice_time_unit": "months",\n "termination_time_unit": "months",\n "renewal_duration_unit": "months",\n "_schema": "price",\n "_title": "Solar Panel Module",\n "description": "Solar Panel Module",\n "active": true,\n "tax": {\n "$relation": [\n {\n "entity_id": "24641e82-0690-4135-8b43-ef12a9b1c5dc"\n }\n ]\n },\n "_org": "728",\n "_created_at": "2022-06-03T16:04:10.369Z",\n "_updated_at": "2022-06-03T16:04:10.369Z",\n "pricing_model": "per_unit"\n },\n "_product": {\n "name": "Cool box",\n "type": "product",\n "_id": "73f857a4-0fbc-4aa6-983f-87c0d6d410a6",\n "_title": "Cool box"\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$getConditionSets`\n\nReturns the condition sets built in for one conditional entity type: the situations a\nconditional Product, Price or Coupon is commonly varied by, ready to be copied into that\nschema\'s `conditions` arr\n\n`GET /v1/conditional-pricing/{slug}/condition-sets`\n\n```ts\nconst { data } = await client.$getConditionSets({\n slug: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "id": "delivery_area",\n "label": "Delivery Area",\n "description": "string",\n "conditions": [\n {\n "id": "d5839b94-ba20-4225-a78e-76951d352bd6",\n "name": "postal_code",\n "label": "Postal Code",\n "type": "string",\n "options": [\n "private",\n {\n "value": "commercial",\n "title": "Commercial customers"\n }\n ],\n "format": "zipcode"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$resolveConditionalEntity`\n\nResolves which of a conditional entity\'s variants apply, and returns each one composed: the\nbase entity overlaid with the values of the version in effect at `as_of`.\n\n`POST /v1/conditional-pricing:resolve`\n\n```ts\nconst { data } = await client.$resolveConditionalEntity(\n null,\n {\n schema: \'product\',\n entity_id: \'price-sp26d1yo\',\n context: {\n postal_code: \'46045\',\n consumption: {\n lt: 5000\n }\n },\n as_of: \'2027-03-15T00:00:00Z\',\n options: {\n resolve_one: false,\n hydrate: false\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "_id": "price-sp26d1yo",\n "_variant_id": "var-46045",\n "_version_valid_from": "2027-01-01T00:00:00.000Z",\n "_conditions": {\n "postal_code": "46045",\n "default": false\n },\n "_inert_overrides": [\n {\n "attribute": "unit_amount",\n "reason": "ATTRIBUTE_NOT_OVERRIDABLE"\n }\n ]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$createConditionalVariant`\n\nCreates one variant of a conditional entity, together with the first version carrying its\nvalues: a variant always has at least one version.\n\n`POST /v1/conditional-pricing/{slug}/entities/{entity_id}/variants`\n\n```ts\nconst { data } = await client.$createConditionalVariant(\n {\n slug: \'example\',\n entity_id: \'example\',\n },\n {\n conditions: {\n postal_code: \'46045\'\n },\n default: false,\n valid_from: \'2027-01-01T00:00:00Z\',\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 0,\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$listConditionalVariants`\n\nLists a conditional entity\'s variants and the conditions each one pins \u2014 the browse, filter\nand search read behind the Entity UI\'s variant screens.\n\n`POST /v1/conditional-pricing/{slug}/entities/{entity_id}/variants:list`\n\n```ts\nconst { data } = await client.$listConditionalVariants(\n {\n slug: \'example\',\n entity_id: \'example\',\n },\n {\n conditions: {\n postal_code: \'46045\',\n consumption: {\n lt: 5000\n }\n },\n search: \'460\',\n sort: \'conditions.postal_code:asc\',\n from: 0,\n size: 10,\n cursor: \'eyJmcm9tIjoyNSwibGlzdGluZyI6IjNmOWMxZTJhIn0\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 8128,\n "results": [\n {\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n }\n }\n ],\n "next": "eyJmcm9tIjoyNSwibGlzdGluZyI6IjNmOWMxZTJhIn0"\n}\n```\n\n</details>\n\n---\n\n### `$getConditionalVariantTree`\n\nThe variants list, each row carrying the version in effect at `as_of` \u2014 the Entity UI\'s main\nediting screen in one call rather than one call per row.\n\n`POST /v1/conditional-pricing/{slug}/entities/{entity_id}/variants:tree`\n\n```ts\nconst { data } = await client.$getConditionalVariantTree(\n {\n slug: \'example\',\n entity_id: \'example\',\n },\n {\n conditions: {\n postal_code: \'46045\',\n consumption: {\n lt: 5000\n }\n },\n search: \'460\',\n sort: \'conditions.postal_code:asc\',\n from: 0,\n size: 10,\n cursor: \'eyJmcm9tIjoyNSwibGlzdGluZyI6IjNmOWMxZTJhIn0\',\n as_of: \'2027-03-15T00:00:00Z\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 8128,\n "results": [\n {\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "status": "active",\n "version": {\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string"\n }\n }\n ],\n "next": "eyJmcm9tIjoyNSwibGlzdGluZyI6IjNmOWMxZTJhIn0"\n}\n```\n\n</details>\n\n---\n\n### `$getActiveConditionalVariantVersion`\n\nReturns the version of this variant that is currently in effect \u2014 the one with the latest\n`valid_from` at or before now.\n\n`GET /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}`\n\n```ts\nconst { data } = await client.$getActiveConditionalVariantVersion({\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3\n}\n```\n\n</details>\n\n---\n\n### `$replaceActiveConditionalVariantVersion`\n\nReplaces the values of the version currently in effect, wholesale.\n\n`PUT /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}`\n\n```ts\nconst { data } = await client.$replaceActiveConditionalVariantVersion(\n {\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n },\n {\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n },\n _revision: 3,\n valid_from: \'string\',\n conditions: {\n postal_code: \'46045\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3,\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$patchActiveConditionalVariantVersion`\n\nChanges only the fields it names on the version currently in effect.\n\n`PATCH /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}`\n\n```ts\nconst { data } = await client.$patchActiveConditionalVariantVersion(\n {\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n },\n {\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n },\n _revision: 3,\n valid_from: \'string\',\n conditions: {\n postal_code: \'46045\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3,\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$deleteConditionalVariant`\n\nRemoves one variant of a conditional entity: the condition tuple it holds, its registration\nin the search index, and every version it accumulated.\n\n`DELETE /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}`\n\n```ts\nconst { data } = await client.$deleteConditionalVariant({\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "tuple_released": true,\n "versions_deleted": 0\n}\n```\n\n</details>\n\n---\n\n### `$listConditionalVariantVersions`\n\nLists one variant\'s versions \u2014 its whole timeline, oldest first, which is what expanding a row\nof the tree loads.\n\n`GET /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}/versions`\n\n```ts\nconst { data } = await client.$listConditionalVariantVersions({\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n limit: 1,\n order: \'example\',\n cursor: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string"\n }\n ],\n "next": "eyJzayI6IlYjcHJpY2Utc3AyNmQxeW8jdmFyLTQ2MDQ1IzIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWiIsIm9yZGVyIjoiYXNjIn0"\n}\n```\n\n</details>\n\n---\n\n### `$appendConditionalVariantVersion`\n\nAppends a version to a variant: a new set of values taking effect at its own instant.\n\n`POST /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}/versions`\n\n```ts\nconst { data } = await client.$appendConditionalVariantVersion(\n {\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n },\n {\n valid_from: \'2027-01-01T00:00:00Z\',\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n },\n conditions: {\n postal_code: \'46045\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3,\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$getConditionalVariantVersion`\n\nReturns one specific version of a variant, by the instant it takes effect \u2014 what a form editing\nthat version loads.\n\n`GET /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}/versions/{valid_from}`\n\n```ts\nconst { data } = await client.$getConditionalVariantVersion({\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n valid_from: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3\n}\n```\n\n</details>\n\n---\n\n### `$replaceConditionalVariantVersion`\n\nReplaces one version\'s values wholesale, addressed by its `valid_from`.\n\n`PUT /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}/versions/{valid_from}`\n\n```ts\nconst { data } = await client.$replaceConditionalVariantVersion(\n {\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n valid_from: \'example\',\n },\n {\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n },\n _revision: 3,\n valid_from: \'string\',\n conditions: {\n postal_code: \'46045\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3,\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$patchConditionalVariantVersion`\n\nChanges only the fields it names on one version, addressed by its `valid_from`.\n\n`PATCH /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}/versions/{valid_from}`\n\n```ts\nconst { data } = await client.$patchConditionalVariantVersion(\n {\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n valid_from: \'example\',\n },\n {\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n },\n _revision: 3,\n valid_from: \'string\',\n conditions: {\n postal_code: \'46045\'\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "conditions": {\n "postal_code": "46045",\n "default": false\n },\n "valid_from": "2027-01-01T00:00:00.000Z",\n "values": {\n "unit_amount": 2499,\n "unit_amount_decimal": "24.99"\n },\n "_created_at": "string",\n "_updated_at": "string",\n "_revision": 3,\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$deleteConditionalVariantVersion`\n\nRemoves one version of a variant.\n\n`DELETE /v1/conditional-pricing/{slug}/entities/{entity_id}/variants/{variant_id}/versions/{valid_from}`\n\n```ts\nconst { data } = await client.$deleteConditionalVariantVersion({\n slug: \'example\',\n entity_id: \'example\',\n variant_id: \'example\',\n valid_from: \'example\',\n _revision: 1,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "variant_id": "var-46045",\n "entity_id": "price-sp26d1yo",\n "schema": "product",\n "valid_from": "2027-01-01T00:00:00.000Z",\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$batchUpsertConditionalVariants`\n\nWrites up to 100 variants or versions in one call \u2014 the endpoint a bulk importer drives a\nrefresh cycle through, so hundreds of thousands of keys are a stream of calls rather than a\ncall per key.\n\n`POST /v1/conditional-pricing/{slug}/variants:batchUpsert`\n\n```ts\nconst { data } = await client.$batchUpsertConditionalVariants(\n {\n slug: \'example\',\n },\n {\n correlation_id: \'tariff-refresh-2027-01\',\n items: [\n {\n entity_id: \'price-sp26d1yo\',\n conditions: {\n postal_code: \'46045\'\n },\n default: false,\n valid_from: \'2027-01-01T00:00:00Z\',\n values: {\n unit_amount: 2499,\n unit_amount_decimal: \'24.99\'\n }\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "correlation_id": "tariff-refresh-2027-01",\n "counts": {\n "variant_created": 1,\n "version_created": 1,\n "updated": 1,\n "skipped": 1,\n "error": 1\n },\n "results": [\n {\n "outcome": "variant_created",\n "entity_id": "price-sp26d1yo",\n "variant_id": "var-46045",\n "valid_from": "2027-01-01T00:00:00.000Z",\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ],\n "error": {\n "code": "SCHEMA_NOT_FOUND",\n "details": {\n "schema": "price"\n }\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `$batchDeleteConditionalVariants`\n\nRemoves up to 100 variants or versions in one call \u2014 the symmetric bulk withdrawal, so\nretiring a generation of variants, or a scheduled adjustment across many of them, is as\ncheap as creating it was.\n\n`POST /v1/conditional-pricing/{slug}/variants:batchDelete`\n\n```ts\nconst { data } = await client.$batchDeleteConditionalVariants(\n {\n slug: \'example\',\n },\n {\n correlation_id: \'postal-code-cleanup-2026-09\',\n items: [\n {\n entity_id: \'price-sp26d1yo\',\n variant_id: \'var-46045\',\n valid_from: \'2027-01-01T00:00:00Z\'\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "correlation_id": "postal-code-cleanup-2026-09",\n "counts": {\n "deleted": 1,\n "skipped": 1,\n "error": 1\n },\n "results": [\n {\n "outcome": "deleted",\n "entity_id": "price-sp26d1yo",\n "variant_id": "var-46045",\n "valid_from": "2027-01-01T00:00:00.000Z",\n "warnings": [\n {\n "code": "VARIANT_COUNT_APPROACHING_CAP",\n "message": "string",\n "details": {\n "variant_count": 0,\n "cap": 0\n }\n }\n ],\n "error": {\n "code": "SCHEMA_NOT_FOUND",\n "details": {\n "schema": "price"\n }\n }\n }\n ]\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `IntegrationId`\n\n```ts\ntype IntegrationId = "getag" | "external-catalog"\n```\n\n### `ConditionalEntitySlug`\n\nSchema slug of an entity type that can be conditional \u2014 the `{slug}` of every\nconditional-pricing route.\n\n\n```ts\ntype ConditionalEntitySlug = "product" | "price" | "coupon"\n```\n\n### `ConditionType`\n\nThe kind of value a condition holds, which decides how a variant\'s pinned value is matched\nagainst a resolve context.\n\n- `string`: an arbitrary string, matched exactly and case-sensitively\n- `number`: a numeric value\n- `date`: a single date\n- `daterange`: a window with a from and an until timestamp;\n\n```ts\ntype ConditionType = "string" | "number" | "date" | "daterange" | "boolean" | "select" | "location"\n```\n\n### `ConditionDefinition`\n\nOne condition dimension, in the shape a schema\'s `conditions` array holds it \u2014 copy it in\nverbatim.\n\n\n```ts\ntype ConditionDefinition = {\n id: string // uuid\n name: string\n label: string\n type: "string" | "number" | "date" | "daterange" | "boolean" | "select" | "location"\n options?: Array<string | {\n value: string\n title?: string\n }>\n format?: "zipcode" | "zipcode_town"\n}\n```\n\n### `ConditionSet`\n\nA named bundle of condition definitions, built in for one entity type.\n\n```ts\ntype ConditionSet = {\n id: string\n label: string\n description: string\n conditions: Array<{\n id: string // uuid\n name: string\n label: string\n type: "string" | "number" | "date" | "daterange" | "boolean" | "select" | "location"\n options?: Array<string | {\n value: { ... }\n title?: { ... }\n }>\n format?: "zipcode" | "zipcode_town"\n }>\n}\n```\n\n### `ConditionSetCatalog`\n\n```ts\ntype ConditionSetCatalog = {\n results: Array<{\n id: string\n label: string\n description: string\n conditions: Array<{\n id: { ... }\n name: { ... }\n label: { ... }\n type: { ... }\n options?: { ... }\n format?: { ... }\n }>\n }>\n}\n```\n\n### `ConditionalPricingErrorCode`\n\nMachine-readable failure mode of a conditional-pricing operation, allowing clients\nto branch on the kind of failure instead of parsing the error message.\n\n- `SCHEMA_NOT_FOUND` (404): no conditional entity type by that slug\n- `ENTITY_NOT_FOUND` (404): the schema holds no entity with that id\n- `ENTITY\n\n```ts\ntype ConditionalPricingErrorCode = "SCHEMA_NOT_FOUND" | "ENTITY_NOT_FOUND" | "ENTITY_TYPE_MISMATCH" | "ENTITY_NOT_CONDITIONAL" | "VARIANT_NOT_FOUND" | "VERSION_NOT_FOUND" | "NO_MATCHES" | "NO_ACTIVE_VERSION" | "AMBIGUOUS_RESOLUTION" | "TUPLE_CONFLICT" | "VERSION_CONFLICT" | "CONDITION_UNDEFINED" | "OPERATOR_UNSUPPORTED" | "CONTEXT_FORMAT_INVALID" | "CONDITION_VALUE_INVALID" | "TOO_MANY_MATCHES" | "WRITE_CONFLICT" | "OFFSET_WINDOW_EXCEEDED" | "CURSOR_INVALID" | "VARIANT_LIMIT_REACHED" | "PIN_FORMAT_INVALID" | "VARIANT_UNPINNED" | "LAST_VERSION_UNDELETABLE"\n```\n\n### `ResolveConditionalEntityRequest`\n\nA resolve names one conditional entity, then says which of its variants it means \u2014 one of two\nways, and never both. `context` describes a situation and asks which variants apply to it;\n`variant_id` names one variant and skips matching entirely.\n\nA body carrying both, or neither, is a validation `400\n\n```ts\ntype ResolveConditionalEntityRequest = {\n schema: "product" | "price" | "coupon"\n entity_id: string\n context: Record<string, unknown>\n as_of?: string\n options?: {\n resolve_one?: boolean\n hydrate?: boolean\n }\n} | {\n schema: "product" | "price" | "coupon"\n entity_id: string\n variant_id: string\n as_of?: string\n options?: {\n hydrate?: boolean\n }\n}\n```\n\n### `ResolveByContextRequest`\n\nResolve by matching a situation: which of this entity\'s variants apply to `context`, each\ncomposed with the version in effect at `as_of`.\n\n\n```ts\ntype ResolveByContextRequest = {\n schema: "product" | "price" | "coupon"\n entity_id: string\n context: Record<string, unknown>\n as_of?: string\n options?: {\n resolve_one?: boolean\n hydrate?: boolean\n }\n}\n```\n\n### `ResolveByPinRequest`\n\nResolve by naming a variant: compose this one, whatever a context would have matched. What an\norder needs to show the numbers a customer agreed to, and what a contract needs to show what\nis billable now \u2014 the two differ only in whether `as_of` is supplied.\n\n\n```ts\ntype ResolveByPinRequest = {\n schema: "product" | "price" | "coupon"\n entity_id: string\n variant_id: string\n as_of?: string\n options?: {\n hydrate?: boolean\n }\n}\n```\n\n### `ResolveContext`\n\nThe situation to resolve for: a flat map keyed by condition name, as the entity\'s schema\ndeclares them. A condition left out of the map is not a wildcard \u2014 it matches only variants\nthat leave that condition unpinned.\n\nEach value is either an exact value, typed by its condition, or a single-operator \n\n```ts\ntype ResolveContext = Record<string, unknown>\n```\n\n### `ResolveOptions`\n\nThe options a context resolve accepts. A pin takes `PinnedResolveOptions` instead.\n\n```ts\ntype ResolveOptions = {\n resolve_one?: boolean\n hydrate?: boolean\n}\n```\n\n### `PinnedResolveOptions`\n\nThe options a pinned resolve accepts \u2014 `hydrate` and nothing else. `resolve_one` has nothing\nto change on this branch, where the answer is exactly one result or a 404, so a body sending\nit is a validation `400`. `hydrate` means what `ResolveOptions.hydrate` means.\n\n\n```ts\ntype PinnedResolveOptions = {\n hydrate?: boolean\n}\n```\n\n### `ResolvedVariants`\n\n```ts\ntype ResolvedVariants = {\n results: Array<{\n _id: string\n _variant_id: string\n _version_valid_from: string\n _conditions: {\n default: { ... }\n }\n _inert_overrides: Array<{\n attribute: { ... }\n reason: { ... }\n }>\n }>\n}\n```\n\n### `ResolvedVariant`\n\nThe entity as this variant leaves it \u2014 every attribute of a plain entity read, with the\napplicable version\'s overrides applied \u2014 plus the discriminators saying where the numbers\ncame from.\n\nWith `options.hydrate`, a relation attribute holds the entities it references rather than the\nreferences thems\n\n```ts\ntype ResolvedVariant = {\n _id: string\n _variant_id: string\n _version_valid_from: string\n _conditions: {\n default: boolean\n }\n _inert_overrides: Array<{\n attribute: string\n reason: "ATTRIBUTE_NOT_OVERRIDABLE" | "ATTRIBUTE_READONLY" | "ATTRIBUTE_HIDDEN" | "ATTRIBUTE_COMPUTED" | "ATTRIBUTE_UNDECLARED" | "TYPE_NOT_OVERRIDABLE" | "CAPABILITY_NOT_OVERRIDABLE"\n }>\n}\n```\n\n### `CreateVariantRequest`\n\n```ts\ntype CreateVariantRequest = {\n conditions?: Record<string, unknown>\n default?: boolean\n valid_from?: string\n values: Record<string, unknown>\n}\n```\n\n### `VariantConditions`\n\nA variant\'s pinned conditions as a reader sees them: the pins the schema declares, plus a\nboolean `default` saying whether this is the entity\'s fallback.\n\n`default` is always present and always a boolean, so a client can branch on "did I get the\nfallback?" without knowing how one is stored. The rese\n\n```ts\ntype VariantConditions = {\n default: boolean\n}\n```\n\n### `PinnedConditions`\n\nThe situation this variant applies to: a flat map keyed by condition name, as the entity\'s\nschema declares them. A condition left out is a wildcard \u2014 the variant applies whatever the\ncontext says for it, which is what makes adding a condition to a schema non-breaking for the\nvariants that already ex\n\n```ts\ntype PinnedConditions = Record<string, unknown>\n```\n\n### `VariantValues`\n\nThe attribute values this version overrides on the base entity, keyed by attribute name.\n\nOnly attributes currently declaring `overridable_attribute` are applied. Metadata fields\n(anything underscore-prefixed), readonly attributes, hidden attributes, computed attributes,\nattributes of a type no vari\n\n```ts\ntype VariantValues = Record<string, unknown>\n```\n\n### `CreatedVariant`\n\n```ts\ntype CreatedVariant = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: boolean\n }\n valid_from: string\n values: Record<string, unknown>\n _created_at: string\n _updated_at: string\n _revision: number\n warnings: Array<{\n code: "VARIANT_COUNT_APPROACHING_CAP"\n message: string\n details: {\n variant_count: { ... }\n cap: { ... }\n }\n } | {\n code: "ACTIVE_VERSION_CHANGED"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "SUPERSEDED_VERSION_WRITTEN"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "ATTRIBUTES_NOT_APPLIED"\n message: string\n details: {\n attributes: { ... }\n }\n }>\n}\n```\n\n### `WriteWarning`\n\nSomething worth knowing that did not stop a write.\n\nOne vocabulary for every write, so a client branches on what happened rather than on which\nendpoint it called. `code` and `message` are the only two fields every code shares; everything\nelse lives in a `details` object typed per code, so narrowing \n\n```ts\ntype WriteWarning = {\n code: "VARIANT_COUNT_APPROACHING_CAP"\n message: string\n details: {\n variant_count: number\n cap: number\n }\n} | {\n code: "ACTIVE_VERSION_CHANGED"\n message: string\n details: {\n valid_from: string\n active_valid_from?: string\n }\n} | {\n code: "SUPERSEDED_VERSION_WRITTEN"\n message: string\n details: {\n valid_from: string\n active_valid_from?: string\n }\n} | {\n code: "ATTRIBUTES_NOT_APPLIED"\n message: string\n details: {\n attributes: Array<{\n attribute: { ... }\n reason: { ... }\n }>\n }\n}\n```\n\n### `VersionMoved`\n\nWhich version a write moved, and which one was in effect while it did.\n\n\n```ts\ntype VersionMoved = {\n valid_from: string\n active_valid_from?: string\n}\n```\n\n### `InertOverride`\n\nOne override that did not apply, and why.\n\nThe same entry on both sides of the feature: a write reports the attributes in its body it did\nnot store, and a resolved payload reports the stored overrides composition did not apply. Those\nare the same fact observed at two moments, so a client learns one \n\n```ts\ntype InertOverride = {\n attribute: string\n reason: "ATTRIBUTE_NOT_OVERRIDABLE" | "ATTRIBUTE_READONLY" | "ATTRIBUTE_HIDDEN" | "ATTRIBUTE_COMPUTED" | "ATTRIBUTE_UNDECLARED" | "TYPE_NOT_OVERRIDABLE" | "CAPABILITY_NOT_OVERRIDABLE"\n}\n```\n\n### `InertOverrideReason`\n\nWhy one override did not apply.\n\n- `ATTRIBUTE_NOT_OVERRIDABLE`: the entity\'s schema declares the attribute but has not granted\n it `overridable_attribute`. Granting the flag is an ordinary schema edit, which makes this\n the reason most often worth acting on.\n- `ATTRIBUTE_READONLY`: the attribute i\n\n```ts\ntype InertOverrideReason = "ATTRIBUTE_NOT_OVERRIDABLE" | "ATTRIBUTE_READONLY" | "ATTRIBUTE_HIDDEN" | "ATTRIBUTE_COMPUTED" | "ATTRIBUTE_UNDECLARED" | "TYPE_NOT_OVERRIDABLE" | "CAPABILITY_NOT_OVERRIDABLE"\n```\n\n### `DeletedVariant`\n\n```ts\ntype DeletedVariant = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n tuple_released: boolean\n versions_deleted: number\n}\n```\n\n### `VariantVersion`\n\nOne version of one variant: the attribute overrides it carries, the instant it takes effect,\nand the variant it belongs to.\n\nThese are the version\'s **own** overrides, not the base entity overlaid with them \u2014 this is\nwhat an editing screen loads and saves, and what it edits is the overrides. Composi\n\n```ts\ntype VariantVersion = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: boolean\n }\n valid_from: string\n values: Record<string, unknown>\n _created_at: string\n _updated_at: string\n _revision: number\n}\n```\n\n### `WrittenVariantVersion`\n\nA version as a write left it, together with anything the write moved.\n\n\n```ts\ntype WrittenVariantVersion = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: boolean\n }\n valid_from: string\n values: Record<string, unknown>\n _created_at: string\n _updated_at: string\n _revision: number\n warnings: Array<{\n code: "VARIANT_COUNT_APPROACHING_CAP"\n message: string\n details: {\n variant_count: { ... }\n cap: { ... }\n }\n } | {\n code: "ACTIVE_VERSION_CHANGED"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "SUPERSEDED_VERSION_WRITTEN"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "ATTRIBUTES_NOT_APPLIED"\n message: string\n details: {\n attributes: { ... }\n }\n }>\n}\n```\n\n### `DeletedVariantVersion`\n\n```ts\ntype DeletedVariantVersion = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n valid_from: string\n warnings: Array<{\n code: "VARIANT_COUNT_APPROACHING_CAP"\n message: string\n details: {\n variant_count: { ... }\n cap: { ... }\n }\n } | {\n code: "ACTIVE_VERSION_CHANGED"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "SUPERSEDED_VERSION_WRITTEN"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "ATTRIBUTES_NOT_APPLIED"\n message: string\n details: {\n attributes: { ... }\n }\n }>\n}\n```\n\n### `AppendVersionRequest`\n\n```ts\ntype AppendVersionRequest = {\n valid_from?: string\n values: Record<string, unknown>\n conditions?: Record<string, unknown>\n}\n```\n\n### `ReplaceVersionRequest`\n\n```ts\ntype ReplaceVersionRequest = {\n values: Record<string, unknown>\n _revision: number\n valid_from?: string\n conditions?: Record<string, unknown>\n}\n```\n\n### `PatchVersionRequest`\n\n```ts\ntype PatchVersionRequest = {\n values: Record<string, unknown>\n _revision: number\n valid_from?: string\n conditions?: Record<string, unknown>\n}\n```\n\n### `ListVariantsRequest`\n\nHow to narrow and page a variant listing. Every property is optional, so `{}` is a valid body\nand asks for the first ten variants of the entity in `variant_id` order \u2014 the body itself is\nrequired, and an omitted one is a request-validation `400` rather than an unnarrowed page.\n\n`conditions` and `sea\n\n```ts\ntype ListVariantsRequest = {\n conditions?: Record<string, unknown>\n search?: string\n sort?: string\n from?: number\n size?: number\n cursor?: string\n}\n```\n\n### `VariantTreeRequest`\n\nThe variants list\'s request plus `as_of`, the instant each row\'s version is selected at.\n`size` is clamped at 100 here; every other shared property means what it means on the list.\n\n\n```ts\ntype VariantTreeRequest = {\n conditions?: Record<string, unknown>\n search?: string\n sort?: string\n from?: number\n size?: number\n cursor?: string\n as_of?: string\n}\n```\n\n### `VariantConditionFilter`\n\nWhich pins a variant must carry to be listed: a flat map keyed by condition name, as the\nentity\'s schema declares them. A condition left out of the map is not filtered on at all.\n\nEach value is either an exact value, typed by its condition, or a single-operator predicate\nobject \u2014 the same seven a re\n\n```ts\ntype VariantConditionFilter = Record<string, unknown>\n```\n\n### `VariantList`\n\n```ts\ntype VariantList = {\n hits: number\n results: Array<{\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: { ... }\n }\n }>\n next?: string\n}\n```\n\n### `VariantListRow`\n\nOne variant as a listing reports it: which variant it is and what it pins.\n\nNo `_revision` \u2014 a write re-reads its version through that version\'s own `GET` \u2014 and no\n`_inert_overrides`, since a listing reports what is stored and only `:resolve` honours the\nschema.\n\n\n```ts\ntype VariantListRow = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: boolean\n }\n}\n```\n\n### `VariantTree`\n\n```ts\ntype VariantTree = {\n hits: number\n results: Array<{\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: { ... }\n }\n status: "active" | "scheduled"\n version: {\n variant_id: { ... }\n entity_id: { ... }\n schema: { ... }\n conditions: { ... }\n valid_from: { ... }\n values: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n }\n }>\n next?: string\n}\n```\n\n### `VariantTreeRow`\n\nA listing row plus the one version the tree view shows for it, and the status saying which\nversion that is.\n\n\n```ts\ntype VariantTreeRow = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: boolean\n }\n status: "active" | "scheduled"\n version: {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: { ... }\n }\n valid_from: string\n values: Record<string, unknown>\n _created_at: string\n _updated_at: string\n }\n}\n```\n\n### `VariantTreeRowStatus`\n\nWhether a tree row\'s version is the one in effect at `as_of`, or one still ahead of it.\n\nExactly two values, and every row has one: a variant always has at least one version, so\neither a version is in effect at `as_of` or every version of that variant is still to come.\n\n- `active`: `version` is the \n\n```ts\ntype VariantTreeRowStatus = "active" | "scheduled"\n```\n\n### `VariantVersionSnapshot`\n\nOne version of one variant as a listing reports it: `VariantVersion` without `_revision`.\n\nThe revision is missing on purpose. An editing screen re-reads the one version it is about to\nwrite through that version\'s own `GET`, which is strongly consistent, and writes with the\nrevision it gets back.\n\nE\n\n```ts\ntype VariantVersionSnapshot = {\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: boolean\n }\n valid_from: string\n values: Record<string, unknown>\n _created_at: string\n _updated_at: string\n}\n```\n\n### `VariantVersionList`\n\n```ts\ntype VariantVersionList = {\n results: Array<{\n variant_id: string\n entity_id: string\n schema: "product" | "price" | "coupon"\n conditions: {\n default: { ... }\n }\n valid_from: string\n values: Record<string, unknown>\n _created_at: string\n _updated_at: string\n }>\n next?: string\n}\n```\n\n### `BatchUpsertVariantsRequest`\n\nA batch of variant writes under one schema, each item naming the entity it writes to.\n\n\n```ts\ntype BatchUpsertVariantsRequest = {\n correlation_id?: string\n items: Array<{\n entity_id: string\n conditions?: Record<string, unknown>\n default?: boolean\n valid_from?: string\n values: Record<string, unknown>\n }>\n}\n```\n\n### `BatchUpsertItem`\n\nOne variant write: the entity it belongs to, the situation it applies to, and the values it\ncarries \u2014 the single-item create\'s body plus `entity_id`. The two differ on `conditions`: on\na create an existing tuple is `TUPLE_CONFLICT`, and here it is a version appended to the\nvariant already holding it\n\n```ts\ntype BatchUpsertItem = {\n entity_id: string\n conditions?: Record<string, unknown>\n default?: boolean\n valid_from?: string\n values: Record<string, unknown>\n}\n```\n\n### `BatchDeleteVariantsRequest`\n\nA batch of variant and version deletes under one schema, each item naming the entity it\nremoves from.\n\n\n```ts\ntype BatchDeleteVariantsRequest = {\n correlation_id?: string\n items: Array<{\n entity_id: string\n variant_id: string\n valid_from?: string\n } | {\n entity_id: string\n conditions?: Record<string, unknown>\n default?: boolean\n valid_from?: string\n }>\n}\n```\n\n### `BatchDeleteItem`\n\nOne delete: the variant, addressed by id or by the condition tuple it pins, and optionally\nthe one version of it to remove.\n\nExactly one of the two forms. An item carrying both a `variant_id` and `conditions` matches\nneither branch and is an envelope `400`, since the request validator rejects the bo\n\n```ts\ntype BatchDeleteItem = {\n entity_id: string\n variant_id: string\n valid_from?: string\n} | {\n entity_id: string\n conditions?: Record<string, unknown>\n default?: boolean\n valid_from?: string\n}\n```\n\n### `BatchDeleteByVariantId`\n\nA delete addressing its variant by id \u2014 the form a cleanup pass uses after the schema has\ndrifted, since a tuple naming a condition the schema no longer declares addresses nothing.\n\n\n```ts\ntype BatchDeleteByVariantId = {\n entity_id: string\n variant_id: string\n valid_from?: string\n}\n```\n\n### `BatchDeleteByConditions`\n\nA delete addressing its variant by the situation it applies to \u2014 the form an importer uses\nwhen it knows the source rows rather than the ids they produced.\n\n`conditions` is optional because the entity\'s fallback variant pins nothing: an item\naddressing it sends `default: true` and no `conditions`, e\n\n```ts\ntype BatchDeleteByConditions = {\n entity_id: string\n conditions?: Record<string, unknown>\n default?: boolean\n valid_from?: string\n}\n```\n\n### `BatchUpsertResult`\n\nWhat a batch upsert did: one entry per item, in request order, and a count per outcome.\n\n\n```ts\ntype BatchUpsertResult = {\n correlation_id?: string\n counts: {\n variant_created: number\n version_created: number\n updated: number\n skipped: number\n error: number\n }\n results: Array<{\n outcome: "variant_created" | "version_created" | "updated" | "skipped" | "error"\n entity_id: string\n variant_id?: string\n valid_from?: string\n warnings: Array<{\n code: { ... }\n message: { ... }\n details: { ... }\n } | {\n code: { ... }\n message: { ... }\n details: { ... }\n } | {\n code: { ... }\n message: { ... }\n details: { ... }\n } | {\n code: { ... }\n message: { ... }\n details: { ... }\n }>\n error?: {\n message: { ... }\n status?: { ... }\n cause?: { ... }\n error?: { ... }\n }\n }>\n}\n```\n\n### `BatchDeleteResult`\n\nWhat a batch delete did: one entry per item, in request order, and a count per outcome.\n\n\n```ts\ntype BatchDeleteResult = {\n correlation_id?: string\n counts: {\n deleted: number\n skipped: number\n error: number\n }\n results: Array<{\n outcome: "deleted" | "skipped" | "error"\n entity_id: string\n variant_id?: string\n valid_from?: string\n warnings: Array<{\n code: { ... }\n message: { ... }\n details: { ... }\n } | {\n code: { ... }\n message: { ... }\n details: { ... }\n } | {\n code: { ... }\n message: { ... }\n details: { ... }\n } | {\n code: { ... }\n message: { ... }\n details: { ... }\n }>\n error?: {\n message: { ... }\n status?: { ... }\n cause?: { ... }\n error?: { ... }\n }\n }>\n}\n```\n\n### `BatchUpsertOutcome`\n\nWhat one upsert item did, derived from what was stored rather than from a mode the caller\ndeclared.\n\n- `variant_created`: the condition tuple was unknown, so a variant and its first version were\n created. The entry\'s `variant_id` is the id an order or contract pins.\n- `version_created`: the tuple w\n\n```ts\ntype BatchUpsertOutcome = "variant_created" | "version_created" | "updated" | "skipped" | "error"\n```\n\n### `BatchDeleteOutcome`\n\nWhat one delete item did.\n\n- `deleted`: the variant, or the one version the item named, is gone.\n- `skipped`: the item addressed nothing \u2014 **the variant or the version**, never the entity. An\n entity that cannot answer the item is an `error` carrying `ENTITY_NOT_FOUND`,\n `ENTITY_TYPE_MISMATCH` or \n\n```ts\ntype BatchDeleteOutcome = "deleted" | "skipped" | "error"\n```\n\n### `BatchUpsertCounts`\n\nHow many items reached each outcome. Keyed by exactly the values of `BatchUpsertOutcome`, all\nof them present, so a logger reads a count without `?? 0`.\n\n**They sum to the length of `results`.** There is no `total`.\n\n\n```ts\ntype BatchUpsertCounts = {\n variant_created: number\n version_created: number\n updated: number\n skipped: number\n error: number\n}\n```\n\n### `BatchDeleteCounts`\n\nHow many items reached each outcome. Keyed by exactly the values of `BatchDeleteOutcome`, all\nof them present, and summing to the length of `results`. No `total`.\n\n\n```ts\ntype BatchDeleteCounts = {\n deleted: number\n skipped: number\n error: number\n}\n```\n\n### `BatchUpsertResultEntry`\n\nWhat one upsert item did, and anything worth knowing about it.\n\n**It carries nothing else.** Position in `results` is the contract, so no entry carries an\nindex; nothing the caller sent is echoed back beyond `entity_id`; and there is no `_revision`\n\u2014 an editing screen re-reads the version it is abou\n\n```ts\ntype BatchUpsertResultEntry = {\n outcome: "variant_created" | "version_created" | "updated" | "skipped" | "error"\n entity_id: string\n variant_id?: string\n valid_from?: string\n warnings: Array<{\n code: "VARIANT_COUNT_APPROACHING_CAP"\n message: string\n details: {\n variant_count: { ... }\n cap: { ... }\n }\n } | {\n code: "ACTIVE_VERSION_CHANGED"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "SUPERSEDED_VERSION_WRITTEN"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "ATTRIBUTES_NOT_APPLIED"\n message: string\n details: {\n attributes: { ... }\n }\n }>\n error?: {\n message: string\n status?: number\n cause?: string\n error?: string | Record<string, unknown>[]\n }\n}\n```\n\n### `BatchDeleteResultEntry`\n\nWhat one delete item did, and anything worth knowing about it.\n\nThe same six properties as a batch upsert entry, and it carries nothing else.\n\n\n```ts\ntype BatchDeleteResultEntry = {\n outcome: "deleted" | "skipped" | "error"\n entity_id: string\n variant_id?: string\n valid_from?: string\n warnings: Array<{\n code: "VARIANT_COUNT_APPROACHING_CAP"\n message: string\n details: {\n variant_count: { ... }\n cap: { ... }\n }\n } | {\n code: "ACTIVE_VERSION_CHANGED"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "SUPERSEDED_VERSION_WRITTEN"\n message: string\n details: {\n valid_from: { ... }\n active_valid_from?: { ... }\n }\n } | {\n code: "ATTRIBUTES_NOT_APPLIED"\n message: string\n details: {\n attributes: { ... }\n }\n }>\n error?: {\n message: string\n status?: number\n cause?: string\n error?: string | Record<string, unknown>[]\n }\n}\n```\n\n### `Error`\n\n```ts\ntype Error = {\n message: string\n status?: number\n cause?: string\n}\n```\n\n### `ReportedError`\n\nThe `error` field of an error response: the message, or \u2014 where the request itself failed\nvalidation before any handler ran \u2014 the validation errors themselves, which those 400s put\nhere in place of a string.\n\nA conditional-pricing operation answers a body its schema rejects with the list, and\neveryt\n\n```ts\ntype ReportedError = string | Record<string, unknown>[]\n```\n\n### `ConditionalPricingError`\n\nAn error from a conditional-pricing operation, carrying a machine-readable `code` from the\nconditional-pricing vocabulary plus the structured data that code explains, so a client can\nbranch on the kind of failure rather than parse the message.\nReferenced only by the operations that emit these codes;\n\n```ts\ntype ConditionalPricingError = {\n message: string\n status?: number\n cause?: string\n error?: string | Record<string, unknown>[]\n}\n```\n\n### `Product`\n\nThe product entity\n\n```ts\ntype Product = {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: string[]\n feature?: string\n }>\n cross_sellable_products?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n product_images?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n } | Array<{\n _id: string\n filename: string\n mime_type: string\n versions: Array<{\n s3ref: { ... }\n }>\n _schema: string\n _org: string\n _created_at: string // date-time\n _updated_at: string // date-time\n _title?: string\n $relation?: {\n entity_id?: { ... }\n _tags?: { ... }\n }\n }>\n product_downloads?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n } | Array<{\n _id: string\n filename: string\n mime_type: string\n versions: Array<{\n s3ref: { ... }\n }>\n _schema: string\n _org: string\n _created_at: string // date-time\n _updated_at: string // date-time\n _title?: string\n $relation?: {\n entity_id?: { ... }\n _tags?: { ... }\n }\n }>\n price_options?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: string\n filename: string\n mime_type: string\n versions: Array<{\n s3ref: { ... }\n }>\n _schema: string\n _org: string\n _created_at: string // date-time\n _updated_at: string // date-time\n _title?: string\n $relation?: {\n entity_id?: { ... }\n _tags?: { ... }\n }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n}\n```\n\n### `Opportunity`\n\nThe opportunity entity\n\n```ts\ntype Opportunity = {\n opportunity_number?: string\n opportunity_title?: string\n description?: string\n status?: string\n due_date?: string\n assignee?: Array<{\n id?: string\n email?: string\n display_name?: string\n token?: string\n image_uri?: string\n organization_id?: string\n department?: string\n preferred_language?: string\n status?: string\n phone?: string\n email_notification_settings?: object\n is_signature_enabled?: boolean\n created_at?: string\n }>\n customer?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n dates?: Array<{\n _tags?: string[]\n value?: string\n }>\n billing_address?: {\n $relation_ref?: Array<{\n entity_id?: { ... }\n path?: { ... }\n }>\n }\n delivery_address?: {\n $relation_ref?: Array<{\n entity_id?: { ... }\n path?: { ... }\n }>\n }\n address?: {\n $relation_ref?: Array<{\n entity_id?: { ... }\n path?: { ... }\n }>\n }\n items?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n _org_id?: string\n _id?: string\n _created_at?: string\n _updated_at?: string\n source_type?: string\n source_id?: string\n source?: {\n http?: string\n title?: string\n }\n _tags?: string[]\n}\n```\n\n### `Order`\n\nThe order entity\n\n```ts\ntype Order = {\n order_number?: string\n cart_id?: string\n status?: "draft" | "quote" | "placed" | "cancelled" | "completed"\n source_type?: string\n source_id?: string\n source?: {\n http?: string\n title?: string\n }\n metadata?: Array<{\n key?: string\n value?: string\n }>\n customer?: {\n $relation?: Array<{\n entity_id?: { ... }\n _tags?: { ... }\n }>\n }\n billing_first_name?: string\n billing_last_name?: string\n billing_company_name?: string\n billing_vat?: string\n billing_email?: string\n billing_phone?: string\n billing_address?: Array<{\n _tags?: string[]\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n additional_info?: string\n company_name?: string\n first_name?: string\n last_name?: string\n salutation?: string\n title?: string\n }>\n currency?: string\n delivery_address?: Array<{\n _tags?: string[]\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n additional_info?: string\n company_name?: string\n first_name?: string\n last_name?: string\n salutation?: string\n title?: string\n }>\n payment_method?: Array<{\n type?: string\n details?: Record<string, unknown>\n }>\n line_items?: Array<{\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n name?: { ... }\n value?: { ... }\n metadata?: { ... }\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: { ... }\n code?: { ... }\n type?: { ... }\n name?: { ... }\n categories?: { ... }\n feature?: { ... }\n cross_sellable_products?: { ... }\n product_images?: { ... }\n product_downloads?: { ... }\n price_options?: { ... }\n is_conditional?: { ... }\n _availability_files?: { ... }\n _id?: { ... }\n _title?: { ... }\n _org_id?: { ... }\n _created_at?: { ... }\n _updated_at?: { ... }\n }\n } | {\n metadata?: Array<{\n key?: { ... }\n // ...\n}\n```\n\n### `Price`\n\nThe price entity schema for simple pricing\n\n```ts\ntype Price = {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n}\n```\n\n### `BaseCompositePrice`\n\nThe common properties for a composite price entity, without the price components\n\n```ts\ntype BaseCompositePrice = {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n}\n```\n\n### `NonHydratedCompositePrice`\n\nThe composite price entity\n\n```ts\ntype NonHydratedCompositePrice = {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n}\n```\n\n### `HydratedCompositePrice`\n\nThe composite price entity\n\n```ts\ntype HydratedCompositePrice = {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n}\n```\n\n### `CompositePrice`\n\nThe composite price entity\n\n```ts\ntype CompositePrice = {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n} | {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n}\n```\n\n### `PriceComponentRelation`\n\n```ts\ntype PriceComponentRelation = {\n entity_id?: string\n quantity?: number\n _tags?: string[]\n}\n```\n\n### `MetaData`\n\nA set of key-value pairs used to store meta data information about an entity.\n\n```ts\ntype MetaData = Array<{\n key?: string\n value?: string\n}>\n```\n\n### `PriceInputMappings`\n\n```ts\ntype PriceInputMappings = Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n}>\n```\n\n### `PriceInputMapping`\n\n```ts\ntype PriceInputMapping = {\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n}\n```\n\n### `PriceConditions`\n\n```ts\ntype PriceConditions = {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n}\n```\n\n### `ExternalFeeMetadata`\n\n```ts\ntype ExternalFeeMetadata = {\n amount_total: number\n amount_total_decimal: string\n amount_static?: number\n amount_static_decimal?: unknown\n amount_variable_ht?: number\n amount_variable_decimal_ht?: string\n unit_amount_variable_ht?: number\n unit_amount_variable_decimal_ht?: string\n amount_variable_nt?: number\n amount_variable_decimal_nt?: string\n unit_amount_variable_nt?: number\n unit_amount_variable_decimal_nt?: string\n currency: string\n billing_period: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n breakdown: {\n static?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n variable?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n variable_ht?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n variable_nt?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `ExternalLocationMetadata`\n\n```ts\ntype ExternalLocationMetadata = {\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: Array<{\n name: { ... }\n codeNumber: { ... }\n validFrom?: { ... }\n validUntil?: { ... }\n }>\n defaultSuppliers: Array<{\n name: { ... }\n codeNumber: { ... }\n validFrom?: { ... }\n validUntil?: { ... }\n }>\n marketAreaDetails: {\n gasType?: { ... }\n marketArea?: { ... }\n virtualTradingPoint?: { ... }\n } | {\n controlZone?: { ... }\n balancingZone?: { ... }\n }\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `ExternalPriceMetadata`\n\n```ts\ntype ExternalPriceMetadata = {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n price: {\n unit_amount: number\n unit_amount_decimal: string\n unit_amount_currency: string\n timestamp: string\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `ExternalFeeMappings`\n\n```ts\ntype ExternalFeeMappings = Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n amount_total?: number\n amount_total_decimal?: string\n}>\n```\n\n### `ExternalFeeMapping`\n\n```ts\ntype ExternalFeeMapping = {\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n amount_total?: number\n amount_total_decimal?: string\n}\n```\n\n### `CatalogSearch`\n\nA catalog search payload\n\n```ts\ntype CatalogSearch = {\n q: string\n sort?: string\n from?: number\n size?: number\n hydrate?: boolean\n fields?: string[]\n availability?: {\n location: {\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n }\n available_date?: string // date\n }\n}\n```\n\n### `CatalogFieldsParam`\n\nList of entity fields to include or exclude from the results.\n\n\n```ts\ntype CatalogFieldsParam = string[]\n```\n\n### `CatalogSearchResult`\n\nThe query result payload\n\n```ts\ntype CatalogSearchResult = {\n hits?: number\n results?: Array<{\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n } | {\n billing_duration_amount?: number\n billing_duration_unit?: "days" | "weeks" | "months" | "years"\n notice_time_amount?: number\n notice_time_unit?: "days" | "weeks" | "months" | "years"\n termination_time_amount?: number\n termination_time_unit?: "days" | "weeks" | "months" | "years"\n renewal_duration_amount?: number\n renewal_duration_unit?: "days" | "weeks" | "months" | "years"\n } | {\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n }>\n}\n```\n\n### `SearchProvidersParams`\n\nA search providers payload\n\n```ts\ntype SearchProvidersParams = {\n type: "power" | "gas"\n postal_code: string\n city?: string\n street?: string\n street_number?: string\n}\n```\n\n### `SearchStreetsParams`\n\nA search streets payload\n\n```ts\ntype SearchStreetsParams = {\n postal_code: string\n city: string\n}\n```\n\n### `AvailabilityCheckParams`\n\nAvailability check request payload\n\n```ts\ntype AvailabilityCheckParams = {\n products: string[]\n filters: {\n location: {\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n }\n available_date?: string // date\n }\n}\n```\n\n### `AvailabilityResult`\n\nThe product availability check result payload\n\n```ts\ntype AvailabilityResult = {\n available_products: string[]\n check_results?: Array<{\n product_id: string\n matching_hits?: number\n matching_error?: Record<string, unknown>\n }>\n}\n```\n\n### `ValidateAvailabilityFileError`\n\nThe availability rule error\n\n```ts\ntype ValidateAvailabilityFileError = {\n line?: number\n msg: string\n data?: string\n}\n```\n\n### `IntegrationCredentialsResult`\n\nThe auth credentials for external integrations\n\n```ts\ntype IntegrationCredentialsResult = {\n username: string\n password: string\n auth_type?: "basic_auth"\n base_url?: string\n} | {\n auth_type: "oauth"\n oauth: {\n client_id: string\n client_secret: string\n authorization_url: string\n grant_type: "client_credentials"\n scope?: string\n access_token?: string\n access_token_expires_in?: number\n access_token_expires_at?: number\n }\n base_url?: string\n}\n```\n\n### `SaveIntegrationCredentialsParams`\n\nThe auth credentials for external integrations\n\n```ts\ntype SaveIntegrationCredentialsParams = {\n username: string\n password: string\n auth_type?: "basic_auth"\n base_url?: string\n} | {\n auth_type: "oauth"\n oauth: {\n client_id: string\n client_secret: string\n authorization_url: string\n grant_type: "client_credentials"\n scope?: string\n access_token?: string\n access_token_expires_in?: number\n access_token_expires_at?: number\n }\n base_url?: string\n}\n```\n\n### `ComputePriceParamsBase`\n\n```ts\ntype ComputePriceParamsBase = {\n postal_code: string\n consumption_type?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n consumption?: number\n consumption_HT?: number\n consumption_NT?: number\n association_id?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n reference_date?: string // date\n}\n```\n\n### `ComputePriceParamsPower`\n\n```ts\ntype ComputePriceParamsPower = {\n postal_code: string\n consumption_type?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n consumption?: number\n consumption_HT?: number\n consumption_NT?: number\n association_id?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n reference_date?: string // date\n type: "power"\n meter_type?: "classic" | "smart" | "digital"\n}\n```\n\n### `ComputePriceParamsGas`\n\n```ts\ntype ComputePriceParamsGas = {\n postal_code: string\n consumption_type?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n consumption?: number\n consumption_HT?: number\n consumption_NT?: number\n association_id?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n reference_date?: string // date\n type: "gas"\n concession_type?: "standard" | "special"\n}\n```\n\n### `SignatureMeta`\n\nSignature meta data payload\n\n```ts\ntype SignatureMeta = {\n signature: string\n timestamp: number\n}\n```\n\n### `ComputedBasePrice`\n\nThe computed price\n\n```ts\ntype ComputedBasePrice = {\n amount: number\n amount_decimal: string\n unit_amount?: number\n unit_amount_decimal?: string\n}\n```\n\n### `ComputePriceParams`\n\nThe compute price payload\n\n```ts\ntype ComputePriceParams = {\n postal_code: string\n consumption_type?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n consumption?: number\n consumption_HT?: number\n consumption_NT?: number\n association_id?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n reference_date?: string // date\n type: "power"\n meter_type?: "classic" | "smart" | "digital"\n} | {\n postal_code: string\n consumption_type?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n consumption?: number\n consumption_HT?: number\n consumption_NT?: number\n association_id?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n reference_date?: string // date\n type: "gas"\n concession_type?: "standard" | "special"\n}\n```\n\n### `GasConcessionType`\n\nThe concession type for gas\n\n```ts\ntype GasConcessionType = "standard" | "special"\n```\n\n### `PowerMeterType`\n\nThe meter type for power\n\n```ts\ntype PowerMeterType = "classic" | "smart" | "digital"\n```\n\n### `DynamicTariffMode`\n\nThe mode of the dynamic tariff. `day_ahead_market` uses the Day-Ahead spot market price as base.\n\n```ts\ntype DynamicTariffMode = "day_ahead_market" | "manual"\n```\n\n### `DynamicTariffInterval`\n\nThe interval of the tariff if a spot market price is used as base.\n\n```ts\ntype DynamicTariffInterval = "hourly" | "monthly_average"\n```\n\n### `ComputedPriceBreakdown`\n\nPrice breakdown\n\n```ts\ntype ComputedPriceBreakdown = {\n static?: Record<string, {\n amount: number\n amount_decimal: string\n unit_amount?: number\n unit_amount_decimal?: string\n }>\n variable?: Record<string, {\n amount: number\n amount_decimal: string\n unit_amount?: number\n unit_amount_decimal?: string\n }>\n variable_ht?: Record<string, {\n amount: number\n amount_decimal: string\n unit_amount?: number\n unit_amount_decimal?: string\n }>\n variable_nt?: Record<string, {\n amount: number\n amount_decimal: string\n unit_amount?: number\n unit_amount_decimal?: string\n }>\n}\n```\n\n### `ComputedPriceComponents`\n\nThe computed price components\n\n```ts\ntype ComputedPriceComponents = Record<string, {\n amount: number\n amount_decimal: string\n unit_amount?: number\n unit_amount_decimal?: string\n}>\n```\n\n### `ComputePriceResult`\n\n```ts\ntype ComputePriceResult = {\n amount_total: number\n amount_total_decimal: string\n amount_static?: number\n amount_static_decimal?: unknown\n amount_variable_ht?: number\n amount_variable_decimal_ht?: string\n unit_amount_variable_ht?: number\n unit_amount_variable_decimal_ht?: string\n amount_variable_nt?: number\n amount_variable_decimal_nt?: string\n unit_amount_variable_nt?: number\n unit_amount_variable_decimal_nt?: string\n currency: string\n billing_period: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n breakdown: {\n static?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n variable?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n variable_ht?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n variable_nt?: Record<string, {\n amount: { ... }\n amount_decimal: { ... }\n unit_amount?: { ... }\n unit_amount_decimal?: { ... }\n }>\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `SpotMarketBiddingZone`\n\nThe bidding zone for a spot market price.\n\n```ts\ntype SpotMarketBiddingZone = "AT" | "DE-LU"\n```\n\n### `SpotMarketType`\n\nThe market for a spot market price.\n\n```ts\ntype SpotMarketType = "day_ahead"\n```\n\n### `SpotMarketDataFrequency`\n\nThe aggregation frequency for a series of spot market price data.\n\n```ts\ntype SpotMarketDataFrequency = "PT15M" | "PT1H" | "P1D" | "P1M"\n```\n\n### `HistoricMarketPricesResult`\n\n```ts\ntype HistoricMarketPricesResult = {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n prices: Array<{\n unit_amount: number\n unit_amount_decimal: string\n unit_amount_currency: string\n timestamp: string // date-time\n }>\n}\n```\n\n### `AverageMarketPriceResult`\n\n```ts\ntype AverageMarketPriceResult = {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n price: {\n unit_amount: number\n unit_amount_decimal: string\n unit_amount_currency: string\n timestamp: string\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `AverageMarketPriceRecord`\n\nAn average market price over a given period in time.\n\n```ts\ntype AverageMarketPriceRecord = {\n unit_amount: number\n unit_amount_decimal: string\n unit_amount_currency: string\n timestamp: string\n}\n```\n\n### `HistoricMarketPriceRecord`\n\nA market price at a given point in time.\n\n```ts\ntype HistoricMarketPriceRecord = {\n unit_amount: number\n unit_amount_decimal: string\n unit_amount_currency: string\n timestamp: string // date-time\n}\n```\n\n### `BaseMarketPriceRecord`\n\n```ts\ntype BaseMarketPriceRecord = {\n unit_amount: number\n unit_amount_decimal: string\n unit_amount_currency: string\n}\n```\n\n### `OAuthCredentials`\n\n```ts\ntype OAuthCredentials = {\n client_id: string\n client_secret: string\n authorization_url: string\n grant_type: "client_credentials"\n scope?: string\n access_token?: string\n access_token_expires_in?: number\n access_token_expires_at?: number\n}\n```\n\n### `BasicAuthCredentials`\n\n```ts\ntype BasicAuthCredentials = {\n username: string\n password: string\n}\n```\n\n### `BasicAuthIntegration`\n\n```ts\ntype BasicAuthIntegration = {\n username: string\n password: string\n auth_type?: "basic_auth"\n base_url?: string\n}\n```\n\n### `OAuthIntegration`\n\n```ts\ntype OAuthIntegration = {\n auth_type: "oauth"\n oauth: {\n client_id: string\n client_secret: string\n authorization_url: string\n grant_type: "client_credentials"\n scope?: string\n access_token?: string\n access_token_expires_in?: number\n access_token_expires_at?: number\n }\n base_url?: string\n}\n```\n\n### `IntegrationAuthCredentials`\n\nThe auth credentials for external integrations\n\n```ts\ntype IntegrationAuthCredentials = {\n username: string\n password: string\n auth_type?: "basic_auth"\n base_url?: string\n} | {\n auth_type: "oauth"\n oauth: {\n client_id: string\n client_secret: string\n authorization_url: string\n grant_type: "client_credentials"\n scope?: string\n access_token?: string\n access_token_expires_in?: number\n access_token_expires_at?: number\n }\n base_url?: string\n}\n```\n\n### `SearchStreetsResult`\n\nThe search providers payload\n\n```ts\ntype SearchStreetsResult = Array<{\n street: string\n}>\n```\n\n### `SearchProvidersResult`\n\nThe search providers payload\n\n```ts\ntype SearchProvidersResult = Array<{\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: Array<{\n name: { ... }\n codeNumber: { ... }\n validFrom?: { ... }\n validUntil?: { ... }\n }>\n defaultSuppliers: Array<{\n name: { ... }\n codeNumber: { ... }\n validFrom?: { ... }\n validUntil?: { ... }\n }>\n marketAreaDetails: {\n gasType?: { ... }\n marketArea?: { ... }\n virtualTradingPoint?: { ... }\n } | {\n controlZone?: { ... }\n balancingZone?: { ... }\n }\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}>\n```\n\n### `Provider`\n\nThe provider entity\n\n```ts\ntype Provider = {\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: Array<{\n name: { ... }\n codeNumber: { ... }\n validFrom?: { ... }\n validUntil?: { ... }\n }>\n defaultSuppliers: Array<{\n name: { ... }\n codeNumber: { ... }\n validFrom?: { ... }\n validUntil?: { ... }\n }>\n marketAreaDetails: {\n gasType?: { ... }\n marketArea?: { ... }\n virtualTradingPoint?: { ... }\n } | {\n controlZone?: { ... }\n balancingZone?: { ... }\n }\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `AdditionalProviderData`\n\nAdditional data included in the provider entity\n\n```ts\ntype AdditionalProviderData = {\n gridOperators: Array<{\n name: string\n codeNumber: string\n validFrom?: string // date\n validUntil?: string // date\n }>\n defaultSuppliers: Array<{\n name: string\n codeNumber: string\n validFrom?: string // date\n validUntil?: string // date\n }>\n marketAreaDetails: {\n gasType?: "L-Gas" | "H-Gas"\n marketArea?: string\n virtualTradingPoint?: string\n } | {\n controlZone?: string\n balancingZone?: string\n }\n}\n```\n\n### `MarketParticipant`\n\nMarket participant data\n\n```ts\ntype MarketParticipant = {\n name: string\n codeNumber: string\n validFrom?: string // date\n validUntil?: string // date\n}\n```\n\n### `GasMarketAreaDetails`\n\nMarket area details for gas\n\n```ts\ntype GasMarketAreaDetails = {\n gasType?: "L-Gas" | "H-Gas"\n marketArea?: string\n virtualTradingPoint?: string\n}\n```\n\n### `PowerMarketAreaDetails`\n\nMarket area details for power\n\n```ts\ntype PowerMarketAreaDetails = {\n controlZone?: string\n balancingZone?: string\n}\n```\n\n### `Street`\n\nThe street entity\n\n```ts\ntype Street = {\n street: string\n}\n```\n\n### `ValidateAvailabilityFileResult`\n\nThe availability map file result payload\n\n```ts\ntype ValidateAvailabilityFileResult = {\n status: "success" | "error"\n rules_parsed_count: number\n errors: Array<{\n line?: number\n msg: string\n data?: string\n }>\n}\n```\n\n### `CartDto`\n\nA valid cart payload from a client.\n\n```ts\ntype CartDto = {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n customer?: {\n first_name?: string\n last_name?: string\n company_name?: string\n vat_id?: string\n email?: string\n phone?: string\n }\n billing_address?: {\n _tags?: string[]\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n additional_info?: string\n company_name?: string\n first_name?: string\n last_name?: string\n salutation?: string\n title?: string\n }\n delivery_address?: {\n _tags?: string[]\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n additional_info?: string\n company_name?: string\n first_name?: string\n last_name?: string\n salutation?: string\n title?: string\n }\n source_type?: string\n source_id?: string\n source?: {\n http?: string\n title?: string\n }\n additional_addresses?: Array<{\n _tags?: string[]\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n additional_info?: string\n company_name?: string\n first_name?: string\n last_name?: string\n salutation?: string\n title?: string\n }>\n payment_method?: {\n type?: string\n details?: Record<string, unknown>\n }\n line_items: Array<{\n external_fees_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n amount_total?: { ... }\n amount_total_decimal?: { ... }\n }>\n external_fees_metadata?: {\n amount_total: { ... }\n amount_total_decimal: { ... }\n amount_static?: { ... }\n amount_static_decimal?: { ... }\n amount_variable_ht?: { ... }\n amount_variable_decimal_ht?: { ... }\n unit_amount_variable_ht?: { ... }\n unit_amount_variable_decimal_ht?: { ... }\n amount_variable_nt?: { ... }\n amount_variable_decimal_nt?: { ... }\n unit_amount_variable_nt?: { ... }\n unit_amount_variable_decimal_nt?: { ... }\n currency: { ... }\n billing_period: { ... }\n breakdown: { ... }\n _meta?: { ... }\n }\n external_location_metadata?: {\n name: { ... }\n code: { ... }\n type: { ... }\n additionalData: { ... }\n _meta?: { ... }\n }\n external_price_metadata?: {\n market: { ... }\n bidding_zone: { ... }\n // ...\n}\n```\n\n### `CheckoutCart`\n\nThe cart checkout request payload\n\n```ts\ntype CheckoutCart = {\n cart?: string | {\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n customer?: {\n first_name?: { ... }\n last_name?: { ... }\n company_name?: { ... }\n vat_id?: { ... }\n email?: { ... }\n phone?: { ... }\n }\n billing_address?: {\n _tags?: { ... }\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n additional_info?: { ... }\n company_name?: { ... }\n first_name?: { ... }\n last_name?: { ... }\n salutation?: { ... }\n title?: { ... }\n }\n delivery_address?: {\n _tags?: { ... }\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n additional_info?: { ... }\n company_name?: { ... }\n first_name?: { ... }\n last_name?: { ... }\n salutation?: { ... }\n title?: { ... }\n }\n source_type?: string\n source_id?: string\n source?: {\n http?: { ... }\n title?: { ... }\n }\n additional_addresses?: Array<{\n _tags?: { ... }\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n additional_info?: { ... }\n company_name?: { ... }\n first_name?: { ... }\n last_name?: { ... }\n salutation?: { ... }\n title?: { ... }\n }>\n payment_method?: {\n type?: { ... }\n details?: { ... }\n }\n line_items: Array<{\n external_fees_mappings?: { ... }\n external_fees_metadata?: { ... }\n external_location_metadata?: { ... }\n external_price_metadata?: { ... }\n _immutable_pricing_details?: { ... }\n coupon_ids?: { ... }\n taxes?: { ... }\n recurrences?: { ... }\n _coupons?: { ... }\n type?: { ... }\n billing_period?: { ... }\n unit_amount?: { ... }\n unit_amount_gross?: { ... }\n unit_amount_currency?: { ... }\n unit_amount_decimal?: { ... }\n is_composite_price?: { ... }\n pricing_model?: { ... }\n _price?: { ... }\n } | {\n external_fees_mappings?: { ... }\n external_fees_metadata?: { ... }\n external_location_metadata?: { ... }\n external_price_metadata?: { ... }\n _immutable_pricing_details?: { ... }\n coupon_ids?: { ... }\n taxes?: { ... }\n recurrences?: { ... }\n _coupons?: { ... }\n is_composite_price: { ... }\n item_components?: { ... }\n selected_price_component_ids?: { ... }\n price_component_coupon_ids?: { ... }\n _price?: { ... }\n // ...\n}\n```\n\n### `CheckoutCartResult`\n\nThe cart checkout result\n\n```ts\ntype CheckoutCartResult = {\n order?: {\n order_number?: string\n cart_id?: string\n status?: "draft" | "quote" | "placed" | "cancelled" | "completed"\n source_type?: string\n source_id?: string\n source?: {\n http?: { ... }\n title?: { ... }\n }\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n customer?: {\n $relation?: { ... }\n }\n billing_first_name?: string\n billing_last_name?: string\n billing_company_name?: string\n billing_vat?: string\n billing_email?: string\n billing_phone?: string\n billing_address?: Array<{\n _tags?: { ... }\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n additional_info?: { ... }\n company_name?: { ... }\n first_name?: { ... }\n last_name?: { ... }\n salutation?: { ... }\n title?: { ... }\n }>\n currency?: string\n delivery_address?: Array<{\n _tags?: { ... }\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n additional_info?: { ... }\n company_name?: { ... }\n first_name?: { ... }\n last_name?: { ... }\n salutation?: { ... }\n title?: { ... }\n }>\n payment_method?: Array<{\n type?: { ... }\n details?: { ... }\n }>\n line_items?: Array<{\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n } | {\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n }>\n products?: {\n $relation?: { ... }\n }\n prices?: {\n $relation?: { ... }\n }\n coupons?: {\n $relation?: { ... }\n }\n amount_subtotal?: number\n amount_total?: number\n total_details?: {\n amount_shipping?: { ... }\n amount_tax?: { ... }\n breakdown?: { ... }\n }\n _org_id?: string\n _id?: string\n _created_at?: string\n _updated_at?: string\n // ...\n}\n```\n\n### `CheckoutMode`\n\nThe checkout mode for the cart checkout.\n\n```ts\ntype CheckoutMode = "create_order" | "create_invoice" | "create_quote"\n```\n\n### `OrderStatus`\n\n\n| status | description |\n|-------------|-------|\n| `draft` | \u200B\u200BStarting state for all orders, at this point we can still edit the order |\n| `quote` | The order is in a quoting phase, bound to an expiration date |\n| `placed` | The order has been paid and can now be fulfilled (shipped\n\n```ts\ntype OrderStatus = "draft" | "quote" | "placed" | "cancelled" | "completed"\n```\n\n### `BasePriceItemCommon`\n\nRepresents the common keys in BasePriceItem and BasePriceItemDto\n\n```ts\ntype BasePriceItemCommon = {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n }\n}\n```\n\n### `PriceItemDtoUnion`\n\n```ts\ntype PriceItemDtoUnion = {\n external_fees_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n amount_total?: number\n amount_total_decimal?: string\n }>\n external_fees_metadata?: {\n amount_total: number\n amount_total_decimal: string\n amount_static?: number\n amount_static_decimal?: unknown\n amount_variable_ht?: number\n amount_variable_decimal_ht?: string\n unit_amount_variable_ht?: number\n unit_amount_variable_decimal_ht?: string\n amount_variable_nt?: number\n amount_variable_decimal_nt?: string\n unit_amount_variable_nt?: number\n unit_amount_variable_decimal_nt?: string\n currency: string\n billing_period: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n breakdown: {\n static?: { ... }\n variable?: { ... }\n variable_ht?: { ... }\n variable_nt?: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_location_metadata?: {\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: { ... }\n defaultSuppliers: { ... }\n marketAreaDetails: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_price_metadata?: {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n price: {\n unit_amount: { ... }\n unit_amount_decimal: { ... }\n unit_amount_currency: { ... }\n timestamp: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n _immutable_pricing_details?: {\n items?: Array<{\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n } | {\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: { ... }\n amount_tax?: { ... }\n breakdown?: { ... }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: { ... }\n coupons: { ... }\n }>\n // ...\n}\n```\n\n### `PriceItemsDto`\n\nA valid set of product prices, quantities, (discounts) and taxes from a client.\n\n```ts\ntype PriceItemsDto = Array<{\n external_fees_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n amount_total?: number\n amount_total_decimal?: string\n }>\n external_fees_metadata?: {\n amount_total: number\n amount_total_decimal: string\n amount_static?: number\n amount_static_decimal?: unknown\n amount_variable_ht?: number\n amount_variable_decimal_ht?: string\n unit_amount_variable_ht?: number\n unit_amount_variable_decimal_ht?: string\n amount_variable_nt?: number\n amount_variable_decimal_nt?: string\n unit_amount_variable_nt?: number\n unit_amount_variable_decimal_nt?: string\n currency: string\n billing_period: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n breakdown: {\n static?: { ... }\n variable?: { ... }\n variable_ht?: { ... }\n variable_nt?: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_location_metadata?: {\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: { ... }\n defaultSuppliers: { ... }\n marketAreaDetails: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_price_metadata?: {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n price: {\n unit_amount: { ... }\n unit_amount_decimal: { ... }\n unit_amount_currency: { ... }\n timestamp: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n _immutable_pricing_details?: {\n items?: Array<{\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n } | {\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: { ... }\n amount_tax?: { ... }\n breakdown?: { ... }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: { ... }\n coupons: { ... }\n }>\n // ...\n}\n```\n\n### `BasePriceItemDto`\n\nRepresents a valid base price item from a client.\n\n```ts\ntype BasePriceItemDto = {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n }\n}\n```\n\n### `PriceItemDto`\n\nRepresents a price input to the pricing library.\n\n```ts\ntype PriceItemDto = {\n external_fees_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n amount_total?: number\n amount_total_decimal?: string\n }>\n external_fees_metadata?: {\n amount_total: number\n amount_total_decimal: string\n amount_static?: number\n amount_static_decimal?: unknown\n amount_variable_ht?: number\n amount_variable_decimal_ht?: string\n unit_amount_variable_ht?: number\n unit_amount_variable_decimal_ht?: string\n amount_variable_nt?: number\n amount_variable_decimal_nt?: string\n unit_amount_variable_nt?: number\n unit_amount_variable_decimal_nt?: string\n currency: string\n billing_period: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n breakdown: {\n static?: { ... }\n variable?: { ... }\n variable_ht?: { ... }\n variable_nt?: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_location_metadata?: {\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: { ... }\n defaultSuppliers: { ... }\n marketAreaDetails: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_price_metadata?: {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n price: {\n unit_amount: { ... }\n unit_amount_decimal: { ... }\n unit_amount_currency: { ... }\n timestamp: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n _immutable_pricing_details?: {\n items?: Array<{\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n } | {\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: { ... }\n amount_tax?: { ... }\n breakdown?: { ... }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: { ... }\n coupons: { ... }\n }>\n // ...\n}\n```\n\n### `CompositePriceItemDto`\n\nRepresents a composite price input to the pricing library.\n\n```ts\ntype CompositePriceItemDto = {\n external_fees_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n amount_total?: number\n amount_total_decimal?: string\n }>\n external_fees_metadata?: {\n amount_total: number\n amount_total_decimal: string\n amount_static?: number\n amount_static_decimal?: unknown\n amount_variable_ht?: number\n amount_variable_decimal_ht?: string\n unit_amount_variable_ht?: number\n unit_amount_variable_decimal_ht?: string\n amount_variable_nt?: number\n amount_variable_decimal_nt?: string\n unit_amount_variable_nt?: number\n unit_amount_variable_decimal_nt?: string\n currency: string\n billing_period: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n breakdown: {\n static?: { ... }\n variable?: { ... }\n variable_ht?: { ... }\n variable_nt?: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_location_metadata?: {\n name: string\n code: string\n type: "gas" | "power"\n additionalData: {\n gridOperators: { ... }\n defaultSuppliers: { ... }\n marketAreaDetails: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n external_price_metadata?: {\n market: "day_ahead"\n bidding_zone: "AT" | "DE-LU"\n price: {\n unit_amount: { ... }\n unit_amount_decimal: { ... }\n unit_amount_currency: { ... }\n timestamp: { ... }\n }\n _meta?: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n _immutable_pricing_details?: {\n items?: Array<{\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n } | {\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: { ... }\n amount_tax?: { ... }\n breakdown?: { ... }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: { ... }\n coupons: { ... }\n }>\n // ...\n}\n```\n\n### `TaxAmountDto`\n\nA valid tax rate from a client.\n\n```ts\ntype TaxAmountDto = {\n rate?: string\n tax?: {\n _id: string // uuid\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n type: "VAT" | "GST" | "Custom"\n description?: string\n rate: number\n active?: boolean\n region?: string\n region_label?: string\n } | {\n type: "VAT" | "GST" | "Custom"\n rate: number\n description?: string\n }\n}\n```\n\n### `OrderSource`\n\nThe order generation source\n\n```ts\ntype OrderSource = {\n http?: string\n title?: string\n}\n```\n\n### `OpportunitySource`\n\nThe opportunity generation source\n\n```ts\ntype OpportunitySource = {\n http?: string\n title?: string\n}\n```\n\n### `RecurrenceAmountDto`\n\nAn amount associated with a specific recurrence.\n\n```ts\ntype RecurrenceAmountDto = {\n amount_subtotal?: number\n amount_subtotal_decimal?: string\n amount_total?: number\n amount_total_decimal?: string\n cashback_amount?: number\n cashback_amount_decimal?: string\n cashback_period?: "0" | "12"\n after_cashback_amount_total?: number\n after_cashback_amount_total_decimal?: string\n discount_amount?: number\n discount_amount_decimal?: string\n discount_percentage?: number\n before_discount_amount_total?: number\n before_discount_amount_total_decimal?: string\n before_discount_amount_subtotal?: number\n before_discount_amount_subtotal_decimal?: string\n}\n```\n\n### `Currency`\n\nThree-letter ISO currency code, in lowercase. Must be a supported currency.\nISO 4217 CURRENCY CODES as specified in the documentation: https://www.iso.org/iso-4217-currency-codes.html\n\n\n```ts\ntype Currency = string\n```\n\n### `OrderRelation`\n\nAn order relation reference\n\n```ts\ntype OrderRelation = {\n entity_id?: string\n _tags?: string[]\n}\n```\n\n### `OrderPayload`\n\nOrder Entity Payload\n\n```ts\ntype OrderPayload = {\n status?: "draft" | "quote" | "placed" | "cancelled" | "completed"\n line_items?: Array<{\n external_fees_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n amount_total?: { ... }\n amount_total_decimal?: { ... }\n }>\n external_fees_metadata?: {\n amount_total: { ... }\n amount_total_decimal: { ... }\n amount_static?: { ... }\n amount_static_decimal?: { ... }\n amount_variable_ht?: { ... }\n amount_variable_decimal_ht?: { ... }\n unit_amount_variable_ht?: { ... }\n unit_amount_variable_decimal_ht?: { ... }\n amount_variable_nt?: { ... }\n amount_variable_decimal_nt?: { ... }\n unit_amount_variable_nt?: { ... }\n unit_amount_variable_decimal_nt?: { ... }\n currency: { ... }\n billing_period: { ... }\n breakdown: { ... }\n _meta?: { ... }\n }\n external_location_metadata?: {\n name: { ... }\n code: { ... }\n type: { ... }\n additionalData: { ... }\n _meta?: { ... }\n }\n external_price_metadata?: {\n market: { ... }\n bidding_zone: { ... }\n price: { ... }\n _meta?: { ... }\n }\n _immutable_pricing_details?: {\n items?: { ... }\n amount_subtotal?: { ... }\n amount_total?: { ... }\n unit_amount_gross?: { ... }\n unit_amount_net?: { ... }\n amount_tax?: { ... }\n total_details?: { ... }\n currency?: { ... }\n redeemed_promos?: { ... }\n }\n coupon_ids?: string[]\n taxes?: Array<{\n rate?: { ... }\n tax?: { ... }\n }>\n recurrences?: Array<{\n amount_subtotal?: { ... }\n amount_subtotal_decimal?: { ... }\n amount_total?: { ... }\n amount_total_decimal?: { ... }\n cashback_amount?: { ... }\n cashback_amount_decimal?: { ... }\n cashback_period?: { ... }\n after_cashback_amount_total?: { ... }\n after_cashback_amount_total_decimal?: { ... }\n discount_amount?: { ... }\n discount_amount_decimal?: { ... }\n discount_percentage?: { ... }\n before_discount_amount_total?: { ... }\n before_discount_amount_total_decimal?: { ... }\n before_discount_amount_subtotal?: { ... }\n before_discount_amount_subtotal_decimal?: { ... }\n }>\n _coupons?: Array<{\n _id: { ... }\n _title: { ... }\n _org: { ... }\n _schema: { ... }\n _tags?: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n name: { ... }\n description?: { ... }\n type: { ... }\n category: { ... }\n percentage_value?: { ... }\n fixed_value?: { ... }\n fixed_value_decimal?: { ... }\n fixed_value_currency?: { ... }\n cashback_period?: { ... }\n active?: { ... }\n is_conditional?: { ... }\n requires_promo_code?: { ... }\n }>\n type?: "one_time" | "recurring"\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n unit_amount?: number\n unit_amount_gross?: number\n unit_amount_currency?: string\n // ...\n}\n```\n\n### `PriceItems`\n\nTracks a set of product prices, quantities, (discounts) and taxes.\n\n```ts\ntype PriceItems = Array<{\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n }\n} | {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n // ...\n}\n```\n\n### `CompositePriceItem`\n\nRepresents a composite price input to the pricing library.\n\n```ts\ntype CompositePriceItem = {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n }\n}\n```\n\n### `BasePriceItem`\n\nRepresents a price item\n\n```ts\ntype BasePriceItem = {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n }\n}\n```\n\n### `CashbackAmounts`\n\n```ts\ntype CashbackAmounts = {\n cashback_amount?: number\n cashback_amount_decimal?: string\n cashback_period?: "0" | "12"\n after_cashback_amount_total?: number\n after_cashback_amount_total_decimal?: string\n}\n```\n\n### `DiscountAmounts`\n\n```ts\ntype DiscountAmounts = {\n discount_amount?: number\n discount_amount_decimal?: string\n discount_percentage?: number\n before_discount_amount_total?: number\n before_discount_amount_total_decimal?: string\n before_discount_amount_subtotal?: number\n before_discount_amount_subtotal_decimal?: string\n}\n```\n\n### `PriceAmounts`\n\n```ts\ntype PriceAmounts = {\n amount_subtotal?: number\n amount_subtotal_decimal?: string\n amount_total?: number\n amount_total_decimal?: string\n}\n```\n\n### `Amounts`\n\n```ts\ntype Amounts = {\n amount_subtotal?: number\n amount_subtotal_decimal?: string\n amount_total?: number\n amount_total_decimal?: string\n cashback_amount?: number\n cashback_amount_decimal?: string\n cashback_period?: "0" | "12"\n after_cashback_amount_total?: number\n after_cashback_amount_total_decimal?: string\n discount_amount?: number\n discount_amount_decimal?: string\n discount_percentage?: number\n before_discount_amount_total?: number\n before_discount_amount_total_decimal?: string\n before_discount_amount_subtotal?: number\n before_discount_amount_subtotal_decimal?: string\n}\n```\n\n### `PriceItem`\n\nRepresents a price item\n\n```ts\ntype PriceItem = {\n metadata?: Array<{\n key?: string\n value?: string\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n name?: string\n value?: number\n metadata?: Record<string, string>\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: string\n code?: string\n type?: "product" | "service"\n name?: string\n categories?: string[]\n feature?: Array<{\n _tags?: { ... }\n feature?: { ... }\n }>\n cross_sellable_products?: {\n $relation?: { ... }\n }\n product_images?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n product_downloads?: {\n $relation?: { ... }\n } | Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n price_options?: {\n $relation?: { ... }\n }\n is_conditional?: boolean\n _availability_files?: Array<{\n _id: { ... }\n filename: { ... }\n mime_type: { ... }\n versions: { ... }\n _schema: { ... }\n _org: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n _title?: { ... }\n $relation?: { ... }\n }>\n _id?: string\n _title?: string\n _org_id?: string\n _created_at?: string\n _updated_at?: string\n }\n}\n```\n\n### `TaxAmount`\n\nA tax amount associated with a specific tax rate.\n\n```ts\ntype TaxAmount = {\n amount?: number\n rate?: string\n rateValue?: number\n tax?: {\n _id: string // uuid\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n type: "VAT" | "GST" | "Custom"\n description?: string\n rate: number\n active?: boolean\n region?: string\n region_label?: string\n } | {\n type: "VAT" | "GST" | "Custom"\n rate: number\n description?: string\n }\n}\n```\n\n### `TaxAmountBreakdown`\n\nA tax amount associated with a specific tax rate.\n\n```ts\ntype TaxAmountBreakdown = {\n amount?: number\n rate?: string\n rateValue?: number\n tax?: {\n rate?: number\n type?: "VAT" | "GST" | "Custom"\n _id?: string\n }\n}\n```\n\n### `RecurrenceAmount`\n\nAn amount associated with a specific recurrence.\n\n```ts\ntype RecurrenceAmount = {\n amount_subtotal?: number\n amount_subtotal_decimal?: string\n amount_total?: number\n amount_total_decimal?: string\n cashback_amount?: number\n cashback_amount_decimal?: string\n cashback_period?: "0" | "12"\n after_cashback_amount_total?: number\n after_cashback_amount_total_decimal?: string\n discount_amount?: number\n discount_amount_decimal?: string\n discount_percentage?: number\n before_discount_amount_total?: number\n before_discount_amount_total_decimal?: string\n before_discount_amount_subtotal?: number\n before_discount_amount_subtotal_decimal?: string\n}\n```\n\n### `CashbackAmount`\n\nA detail associated with a specific cashback.\n\n```ts\ntype CashbackAmount = {\n cashback_name?: string\n cashback_period: "0" | "12"\n amount_total: number\n}\n```\n\n### `RecurrenceAmountWithTax`\n\nAn amount associated with a specific recurrence.\n\n```ts\ntype RecurrenceAmountWithTax = {\n type?: string\n billing_period?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n amount_total: number\n amount_subtotal: number\n amount_tax?: number\n tax?: {\n amount?: number\n rate?: string\n rateValue?: number\n tax?: {\n rate?: { ... }\n type?: { ... }\n _id?: { ... }\n }\n }\n}\n```\n\n### `TotalDetails`\n\nThe total details with tax (and discount) aggregated totals.\n\n```ts\ntype TotalDetails = {\n amount_shipping?: number\n amount_tax?: number\n breakdown?: {\n taxes?: Array<{\n amount?: { ... }\n rate?: { ... }\n rateValue?: { ... }\n tax?: { ... }\n }>\n recurrences?: Array<{\n amount_subtotal?: { ... }\n amount_subtotal_decimal?: { ... }\n amount_total?: { ... }\n amount_total_decimal?: { ... }\n cashback_amount?: { ... }\n cashback_amount_decimal?: { ... }\n cashback_period?: { ... }\n after_cashback_amount_total?: { ... }\n after_cashback_amount_total_decimal?: { ... }\n discount_amount?: { ... }\n discount_amount_decimal?: { ... }\n discount_percentage?: { ... }\n before_discount_amount_total?: { ... }\n before_discount_amount_total_decimal?: { ... }\n before_discount_amount_subtotal?: { ... }\n before_discount_amount_subtotal_decimal?: { ... }\n }>\n cashbacks?: Array<{\n cashback_name?: { ... }\n cashback_period: { ... }\n amount_total: { ... }\n }>\n recurrencesByTax?: Array<{\n type?: { ... }\n billing_period?: { ... }\n amount_total: { ... }\n amount_subtotal: { ... }\n amount_tax?: { ... }\n tax?: { ... }\n }>\n }\n}\n```\n\n### `PricingDetails`\n\nThe result from the calculation of a set of price items.\n\n```ts\ntype PricingDetails = {\n items?: Array<{\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n name?: { ... }\n value?: { ... }\n metadata?: { ... }\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: { ... }\n code?: { ... }\n type?: { ... }\n name?: { ... }\n categories?: { ... }\n feature?: { ... }\n cross_sellable_products?: { ... }\n product_images?: { ... }\n product_downloads?: { ... }\n price_options?: { ... }\n is_conditional?: { ... }\n _availability_files?: { ... }\n _id?: { ... }\n _title?: { ... }\n _org_id?: { ... }\n _created_at?: { ... }\n _updated_at?: { ... }\n }\n } | {\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n name?: { ... }\n value?: { ... }\n metadata?: { ... }\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: { ... }\n code?: { ... }\n type?: { ... }\n name?: { ... }\n categories?: { ... }\n feature?: { ... }\n cross_sellable_products?: { ... }\n product_images?: { ... }\n product_downloads?: { ... }\n price_options?: { ... }\n is_conditional?: { ... }\n _availability_files?: { ... }\n _id?: { ... }\n _title?: { ... }\n _org_id?: { ... }\n _created_at?: { ... }\n _updated_at?: { ... }\n }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: number\n amount_tax?: number\n breakdown?: {\n taxes?: { ... }\n recurrences?: { ... }\n cashbacks?: { ... }\n recurrencesByTax?: { ... }\n }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: string\n coupons: Array<{\n _id: { ... }\n _title: { ... }\n _org: { ... }\n // ...\n}\n```\n\n### `PromoCodeValidationResponse`\n\nThe result from the validation of a set of promo codes.\n\n```ts\ntype PromoCodeValidationResponse = {\n matched_coupons?: Array<{\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n }>\n}\n```\n\n### `PricingDetailsResponse`\n\nThe result from the calculation of a set of price items.\n\n```ts\ntype PricingDetailsResponse = {\n items?: Array<{\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n name?: { ... }\n value?: { ... }\n metadata?: { ... }\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: { ... }\n code?: { ... }\n type?: { ... }\n name?: { ... }\n categories?: { ... }\n feature?: { ... }\n cross_sellable_products?: { ... }\n product_images?: { ... }\n product_downloads?: { ... }\n price_options?: { ... }\n is_conditional?: { ... }\n _availability_files?: { ... }\n _id?: { ... }\n _title?: { ... }\n _org_id?: { ... }\n _created_at?: { ... }\n _updated_at?: { ... }\n }\n } | {\n metadata?: Array<{\n key?: { ... }\n value?: { ... }\n }>\n quantity?: number\n product_id?: string\n price_id?: string\n description?: string\n product_description?: string\n product_name?: string\n price_mappings?: Array<{\n price_id?: { ... }\n frequency_unit?: { ... }\n name?: { ... }\n value?: { ... }\n metadata?: { ... }\n }>\n is_tax_inclusive?: boolean\n _product?: {\n description?: { ... }\n code?: { ... }\n type?: { ... }\n name?: { ... }\n categories?: { ... }\n feature?: { ... }\n cross_sellable_products?: { ... }\n product_images?: { ... }\n product_downloads?: { ... }\n price_options?: { ... }\n is_conditional?: { ... }\n _availability_files?: { ... }\n _id?: { ... }\n _title?: { ... }\n _org_id?: { ... }\n _created_at?: { ... }\n _updated_at?: { ... }\n }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: number\n amount_tax?: number\n breakdown?: {\n taxes?: { ... }\n recurrences?: { ... }\n cashbacks?: { ... }\n recurrencesByTax?: { ... }\n }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: string\n coupons: Array<{\n _id: { ... }\n _title: { ... }\n _org: { ... }\n // ...\n}\n```\n\n### `BillingPeriod`\n\n```ts\ntype BillingPeriod = "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly"\n```\n\n### `CashbackPeriod`\n\nThe cashback period, for now it\'s limited to either 0 months or 12 months\n\n```ts\ntype CashbackPeriod = "0" | "12"\n```\n\n### `SalesTax`\n\n```ts\ntype SalesTax = "nontaxable" | "reduced" | "standard"\n```\n\n### `AvailabilityLocation`\n\n```ts\ntype AvailabilityLocation = {\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n}\n```\n\n### `AvailabilityFilters`\n\nAvailability filters dimensions\n\n```ts\ntype AvailabilityFilters = {\n location: {\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n }\n available_date?: string // date\n}\n```\n\n### `Address`\n\n```ts\ntype Address = {\n _tags?: string[]\n street?: string\n street_number?: string\n postal_code?: string\n city?: string\n country?: string\n additional_info?: string\n company_name?: string\n first_name?: string\n last_name?: string\n salutation?: string\n title?: string\n}\n```\n\n### `PaymentMethod`\n\nA PaymentMethod represent your customer\'s payment instruments.\n\n\n```ts\ntype PaymentMethod = {\n type?: string\n details?: Record<string, unknown>\n}\n```\n\n### `Customer`\n\n```ts\ntype Customer = {\n first_name?: string\n last_name?: string\n company_name?: string\n vat_id?: string\n email?: string\n phone?: string\n}\n```\n\n### `File`\n\n```ts\ntype File = {\n _id: string\n filename: string\n mime_type: string\n versions: Array<{\n s3ref: {\n bucket: { ... }\n key: { ... }\n }\n }>\n _schema: string\n _org: string\n _created_at: string // date-time\n _updated_at: string // date-time\n _title?: string\n $relation?: {\n entity_id?: string\n _tags?: string[]\n }\n}\n```\n\n### `EntityId`\n\n```ts\ntype EntityId = string // uuid\n```\n\n### `EntityItem`\n\n```ts\ntype EntityItem = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n}\n```\n\n### `EntityRelation`\n\n```ts\ntype EntityRelation = {\n entity_id?: string\n _tags?: string[]\n}\n```\n\n### `Tax`\n\nthe tax configuration\n\n```ts\ntype Tax = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n type: "VAT" | "GST" | "Custom"\n description?: string\n rate: number\n active?: boolean\n region?: string\n region_label?: string\n}\n```\n\n### `TaxItem`\n\nA minimal, ad-hoc tax rate for line items with no backing tax entity\nin the catalog (e.g. a fully custom/composite price component built\nby a client with no product/price reference to resolve tax from).\nMirrors how PriceItem relates to Price: unlike Tax, this has no\nentity identity \u2014 it isn\'t persis\n\n```ts\ntype TaxItem = {\n type: "VAT" | "GST" | "Custom"\n rate: number\n description?: string\n}\n```\n\n### `TaxBreakdownInfo`\n\n```ts\ntype TaxBreakdownInfo = {\n rate?: number\n type?: "VAT" | "GST" | "Custom"\n _id?: string\n}\n```\n\n### `BaseCouponCommon`\n\nThe shared properties for the coupon entity and coupon item entity\n\n```ts\ntype BaseCouponCommon = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n}\n```\n\n### `CouponWithoutPromoCodes`\n\nThe base for the coupon entity without promo codes\n\n```ts\ntype CouponWithoutPromoCodes = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n}\n```\n\n### `Coupon`\n\nThe coupon entity\n\n```ts\ntype Coupon = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n}\n```\n\n### `CouponItem`\n\n```ts\ntype CouponItem = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n}\n```\n\n### `PromoCode`\n\n```ts\ntype PromoCode = {\n id: string\n code: string\n has_usage_limit?: boolean\n usage_limit?: number\n}\n```\n\n### `RedeemedPromo`\n\n```ts\ntype RedeemedPromo = {\n code: string\n coupons: Array<{\n _id: string // uuid\n _title: string\n _org: string\n _schema: "coupon"\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n name: string\n description?: string\n type: "fixed" | "percentage"\n category: "discount" | "cashback"\n percentage_value?: string\n fixed_value?: number\n fixed_value_decimal?: string\n fixed_value_currency?: string\n cashback_period?: "0" | "12"\n active?: boolean\n is_conditional?: boolean\n requires_promo_code?: boolean\n }>\n}\n```\n\n### `PriceTier`\n\n```ts\ntype PriceTier = {\n up_to?: number\n flat_fee_amount?: number\n flat_fee_amount_decimal?: string\n unit_amount?: number\n unit_amount_decimal?: string\n display_mode?: "hidden" | "on_request"\n}\n```\n\n### `PriceTierDisplayMode`\n\n```ts\ntype PriceTierDisplayMode = "hidden" | "on_request"\n```\n\n### `PricingModel`\n\nDescribes how to compute the price per period. Either `per_unit`, `tiered_graduated` or `tiered_volume`.\n- `per_unit` indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity\n- `tiered_graduated` indicates that the unit pricing will be co\n\n```ts\ntype PricingModel = "per_unit" | "tiered_graduated" | "tiered_volume" | "tiered_flatfee" | "dynamic_tariff" | "external_getag"\n```\n\n### `MarkupPricingModel`\n\nDescribes how to compute the markup per period. Either `per_unit`, `tiered_volume` or `tiered_flatfee`.\n- `per_unit` indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity\n- `tiered_volume` indicates that the unit pricing will be comput\n\n```ts\ntype MarkupPricingModel = "per_unit" | "tiered_volume" | "tiered_flatfee"\n```\n\n### `TypeGetAg`\n\n```ts\ntype TypeGetAg = "base_price" | "work_price"\n```\n\n### `TariffTypeGetAg`\n\n```ts\ntype TariffTypeGetAg = "HT" | "NT"\n```\n\n### `ConsumptionTypeGetAg`\n\n```ts\ntype ConsumptionTypeGetAg = "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n```\n\n### `ProductCategory`\n\n```ts\ntype ProductCategory = "power" | "gas"\n```\n\n### `PriceGetAg`\n\n```ts\ntype PriceGetAg = {\n category: "power" | "gas"\n markup_pricing_model?: "per_unit" | "tiered_volume" | "tiered_flatfee"\n type?: "base_price" | "work_price"\n tariff_type?: "HT" | "NT"\n consumption_type?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n concession_type?: "standard" | "special"\n meter_type?: "classic" | "smart" | "digital"\n markup_tiers?: Array<{\n up_to?: number\n flat_fee_amount?: number\n flat_fee_amount_decimal?: string\n unit_amount?: number\n unit_amount_decimal?: string\n display_mode?: "hidden" | "on_request"\n }>\n markup_amount: number\n markup_amount_decimal: string\n markup_amount_net?: number\n markup_amount_net_decimal?: string\n markup_amount_gross?: number\n markup_amount_gross_decimal?: string\n markup_total_amount_net?: number\n markup_total_amount_net_decimal?: string\n markup_total_amount_gross?: number\n markup_total_amount_gross_decimal?: string\n additional_markups_enabled?: boolean\n additional_markups?: Record<string, {\n amount_decimal: string\n amount: number\n amount_net?: number\n amount_net_decimal?: string\n amount_gross?: number\n amount_gross_decimal?: string\n }>\n unit_amount_gross: number\n unit_amount_gross_decimal?: string\n unit_amount_net: number\n unit_amount_net_decimal?: string\n}\n```\n\n### `PriceDynamicTariff`\n\n```ts\ntype PriceDynamicTariff = {\n mode: "day_ahead_market" | "manual"\n interval?: "hourly" | "monthly_average"\n average_price: number\n average_price_decimal: string\n markup_amount?: number\n markup_amount_decimal?: string\n markup_amount_net?: number\n markup_amount_net_decimal?: string\n markup_amount_gross?: number\n markup_amount_gross_decimal?: string\n unit_amount_net?: number\n unit_amount_net_decimal?: string\n unit_amount_gross?: number\n unit_amount_gross_decimal?: string\n}\n```\n\n### `TierDetails`\n\n```ts\ntype TierDetails = {\n quantity: number\n unit_amount: number\n unit_amount_gross: number\n unit_amount_net: number\n amount_total: number\n amount_subtotal: number\n amount_tax: number\n unit_amount_decimal: string\n}\n```\n\n### `SearchExternalCatalogParams`\n\n```ts\ntype SearchExternalCatalogParams = {\n context: {\n journey_id: string\n entity_id?: string\n journey_name: string\n journey_tags?: string[]\n journey_url_params?: Record<string, unknown>\n current_step_name: string\n current_block_name: string\n steps_data: Array<{\n step_name: { ... }\n step_index: { ... }\n blocks: { ... }\n }>\n }\n}\n```\n\n### `ExternalCatalogRequest`\n\nThe request payload for the external catalog service.\n\n```ts\ntype ExternalCatalogRequest = {\n config?: {\n appId: string\n componentId: string\n hookId?: string\n }\n}\n```\n\n### `ExternalCatalogConfigurationRequest`\n\nThe request payload for the external catalog configuration service.\n\n```ts\ntype ExternalCatalogConfigurationRequest = {\n config?: {\n appId: string\n componentId: string\n hookId?: string\n }\n}\n```\n\n### `ExternalCatalogJourneyRequest`\n\nThe request payload for the external catalog service with a journey context.\n\n```ts\ntype ExternalCatalogJourneyRequest = {\n origin: "journey"\n context: {\n journey_id: string\n entity_id?: string\n journey_name: string\n journey_tags?: string[]\n journey_url_params?: Record<string, unknown>\n current_step_name: string\n current_block_name: string\n steps_data: Array<{\n step_name: { ... }\n step_index: { ... }\n blocks: { ... }\n }>\n }\n}\n```\n\n### `ExternalCatalogPortalRequest`\n\nThe request payload for the external catalog service with a portal context.\n\n```ts\ntype ExternalCatalogPortalRequest = {\n origin: "portal"\n context: {\n contract: Record<string, unknown>\n contact: Record<string, unknown>\n availability_address?: {\n postal_code?: { ... }\n city?: { ... }\n street?: { ... }\n street_number?: { ... }\n journey_target_block?: { ... }\n }\n variable_inputs?: Array<{\n value?: { ... }\n unit?: { ... }\n frequency_unit?: { ... }\n journey_target_block?: { ... }\n }>\n }\n}\n```\n\n### `ExternalCatalogCustomRequest`\n\nThe request payload for the external catalog service with a custom context. E.g. for requests from the Portal.\n\n```ts\ntype ExternalCatalogCustomRequest = {\n origin: "custom"\n context: Record<string, unknown>\n}\n```\n\n### `CustomContext`\n\nA custom context object. E.g. for Portal context.\n\n```ts\ntype CustomContext = Record<string, unknown>\n```\n\n### `JourneyContext`\n\n```ts\ntype JourneyContext = {\n journey_id: string\n entity_id?: string\n journey_name: string\n journey_tags?: string[]\n journey_url_params?: Record<string, unknown>\n current_step_name: string\n current_block_name: string\n steps_data: Array<{\n step_name: string\n step_index: number\n blocks: Record<string, unknown>\n }>\n}\n```\n\n### `PortalContext`\n\n```ts\ntype PortalContext = {\n contract: Record<string, unknown>\n contact: Record<string, unknown>\n availability_address?: {\n postal_code?: string\n city?: string\n street?: string\n street_number?: string\n journey_target_block?: string\n }\n variable_inputs?: Array<{\n value?: number\n unit?: string\n frequency_unit?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n journey_target_block?: string\n }>\n}\n```\n\n### `SearchExternalCatalogResult`\n\n```ts\ntype SearchExternalCatalogResult = {\n hits: number\n results: Array<{\n pricing_details: {\n items?: { ... }\n amount_subtotal?: { ... }\n amount_total?: { ... }\n unit_amount_gross?: { ... }\n unit_amount_net?: { ... }\n amount_tax?: { ... }\n total_details?: { ... }\n currency?: { ... }\n redeemed_promos?: { ... }\n }\n _meta: {\n signature: { ... }\n timestamp: { ... }\n }\n }>\n}\n```\n\n### `SearchExternalCatalogRecommendationsResult`\n\n```ts\ntype SearchExternalCatalogRecommendationsResult = {\n source: {\n pricing_details: {\n items?: { ... }\n amount_subtotal?: { ... }\n amount_total?: { ... }\n unit_amount_gross?: { ... }\n unit_amount_net?: { ... }\n amount_tax?: { ... }\n total_details?: { ... }\n currency?: { ... }\n redeemed_promos?: { ... }\n }\n _meta: {\n signature: { ... }\n timestamp: { ... }\n }\n }\n offers: Array<{\n pricing_details: {\n items?: { ... }\n amount_subtotal?: { ... }\n amount_total?: { ... }\n unit_amount_gross?: { ... }\n unit_amount_net?: { ... }\n amount_tax?: { ... }\n total_details?: { ... }\n currency?: { ... }\n redeemed_promos?: { ... }\n }\n _meta: {\n signature: { ... }\n timestamp: { ... }\n }\n }>\n}\n```\n\n### `ExternalCatalogItem`\n\nAn external product & price information (already computed) from an external catalog.\n\n```ts\ntype ExternalCatalogItem = {\n pricing_details: {\n items?: Array<{\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n } | {\n metadata?: { ... }\n quantity?: { ... }\n product_id?: { ... }\n price_id?: { ... }\n description?: { ... }\n product_description?: { ... }\n product_name?: { ... }\n price_mappings?: { ... }\n is_tax_inclusive?: { ... }\n _product?: { ... }\n }>\n amount_subtotal?: number\n amount_total?: number\n unit_amount_gross?: number\n unit_amount_net?: number\n amount_tax?: number\n total_details?: {\n amount_shipping?: { ... }\n amount_tax?: { ... }\n breakdown?: { ... }\n }\n currency?: string\n redeemed_promos?: Array<{\n code: { ... }\n coupons: { ... }\n }>\n }\n _meta: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `ProductRecommendationSearch`\n\nProduct recommendations request payload\n\n```ts\ntype ProductRecommendationSearch = {\n product_recommendation_ids?: string[]\n catalog_item?: {\n product_id?: string\n price_id?: string\n }\n contract_id?: string\n filters?: {\n location: {\n street?: { ... }\n street_number?: { ... }\n postal_code?: { ... }\n city?: { ... }\n country?: { ... }\n }\n available_date?: string // date\n }\n}\n```\n\n### `ProductRecommendationResponse`\n\nProduct recommendations request payload\n\n```ts\ntype ProductRecommendationResponse = {\n hits: number\n results: Array<{\n _id: string // uuid\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n }>\n}\n```\n\n### `OfferHighlightConfig`\n\n```ts\ntype OfferHighlightConfig = {\n unique_selling_point?: string\n unique_selling_point_icon?: string\n total?: {\n enabled?: boolean\n format?: "absolute" | "relative"\n only_if_better?: boolean\n }\n}\n```\n\n### `Offer`\n\n```ts\ntype Offer = {\n target_id?: string\n items?: Array<{\n price_id: string\n product_id: string\n highlight_config?: {\n unique_selling_point?: { ... }\n unique_selling_point_icon?: { ... }\n total?: { ... }\n }\n }>\n}\n```\n\n### `ProductRecommendation`\n\n```ts\ntype ProductRecommendation = {\n _id: string // uuid\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n}\n```\n';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.default = pricing_default;
|