@epilot/sdk 2.20.37 → 2.20.39
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/README.md +1 -0
- package/definitions/identity-runtime.json +1 -0
- package/definitions/identity.json +1546 -0
- package/definitions/pricing-runtime.json +1 -1
- package/definitions/pricing.json +163 -35
- package/dist/README-OSHX3IVR.cjs +7 -0
- package/dist/README-ZSJDIPZZ.js +7 -0
- package/dist/{_index-6FK4PV6Y.js → _index-UBUNWMRP.js} +3 -0
- package/dist/{_index-655GNTWT.cjs → _index-UWRY3DNX.cjs} +4 -1
- 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/identity.cjs +38 -0
- package/dist/apis/identity.d.cts +18 -0
- package/dist/apis/identity.d.ts +18 -0
- package/dist/apis/identity.js +38 -0
- package/dist/apis/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.js +1 -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-3IBAPVLY.js +14 -0
- package/dist/{chunk-OHYTCUUB.js → chunk-7Q3JW72Y.js} +1 -1
- package/dist/{chunk-FWZRP5HX.js → chunk-A6FNV6JX.js} +6 -4
- package/dist/{chunk-UKHR33EL.cjs → chunk-QLWDOKGE.cjs} +1 -1
- package/dist/{chunk-R2J3UNRP.cjs → chunk-QSGVSIS7.cjs} +6 -4
- package/dist/chunk-RPWTWCDC.cjs +14 -0
- package/dist/identity-EG35NBZW.js +7 -0
- package/dist/identity-XMX3VFXR.cjs +7 -0
- package/dist/identity-runtime-57DQPQWX.cjs +5 -0
- package/dist/identity-runtime-PFM5KQWA.js +5 -0
- package/dist/identity.d-BBL0NI_O.d.cts +1153 -0
- package/dist/identity.d-BBL0NI_O.d.ts +1153 -0
- package/dist/index.cjs +24 -16
- package/dist/index.d.cts +52 -50
- package/dist/index.d.ts +52 -50
- package/dist/index.js +17 -9
- package/dist/pricing-PBBDRMSO.js +7 -0
- package/dist/pricing-PLWFGMKQ.cjs +7 -0
- package/dist/{pricing-runtime-AT27C3BP.js → pricing-runtime-MJAIO4AY.js} +1 -1
- package/dist/{pricing-runtime-PFVTRERK.cjs → pricing-runtime-NMRZO6J4.cjs} +2 -2
- package/dist/{pricing.d-BCziNLXL.d.cts → pricing.d-CRYlsNBY.d.cts} +408 -17
- package/dist/{pricing.d-BCziNLXL.d.ts → pricing.d-CRYlsNBY.d.ts} +408 -17
- package/docs/identity.md +1279 -0
- package/docs/pricing.md +54 -1
- package/package.json +10 -1
- package/dist/README-7F36AG5O.js +0 -7
- package/dist/README-I7JMAFA4.cjs +0 -7
- package/dist/pricing-2ZISBC2M.cjs +0 -7
- package/dist/pricing-CCNUYYYL.js +0 -7
package/dist/pricing-CCNUYYYL.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./chunk-YPSWSI3M.js";
|
|
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- [`ComputePriceInputs`](#computepriceinputs)\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 city: \'string\',\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 "inputs": {\n "type": "power",\n "consumptionHT": 0,\n "consumptionNT": 0,\n "consumptionType": "household",\n "zipCode": "string",\n "city": "string",\n "providerId": "string",\n "billingPeriod": "weekly",\n "referenceDate": "1970-01-01"\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 "unit_amount": 10000,\n "unit_amount_net": 10000,\n "pricing_model": "per_unit",\n "_price": {},\n "_product": {}\n }\n ],\n "source": {\n "item": {\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}\n```\n\n</details>\n\n---\n\n### `$getConditionSets`\n\nReturns the condition sets built in for one conditional entity type, ready to copy into that schema\'s `conditions` array. Read-only, and the same for every organization.\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\nReturns the variants of one conditional entity that apply, each composed: the base entity\noverlaid with 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 together with its first 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. A `POST` because the\ncondition filter is a structured object; nothing is written. The body is required, so send\n`{}` for the fir\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` and a `status` saying\nwhether that version is `active` or still `scheduled`.\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 in effect now \u2014 the latest `valid_from` at or before now\n\u2014 with the `_revision` a write to it must carry.\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 in effect. The body is the complete set of overrides: an\noverridable attribute absent from it stops being overridden, and one the variant may not\noverride keeps its \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 in effect. `null` sets a value rather than\nremoving an override; use the replace operation to remove one.\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: its condition tuple, its index entry and all its versions. The tuple\nbecomes reusable, and an interrupted delete is safe to send again.\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. Cursor paging only: a page may be short or empty and still\ncarry a `next`, so page until `next` is absent. A cursor is bound to one variant and one\n`order`.\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 taking effect at its own instant. The version in effect at any instant is\nthe one with the latest `valid_from` at or before it; a future one is staged until its date.\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 version by the instant it takes effect. Exact, never nearest.\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, whatever its date. Attributes the variant may not override\nkeep their stored value. Writing a superseded version is reported in `warnings`.\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.\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. What the removal moves is reported in `warnings`. A variant\'s last\nremaining version cannot be removed \u2014 delete the variant instead.\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. Each item names its own entity, so one\ncall can span a tariff hierarchy, and addresses a variant by condition tuple rather than by\nid \u2014 the id it cre\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. An item carrying `valid_from` removes\nthat version; one without it removes the whole variant.\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 conditional-pricing route.\n\n```ts\ntype ConditionalEntitySlug = "product" | "price" | "coupon"\n```\n\n### `ConditionType`\n\nThe kind of value a condition holds, which decides how a pinned value is matched against a\nresolve 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; either en\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 verbatim.\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, so a client can branch on\nthe kind of failure instead of parsing the message. A `400` is about the request; a `409` is\nabout what is already stored. Refusals raised by request validation carry no `code` at all.\n\n- `SCHEMA_NOT_FOUND` (\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" | "VARIANT_PIN_UNDECLARED" | "OPERATOR_UNSUPPORTED" | "CONTEXT_FORMAT_INVALID" | "CONDITION_VALUE_INVALID" | "CONDITION_UNCONFIGURED" | "TOO_MANY_MATCHES" | "WRITE_CONFLICT" | "OFFSET_WINDOW_EXCEEDED" | "CURSOR_INVALID" | "VARIANT_LIMIT_REACHED" | "PIN_FORMAT_INVALID" | "VARIANT_UNPINNED" | "LAST_VERSION_UNDELETABLE" | "CONDITION_UNREADABLE" | "SORT_INVALID" | "DEFAULT_MARKER_RESERVED" | "DEFAULT_VARIANT_PINS_CONDITIONS" | "VALID_FROM_IMMUTABLE" | "VARIANT_CONDITIONS_IMMUTABLE" | "IDENTIFIER_INVALID" | "VALID_FROM_INVALID" | "VALUE_UNSTORABLE"\n```\n\n### `ResolveConditionalEntityRequest`\n\nA resolve names one conditional entity and selects its variants either by `context` or by\n`variant_id`, never both. `context: {}` matches nothing and so returns the `default`\nvariant, which is how to ask for it without knowing its id.\n\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.\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. A condition left out\nmatches only variants that leave it unpinned; an empty map therefore returns the `default`\nvariant.\n\nEach value is an exact value, typed by its condition, or a single-operator predicate:\n\n- `{ "lt": v }`, `{ "lte"\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 where the answer is one result or a 404, so a body sending it is a `400`.\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 below.\n\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\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. A condition left\nout is a wildcard, which is what makes adding a condition to a schema non-breaking for\nexisting variants.\n\nExact values only; predicates belong to reads. Values are stored canonicalized for their\ntype: a `dat\n\n```ts\ntype PinnedConditions = Record<string, unknown>\n```\n\n### `VariantValues`\n\nThe values this version overrides on the base entity, keyed by entity field name.\n\nA field is overridable if its attribute declares `overridable_attribute` \u2014 which readonly,\nhidden, computed and metadata fields, and types no variant may override, cannot be given \u2014\nor if a capability declaring `overr\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. One vocabulary for every write; `details`\nis typed per `code`, and a write raises each code at most once.\n\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```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 \u2014 reported by a write for the attributes in its\nbody, and by a resolved payload for the stored overrides composition passed over.\n\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 schema declares the attribute without\n `overridable_attribute`, which is an ordinary schema edit away\n- `ATTRIBUTE_READONLY`: the attribute is readonly, and cannot be granted the flag\n- `ATTRIBUTE_HIDDEN`: the attribute is hidden, \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 overrides it carries, the instant it takes effect, and the\nvariant it belongs to. These are the version\'s own overrides; `:resolve` composes them onto\nthe entity.\n\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```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 `{}` asks for the\nfirst ten variants in `variant_id` order, but the body itself is required. `conditions` and\n`search` narrow independently and a variant must satisfy both.\n\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 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, taking the\nsame exact values and predicates a resolve context does. A condition left out is not\nfiltered on. An `in` list carries at most 50,000 values.\n\nA variant matches only where it pins the condition \u2014 unlike `: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\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 shows for it, and the status saying which.\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\n- `active`: the version with the latest `valid_from` at or before `as_of`\n- `scheduled`: the variant\'s first version, which is later than `as_of`\n\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`.\nRead the version through its own `GET` to get the revision a write must carry.\n\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```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 single-item create\'s body plus `entity_id`, and no `variant_id`. An\nexisting condition tuple appends a version to the variant holding it rather than conflicting.\n\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 removes from.\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. An item carrying both matches neither branch and is an\nenvelope `400`.\n\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.\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.\n\n`conditions` is optional because the fallback variant pins nothing: address it with\n`default: true` and no `conditions`. An item that ends up addressing no variant at all is a\nper-item `VARIANT_UNPINNED`, and one marking `default` besi\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```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```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.\n\n- `variant_created`: the condition tuple was unknown, so a variant and its first version\n were created\n- `version_created`: the tuple was known and had no version at the item\'s `valid_from`\n- `updated`: a version existed at that exact instant\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 no such variant or version; a missing entity is an `error`\n- `error`: this item alone failed, and the entry\'s `error` says why\n\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`,\nall present, and summing to the length of `results`.\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`,\nall present, and summing to the length of `results`.\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. Position in `results` maps it back to its source row.\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. Position in `results` maps it back to its source row.\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 failed\nvalidation before any handler ran \u2014 the validation errors themselves.\n\n\n```ts\ntype ReportedError = string | Record<string, unknown>[]\n```\n\n### `ConditionalPricingError`\n\nAn error from a conditional-pricing operation, carrying a `code` plus the structured data\nthat code explains. `details` is typed per code: narrow on `code` and the object under it\ndeclares exactly the fields that code sends.\n\nA request these schemas reject is answered by the request validator with a\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 inputs?: {\n type?: "power" | "gas"\n consumptionHT?: number\n consumptionNT?: number\n consumptionType?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n zipCode?: string\n city?: string\n providerId?: string\n billingPeriod?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n referenceDate?: string // date\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 city?: string\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 city?: string\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 city?: string\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 city?: string\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 city?: string\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 inputs?: {\n type?: "power" | "gas"\n consumptionHT?: number\n consumptionNT?: number\n consumptionType?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n zipCode?: string\n city?: string\n providerId?: string\n billingPeriod?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n referenceDate?: string // date\n }\n _meta?: {\n signature: string\n timestamp: number\n }\n}\n```\n\n### `ComputePriceInputs`\n\nEcho of the request parameters used to compute the price, in the caller-facing shape.\n\n```ts\ntype ComputePriceInputs = {\n type?: "power" | "gas"\n consumptionHT?: number\n consumptionNT?: number\n consumptionType?: "household" | "heating_pump" | "night_storage_heating" | "night_storage_heating_common_meter"\n zipCode?: string\n city?: string\n providerId?: string\n billingPeriod?: "weekly" | "monthly" | "every_quarter" | "every_6_months" | "yearly" | "one_time"\n referenceDate?: string // date\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 inputs?: { ... }\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 // ...\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 inputs?: {\n type?: { ... }\n consumptionHT?: { ... }\n consumptionNT?: { ... }\n consumptionType?: { ... }\n zipCode?: { ... }\n city?: { ... }\n providerId?: { ... }\n billingPeriod?: { ... }\n referenceDate?: { ... }\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 // ...\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 inputs?: {\n type?: { ... }\n consumptionHT?: { ... }\n consumptionNT?: { ... }\n consumptionType?: { ... }\n zipCode?: { ... }\n city?: { ... }\n providerId?: { ... }\n billingPeriod?: { ... }\n referenceDate?: { ... }\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 // ...\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 inputs?: {\n type?: { ... }\n consumptionHT?: { ... }\n consumptionNT?: { ... }\n consumptionType?: { ... }\n zipCode?: { ... }\n city?: { ... }\n providerId?: { ... }\n billingPeriod?: { ... }\n referenceDate?: { ... }\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 // ...\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 inputs?: {\n type?: { ... }\n consumptionHT?: { ... }\n consumptionNT?: { ... }\n consumptionType?: { ... }\n zipCode?: { ... }\n city?: { ... }\n providerId?: { ... }\n billingPeriod?: { ... }\n referenceDate?: { ... }\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 // ...\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 inputs?: { ... }\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 // ...\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 source?: {\n item?: {\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 }\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
|
-
export {
|
|
6
|
-
pricing_default as default
|
|
7
|
-
};
|