@owlmeans/payment 0.1.18-rc.9 → 0.1.18
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 +95 -57
- package/agent-meta/manifest.json +10 -3
- package/agent-meta/skills/entitlements/SKILL.md +159 -0
- package/agent-meta/skills/payment/SKILL.md +491 -28
- package/build/advertise.d.ts +2 -0
- package/build/advertise.d.ts.map +1 -0
- package/build/advertise.js +10 -0
- package/build/advertise.js.map +1 -0
- package/build/checkout/consts.d.ts +2 -0
- package/build/checkout/consts.d.ts.map +1 -0
- package/build/checkout/consts.js +2 -0
- package/build/checkout/consts.js.map +1 -0
- package/build/checkout/index.d.ts +6 -0
- package/build/checkout/index.d.ts.map +1 -0
- package/build/checkout/index.js +4 -0
- package/build/checkout/index.js.map +1 -0
- package/build/checkout/narrow/types.d.ts +25 -0
- package/build/checkout/narrow/types.d.ts.map +1 -0
- package/build/checkout/narrow/types.js +2 -0
- package/build/checkout/narrow/types.js.map +1 -0
- package/build/checkout/narrow.d.ts +8 -0
- package/build/checkout/narrow.d.ts.map +1 -0
- package/build/checkout/narrow.js +47 -0
- package/build/checkout/narrow.js.map +1 -0
- package/build/checkout/protocols.d.ts +8 -0
- package/build/checkout/protocols.d.ts.map +1 -0
- package/build/checkout/protocols.js +28 -0
- package/build/checkout/protocols.js.map +1 -0
- package/build/checkout/types.d.ts +29 -0
- package/build/checkout/types.d.ts.map +1 -0
- package/build/checkout/types.js +2 -0
- package/build/checkout/types.js.map +1 -0
- package/build/consts.d.ts +242 -25
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +377 -24
- package/build/consts.js.map +1 -1
- package/build/consts.local.d.ts +20 -0
- package/build/consts.local.d.ts.map +1 -0
- package/build/consts.local.js +23 -0
- package/build/consts.local.js.map +1 -0
- package/build/consumer/cancel.d.ts +11 -0
- package/build/consumer/cancel.d.ts.map +1 -0
- package/build/consumer/cancel.js +33 -0
- package/build/consumer/cancel.js.map +1 -0
- package/build/consumer/consts.d.ts +20 -0
- package/build/consumer/consts.d.ts.map +1 -0
- package/build/consumer/consts.js +39 -0
- package/build/consumer/consts.js.map +1 -0
- package/build/consumer/consts.local.d.ts +7 -0
- package/build/consumer/consts.local.d.ts.map +1 -0
- package/build/consumer/consts.local.js +13 -0
- package/build/consumer/consts.local.js.map +1 -0
- package/build/consumer/copy/types.d.ts +56 -0
- package/build/consumer/copy/types.d.ts.map +1 -0
- package/build/consumer/copy/types.js +2 -0
- package/build/consumer/copy/types.js.map +1 -0
- package/build/consumer/copy.d.ts +22 -0
- package/build/consumer/copy.d.ts.map +1 -0
- package/build/consumer/copy.js +87 -0
- package/build/consumer/copy.js.map +1 -0
- package/build/consumer/deadline/types.d.ts +30 -0
- package/build/consumer/deadline/types.d.ts.map +1 -0
- package/build/consumer/deadline/types.js +2 -0
- package/build/consumer/deadline/types.js.map +1 -0
- package/build/consumer/deadline.d.ts +12 -0
- package/build/consumer/deadline.d.ts.map +1 -0
- package/build/consumer/deadline.js +44 -0
- package/build/consumer/deadline.js.map +1 -0
- package/build/consumer/fifo/types.d.ts +17 -0
- package/build/consumer/fifo/types.d.ts.map +1 -0
- package/build/consumer/fifo/types.js +2 -0
- package/build/consumer/fifo/types.js.map +1 -0
- package/build/consumer/fifo.d.ts +4 -0
- package/build/consumer/fifo.d.ts.map +1 -0
- package/build/consumer/fifo.js +34 -0
- package/build/consumer/fifo.js.map +1 -0
- package/build/consumer/index.d.ts +18 -0
- package/build/consumer/index.d.ts.map +1 -0
- package/build/consumer/index.js +11 -0
- package/build/consumer/index.js.map +1 -0
- package/build/consumer/policy/types.d.ts +20 -0
- package/build/consumer/policy/types.d.ts.map +1 -0
- package/build/consumer/policy/types.js +2 -0
- package/build/consumer/policy/types.js.map +1 -0
- package/build/consumer/policy.d.ts +17 -0
- package/build/consumer/policy.d.ts.map +1 -0
- package/build/consumer/policy.js +91 -0
- package/build/consumer/policy.js.map +1 -0
- package/build/consumer/protocols.d.ts +20 -0
- package/build/consumer/protocols.d.ts.map +1 -0
- package/build/consumer/protocols.js +70 -0
- package/build/consumer/protocols.js.map +1 -0
- package/build/consumer/refund/types.d.ts +27 -0
- package/build/consumer/refund/types.d.ts.map +1 -0
- package/build/consumer/refund/types.js +2 -0
- package/build/consumer/refund/types.js.map +1 -0
- package/build/consumer/refund.d.ts +9 -0
- package/build/consumer/refund.d.ts.map +1 -0
- package/build/consumer/refund.js +112 -0
- package/build/consumer/refund.js.map +1 -0
- package/build/consumer/refusal.d.ts +10 -0
- package/build/consumer/refusal.d.ts.map +1 -0
- package/build/consumer/refusal.js +35 -0
- package/build/consumer/refusal.js.map +1 -0
- package/build/consumer/revive/types.d.ts +19 -0
- package/build/consumer/revive/types.d.ts.map +1 -0
- package/build/consumer/revive/types.js +2 -0
- package/build/consumer/revive/types.js.map +1 -0
- package/build/consumer/revive.d.ts +13 -0
- package/build/consumer/revive.d.ts.map +1 -0
- package/build/consumer/revive.js +43 -0
- package/build/consumer/revive.js.map +1 -0
- package/build/consumer/types.d.ts +196 -0
- package/build/consumer/types.d.ts.map +1 -0
- package/build/consumer/types.js +2 -0
- package/build/consumer/types.js.map +1 -0
- package/build/consumer/types.local.d.ts +11 -0
- package/build/consumer/types.local.d.ts.map +1 -0
- package/build/consumer/types.local.js +2 -0
- package/build/consumer/types.local.js.map +1 -0
- package/build/countries.d.ts +3 -0
- package/build/countries.d.ts.map +1 -0
- package/build/countries.js +4 -0
- package/build/countries.js.map +1 -0
- package/build/entitled.d.ts +14 -0
- package/build/entitled.d.ts.map +1 -0
- package/build/entitled.js +17 -0
- package/build/entitled.js.map +1 -0
- package/build/entitlement/types.d.ts +29 -0
- package/build/entitlement/types.d.ts.map +1 -0
- package/build/entitlement/types.js +2 -0
- package/build/entitlement/types.js.map +1 -0
- package/build/entitlement.d.ts +7 -55
- package/build/entitlement.d.ts.map +1 -1
- package/build/entitlement.js +55 -86
- package/build/entitlement.js.map +1 -1
- package/build/errors.d.ts +189 -0
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +361 -0
- package/build/errors.js.map +1 -1
- package/build/estimate/types.d.ts +34 -0
- package/build/estimate/types.d.ts.map +1 -0
- package/build/estimate/types.js +2 -0
- package/build/estimate/types.js.map +1 -0
- package/build/estimate.d.ts +11 -0
- package/build/estimate.d.ts.map +1 -0
- package/build/estimate.js +76 -0
- package/build/estimate.js.map +1 -0
- package/build/i18n/consumer-rights/be.json +131 -0
- package/build/i18n/consumer-rights/de.json +131 -0
- package/build/i18n/consumer-rights/en.json +131 -0
- package/build/i18n/consumer-rights/es.json +131 -0
- package/build/i18n/consumer-rights/fr.json +131 -0
- package/build/i18n/consumer-rights/pl.json +131 -0
- package/build/i18n/consumer-rights/ru.json +131 -0
- package/build/i18n/consumer-rights/uk.json +131 -0
- package/build/i18n/errors/be.json +30 -0
- package/build/i18n/errors/de.json +30 -0
- package/build/i18n/errors/en.json +30 -0
- package/build/i18n/errors/es.json +30 -0
- package/build/i18n/errors/fr.json +30 -0
- package/build/i18n/errors/pl.json +30 -0
- package/build/i18n/errors/ru.json +30 -0
- package/build/i18n/errors/uk.json +30 -0
- package/build/i18n/fr.json +39 -0
- package/build/i18n.js +53 -8
- package/build/i18n.js.map +1 -1
- package/build/index.d.ts +18 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +11 -1
- package/build/index.js.map +1 -1
- package/build/limit/types.d.ts +44 -0
- package/build/limit/types.d.ts.map +1 -0
- package/build/limit/types.js +2 -0
- package/build/limit/types.js.map +1 -0
- package/build/limit.d.ts +23 -0
- package/build/limit.d.ts.map +1 -0
- package/build/limit.js +97 -0
- package/build/limit.js.map +1 -0
- package/build/model/checkout.d.ts +2 -3
- package/build/model/checkout.d.ts.map +1 -1
- package/build/model/checkout.js +12 -7
- package/build/model/checkout.js.map +1 -1
- package/build/model/consts.d.ts +15 -0
- package/build/model/consts.d.ts.map +1 -0
- package/build/model/consts.js +193 -0
- package/build/model/consts.js.map +1 -0
- package/build/model/consts.local.d.ts +35 -0
- package/build/model/consts.local.d.ts.map +1 -0
- package/build/model/consts.local.js +65 -0
- package/build/model/consts.local.js.map +1 -0
- package/build/model/consumer.d.ts +23 -0
- package/build/model/consumer.d.ts.map +1 -0
- package/build/model/consumer.js +272 -0
- package/build/model/consumer.js.map +1 -0
- package/build/model/estimate.d.ts +5 -0
- package/build/model/estimate.d.ts.map +1 -0
- package/build/model/estimate.js +69 -0
- package/build/model/estimate.js.map +1 -0
- package/build/model/index.d.ts +7 -2
- package/build/model/index.d.ts.map +1 -1
- package/build/model/index.js +7 -2
- package/build/model/index.js.map +1 -1
- package/build/model/limit.d.ts +7 -0
- package/build/model/limit.d.ts.map +1 -0
- package/build/model/limit.js +32 -0
- package/build/model/limit.js.map +1 -0
- package/build/model/plan.d.ts.map +1 -1
- package/build/model/plan.js +24 -11
- package/build/model/plan.js.map +1 -1
- package/build/model/portal.d.ts +4 -0
- package/build/model/portal.d.ts.map +1 -0
- package/build/model/portal.js +22 -0
- package/build/model/portal.js.map +1 -0
- package/build/model/pricing.d.ts +4 -0
- package/build/model/pricing.d.ts.map +1 -0
- package/build/model/pricing.js +31 -0
- package/build/model/pricing.js.map +1 -0
- package/build/model/view.d.ts +3 -0
- package/build/model/view.d.ts.map +1 -0
- package/build/model/view.js +15 -0
- package/build/model/view.js.map +1 -0
- package/build/pricing/types.d.ts +13 -0
- package/build/pricing/types.d.ts.map +1 -0
- package/build/pricing/types.js +2 -0
- package/build/pricing/types.js.map +1 -0
- package/build/pricing.d.ts +13 -0
- package/build/pricing.d.ts.map +1 -0
- package/build/pricing.js +74 -0
- package/build/pricing.js.map +1 -0
- package/build/promo/types.d.ts +14 -0
- package/build/promo/types.d.ts.map +1 -0
- package/build/promo/types.js +2 -0
- package/build/promo/types.js.map +1 -0
- package/build/promo.d.ts +7 -0
- package/build/promo.d.ts.map +1 -0
- package/build/promo.js +25 -0
- package/build/promo.js.map +1 -0
- package/build/regions/types.d.ts +32 -0
- package/build/regions/types.d.ts.map +1 -0
- package/build/regions/types.js +2 -0
- package/build/regions/types.js.map +1 -0
- package/build/regions.d.ts +15 -0
- package/build/regions.d.ts.map +1 -0
- package/build/regions.js +43 -0
- package/build/regions.js.map +1 -0
- package/build/service.d.ts.map +1 -1
- package/build/service.js +24 -9
- package/build/service.js.map +1 -1
- package/build/types.d.ts +619 -52
- package/build/types.d.ts.map +1 -1
- package/build/types.local.d.ts +4 -0
- package/build/types.local.d.ts.map +1 -0
- package/build/types.local.js +2 -0
- package/build/types.local.js.map +1 -0
- package/build/view/types.d.ts +33 -0
- package/build/view/types.d.ts.map +1 -0
- package/build/view/types.js +2 -0
- package/build/view/types.js.map +1 -0
- package/build/view.d.ts +13 -0
- package/build/view.d.ts.map +1 -0
- package/build/view.js +78 -0
- package/build/view.js.map +1 -0
- package/package.json +14 -12
- package/src/advertise.ts +13 -0
- package/src/checkout/consts.ts +1 -0
- package/src/checkout/index.ts +5 -0
- package/src/checkout/narrow/types.ts +27 -0
- package/src/checkout/narrow.ts +63 -0
- package/src/checkout/protocols.ts +39 -0
- package/src/checkout/types.ts +27 -0
- package/src/consts.local.ts +34 -0
- package/src/consts.ts +417 -24
- package/src/consumer/cancel.ts +40 -0
- package/src/consumer/consts.local.ts +16 -0
- package/src/consumer/consts.ts +46 -0
- package/src/consumer/copy/types.ts +54 -0
- package/src/consumer/copy.ts +121 -0
- package/src/consumer/deadline/types.ts +30 -0
- package/src/consumer/deadline.ts +61 -0
- package/src/consumer/fifo/types.ts +17 -0
- package/src/consumer/fifo.ts +42 -0
- package/src/consumer/index.ts +17 -0
- package/src/consumer/policy/types.ts +20 -0
- package/src/consumer/policy.ts +101 -0
- package/src/consumer/protocols.ts +116 -0
- package/src/consumer/refund/types.ts +27 -0
- package/src/consumer/refund.ts +136 -0
- package/src/consumer/refusal.ts +35 -0
- package/src/consumer/revive/types.ts +23 -0
- package/src/consumer/revive.ts +82 -0
- package/src/consumer/types.local.ts +10 -0
- package/src/consumer/types.ts +189 -0
- package/src/countries.ts +5 -0
- package/src/entitled.ts +20 -0
- package/src/entitlement/types.ts +29 -0
- package/src/entitlement.ts +67 -103
- package/src/errors.ts +445 -0
- package/src/estimate/types.ts +34 -0
- package/src/estimate.ts +90 -0
- package/src/i18n/consumer-rights/be.json +131 -0
- package/src/i18n/consumer-rights/de.json +131 -0
- package/src/i18n/consumer-rights/en.json +131 -0
- package/src/i18n/consumer-rights/es.json +131 -0
- package/src/i18n/consumer-rights/fr.json +131 -0
- package/src/i18n/consumer-rights/pl.json +131 -0
- package/src/i18n/consumer-rights/ru.json +131 -0
- package/src/i18n/consumer-rights/uk.json +131 -0
- package/src/i18n/errors/be.json +30 -0
- package/src/i18n/errors/de.json +30 -0
- package/src/i18n/errors/en.json +30 -0
- package/src/i18n/errors/es.json +30 -0
- package/src/i18n/errors/fr.json +30 -0
- package/src/i18n/errors/pl.json +30 -0
- package/src/i18n/errors/ru.json +30 -0
- package/src/i18n/errors/uk.json +30 -0
- package/src/i18n/fr.json +39 -0
- package/src/i18n.ts +58 -8
- package/src/index.ts +18 -2
- package/src/limit/types.ts +41 -0
- package/src/limit.ts +132 -0
- package/src/model/checkout.ts +12 -7
- package/src/model/consts.local.ts +83 -0
- package/src/model/consts.ts +206 -0
- package/src/model/consumer.ts +294 -0
- package/src/model/estimate.ts +73 -0
- package/src/model/index.ts +7 -2
- package/src/model/limit.ts +36 -0
- package/src/model/plan.ts +25 -12
- package/src/model/portal.ts +25 -0
- package/src/model/pricing.ts +34 -0
- package/src/model/view.ts +17 -0
- package/src/pricing/types.ts +13 -0
- package/src/pricing.ts +110 -0
- package/src/promo/types.ts +18 -0
- package/src/promo.ts +46 -0
- package/src/regions/types.ts +42 -0
- package/src/regions.ts +85 -0
- package/src/service.ts +32 -15
- package/src/types.local.ts +5 -0
- package/src/types.ts +669 -49
- package/src/view/types.ts +39 -0
- package/src/view.ts +119 -0
- package/tests/checkout-narrow.spec.ts +75 -0
- package/tests/consumer-copy.spec.ts +378 -0
- package/tests/consumer-deadline.spec.ts +85 -0
- package/tests/consumer-fifo.spec.ts +61 -0
- package/tests/consumer-protocols.spec.ts +103 -0
- package/tests/consumer-refund.spec.ts +134 -0
- package/tests/consumer-regions.spec.ts +140 -0
- package/tests/consumer-wire.spec.ts +170 -0
- package/tests/contract.spec.ts +183 -0
- package/tests/entitlement.spec.ts +38 -25
- package/tests/errors.spec.ts +168 -0
- package/tests/estimate.spec.ts +139 -0
- package/tests/limit.spec.ts +117 -0
- package/tests/pricing.spec.ts +30 -0
- package/tests/view.spec.ts +130 -0
- package/build/.gitkeep +0 -0
- package/src/model/subscription.ts +0 -63
- package/src/model/utils.ts +0 -32
- package/src/modules.ts +0 -43
- package/tests/entitlement.spec.d.ts +0 -2
- package/tests/entitlement.spec.d.ts.map +0 -1
- package/tests/entitlement.spec.js +0 -72
- package/tests/entitlement.spec.js.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AmountEstimate, PriceEstimate, PricingPolicy } from '../types.js'
|
|
2
|
+
|
|
3
|
+
/** The pricing policy's invariants and the tax / local-currency estimate of an amount. */
|
|
4
|
+
export interface PriceEstimateHelper {
|
|
5
|
+
/**
|
|
6
|
+
* @throws PaymentError when a tax estimate is served without automatic tax, a currency estimate is
|
|
7
|
+
* served without Adaptive Pricing, or a TTL is not a positive integer.
|
|
8
|
+
*/
|
|
9
|
+
assertPricingPolicy: (policy: PricingPolicy) => PricingPolicy
|
|
10
|
+
/**
|
|
11
|
+
* Stripe's `percentage_decimal` (e.g. `"23"`, `"8.875"`) as parts per million — `1_000_000` is
|
|
12
|
+
* `100%` — parsed digit by digit so it is exact where a float parse (`Number(x) * 10_000`) is not.
|
|
13
|
+
* Fractional digits past the fourth are truncated, not rounded: a quarter of a hundredth of a
|
|
14
|
+
* percent is already far finer than any real tax rate.
|
|
15
|
+
*
|
|
16
|
+
* @throws PaymentError when the string is not a plain (unsigned, non-exponential) decimal.
|
|
17
|
+
*/
|
|
18
|
+
ratePpmOf: (percentageDecimal: string) => number
|
|
19
|
+
/**
|
|
20
|
+
* Re-derive tax and the local-currency total for `amountMinor` from a `PriceEstimate` already
|
|
21
|
+
* fetched for the SAME product/plan/country, so a UI can re-price a custom amount (the credit
|
|
22
|
+
* dialog) without a second Stripe Tax call ($0.05 each).
|
|
23
|
+
*
|
|
24
|
+
* Exact for `amountMinor === estimate.tax.subtotalMinor` (Stripe's own numbers, echoed back).
|
|
25
|
+
* Otherwise exact only for `TaxBehavior.Exclusive` with `estimate.tax.scalable` — a linear
|
|
26
|
+
* percentage rate scales; a flat fee, a reduced-rate portion, or several inclusive rates do not, and
|
|
27
|
+
* neither does rescaling an inclusive amount (its tax portion is carved OUT of the total by a
|
|
28
|
+
* different formula this helper does not attempt). Both cases return `null` amounts, meaning
|
|
29
|
+
* "computed at checkout".
|
|
30
|
+
*
|
|
31
|
+
* @throws PaymentError when `amountMinor` is not a non-negative safe integer.
|
|
32
|
+
*/
|
|
33
|
+
estimateOf: (amountMinor: number, estimate: PriceEstimate) => AmountEstimate
|
|
34
|
+
}
|
package/src/estimate.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { PaymentError } from './errors.js'
|
|
2
|
+
import { TaxBehavior } from './consts.js'
|
|
3
|
+
import type { PriceEstimate, PricingPolicy, AmountEstimate } from './types.js'
|
|
4
|
+
import type { PriceEstimateHelper } from './estimate/types.js'
|
|
5
|
+
|
|
6
|
+
/** Stripe's own convention for a tax amount: half a unit rounds up. */
|
|
7
|
+
const roundHalfUp = (value: number): number => Math.floor(value + 0.5)
|
|
8
|
+
|
|
9
|
+
export const createPriceEstimateHelper = (): PriceEstimateHelper => {
|
|
10
|
+
const assertPricingPolicy = (policy: PricingPolicy): PricingPolicy => {
|
|
11
|
+
if (policy.tax.estimate && !policy.tax.automatic) {
|
|
12
|
+
throw new PaymentError('pricing-policy:tax-estimate-requires-automatic')
|
|
13
|
+
}
|
|
14
|
+
if (policy.currency.estimate && policy.currency.adaptive !== true) {
|
|
15
|
+
throw new PaymentError('pricing-policy:currency-estimate-requires-adaptive')
|
|
16
|
+
}
|
|
17
|
+
const feeRate = policy.currency.adaptiveFeeRate
|
|
18
|
+
if (feeRate != null) {
|
|
19
|
+
if (policy.currency.adaptive !== true) {
|
|
20
|
+
throw new PaymentError('pricing-policy:adaptive-fee-requires-adaptive')
|
|
21
|
+
}
|
|
22
|
+
if (!Number.isFinite(feeRate) || feeRate < 0 || feeRate >= 1) {
|
|
23
|
+
throw new PaymentError('pricing-policy:adaptive-fee-rate')
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
for (const ttl of [policy.tax.estimateTtlSeconds, policy.currency.estimateTtlSeconds]) {
|
|
27
|
+
if (ttl != null && (!Number.isSafeInteger(ttl) || ttl < 1)) {
|
|
28
|
+
throw new PaymentError('pricing-policy:ttl')
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return policy
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const ratePpmOf = (percentageDecimal: string): number => {
|
|
35
|
+
const match = /^(\d+)(?:\.(\d+))?$/.exec(percentageDecimal.trim())
|
|
36
|
+
if (match == null) {
|
|
37
|
+
throw new PaymentError('tax-rate:percentage')
|
|
38
|
+
}
|
|
39
|
+
const [, whole, fraction = ''] = match
|
|
40
|
+
const fractionPpm = Number(`${fraction}0000`.slice(0, 4))
|
|
41
|
+
const ppm = Number(whole) * 10_000 + fractionPpm
|
|
42
|
+
if (!Number.isSafeInteger(ppm)) {
|
|
43
|
+
throw new PaymentError('tax-rate:percentage')
|
|
44
|
+
}
|
|
45
|
+
return ppm
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const estimateOf = (amountMinor: number, estimate: PriceEstimate): AmountEstimate => {
|
|
49
|
+
if (!Number.isSafeInteger(amountMinor) || amountMinor < 0) {
|
|
50
|
+
throw new PaymentError('price-estimate:amount')
|
|
51
|
+
}
|
|
52
|
+
const { tax, behavior, local } = estimate
|
|
53
|
+
const sameAmount = amountMinor === tax.subtotalMinor
|
|
54
|
+
const rescalable = sameAmount || (behavior === TaxBehavior.Exclusive && tax.scalable)
|
|
55
|
+
if (!rescalable) {
|
|
56
|
+
return { subtotalMinor: amountMinor, taxMinor: null, totalMinor: null }
|
|
57
|
+
}
|
|
58
|
+
// `sameAmount` trusts Stripe's own numbers outright; otherwise only Exclusive ever reaches here
|
|
59
|
+
// (`rescalable` above excludes an Inclusive amount that differs from the reference).
|
|
60
|
+
const taxMinor = sameAmount ? tax.taxMinor : tax.rates.reduce(
|
|
61
|
+
(sum, rate) => sum + roundHalfUp(amountMinor * rate.ratePpm / 1_000_000), 0,
|
|
62
|
+
)
|
|
63
|
+
const totalMinor = sameAmount ? tax.totalMinor : amountMinor + taxMinor
|
|
64
|
+
const result: AmountEstimate = { subtotalMinor: amountMinor, taxMinor, totalMinor }
|
|
65
|
+
if (local != null) {
|
|
66
|
+
result.local = {
|
|
67
|
+
currency: local.currency,
|
|
68
|
+
subtotalAmount: amountMinor / 100 / local.exchangeRate,
|
|
69
|
+
taxAmount: taxMinor / 100 / local.exchangeRate,
|
|
70
|
+
totalAmount: totalMinor / 100 / local.exchangeRate,
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return result
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return { assertPricingPolicy, ratePpmOf, estimateOf }
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export const priceEstimateHelper = createPriceEstimateHelper()
|
|
80
|
+
|
|
81
|
+
/** @deprecated compat:factory-refactor — use `priceEstimateHelper.assertPricingPolicy(…)` */
|
|
82
|
+
export const assertPricingPolicy = (policy: PricingPolicy): PricingPolicy =>
|
|
83
|
+
priceEstimateHelper.assertPricingPolicy(policy)
|
|
84
|
+
|
|
85
|
+
/** @deprecated compat:factory-refactor — use `priceEstimateHelper.ratePpmOf(…)` */
|
|
86
|
+
export const ratePpmOf = (percentageDecimal: string): number => priceEstimateHelper.ratePpmOf(percentageDecimal)
|
|
87
|
+
|
|
88
|
+
/** @deprecated compat:factory-refactor — use `priceEstimateHelper.estimateOf(…)` */
|
|
89
|
+
export const estimateOf = (amountMinor: number, estimate: PriceEstimate): AmountEstimate =>
|
|
90
|
+
priceEstimateHelper.estimateOf(amountMinor, estimate)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"performance-consent": {
|
|
3
|
+
"title": "Пачаць карыстацца крэдытамі зараз?",
|
|
4
|
+
"title_included": "Скарыстаць папоўненыя крэдыты зараз?",
|
|
5
|
+
"intro": "Пакупак, па якіх яшчэ дзейнічае тэрмін адмовы ад дагавора: {{count}}. Апошні тэрмін сканчаецца {{deadline}}.",
|
|
6
|
+
"intro_included": "Пакупак, па якіх яшчэ дзейнічае тэрмін адмовы ад дагавора: {{count}}. Апошні тэрмін сканчаецца {{deadline}}. Ліміты крэдытаў, уключаныя ў ваш план, заўсёды выкарыстоўваюцца ў першую чаргу; гэта тычыцца папоўненых вамі крэдытаў пасля таго, як гэтыя ліміты будуць вычарпаны.",
|
|
7
|
+
"purchase": "Крэдыты набыты {{date}} ({{amount}}): як спажывец у ЕС вы можаце адмовіцца ад гэтай пакупкі да {{deadline}} уключна.",
|
|
8
|
+
"request": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} платнай паслугі — працы ШІ і ствараемага ёю лічбавага кантэнту — зараз, да сканчэння тэрміну адмовы ад дагавора.",
|
|
9
|
+
"request_included": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} платнай паслугі — працы ШІ і ствараемага ёю лічбавага кантэнту — зараз, да сканчэння тэрміну адмовы ад дагавора, з аплатай папоўненымі мной крэдытамі пасля таго, як будуць вычарпаны ліміты крэдытаў, уключаныя ў мой план, якія заўсёды выкарыстоўваюцца ў першую чаргу.",
|
|
10
|
+
"acknowledgement": "Я разумею, што ў дачыненні да выкарыстаных мной крэдытаў маё права на адмову ад дагавора спыняецца пасля выканання гэтай працы і што пры адмове ад дагавора кампенсуюцца толькі невыкарыстаныя крэдыты.",
|
|
11
|
+
"checkbox": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} платнай паслугі — працы ШІ і ствараемага ёю лічбавага кантэнту — зараз, да сканчэння тэрміну адмовы ад дагавора. Я разумею, што ў дачыненні да выкарыстаных мной крэдытаў маё права на адмову ад дагавора спыняецца пасля выканання гэтай працы і што пры адмове ад дагавора кампенсуюцца толькі невыкарыстаныя крэдыты.",
|
|
12
|
+
"checkbox_included": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} платнай паслугі — працы ШІ і ствараемага ёю лічбавага кантэнту — зараз, да сканчэння тэрміну адмовы ад дагавора, з аплатай папоўненымі мной крэдытамі пасля таго, як будуць вычарпаны ліміты крэдытаў, уключаныя ў мой план, якія заўсёды выкарыстоўваюцца ў першую чаргу. Я разумею, што ў дачыненні да выкарыстаных мной крэдытаў маё права на адмову ад дагавора спыняецца пасля выканання гэтай працы і што пры адмове ад дагавора кампенсуюцца толькі невыкарыстаныя крэдыты.",
|
|
13
|
+
"confirm": "Пачаць зараз",
|
|
14
|
+
"decline": "Не зараз"
|
|
15
|
+
},
|
|
16
|
+
"subscription-start": {
|
|
17
|
+
"title": "Пачаць паслугі {{plan}} зараз?",
|
|
18
|
+
"intro": "Як спажывец у ЕС вы можаце адмовіцца ад гэтай падпіскі на працягу 14 дзён. Да сканчэння гэтага тэрміну мы пачынаем аказваць паслугі толькі па вашым прамым патрабаванні.",
|
|
19
|
+
"request": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} паслуг {{plan}} — у тым ліку працы ШІ ў межах выкарыстання, прадугледжанага планам, — зараз, да сканчэння 14-дзённага тэрміну адмовы ад дагавора.",
|
|
20
|
+
"request_units": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} паслуг платформы {{plan}} зараз і на выкананне працы ШІ, аплачанай уключанымі крэдытамі, кожны раз, калі я яе запускаю, да сканчэння 14-дзённага тэрміну адмовы ад дагавора.",
|
|
21
|
+
"acknowledgement": "Я разумею, што пры адмове ад дагавора я аплачваю паслугі, аказаныя да гэтага моманту, прапарцыйна колькасці дзён, якія мінулі, а ўсё астатняе кампенсуецца.",
|
|
22
|
+
"acknowledgement_units": "Я разумею, што пры адмове ад дагавора я аплачваю паслугі платформы, аказаныя да гэтага моманту, прапарцыйна часу, які мінуў, і што маё права на адмову ад дагавора спыняецца ў дачыненні да выкарыстаных мной уключаных крэдытаў; усё астатняе кампенсуецца.",
|
|
23
|
+
"checkbox": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} паслуг {{plan}} — у тым ліку працы ШІ ў межах выкарыстання, прадугледжанага планам, — зараз, да сканчэння 14-дзённага тэрміну адмовы ад дагавора. Я разумею, што пры адмове ад дагавора я аплачваю паслугі, аказаныя да гэтага моманту, прапарцыйна колькасці дзён, якія мінулі, а ўсё астатняе кампенсуецца.",
|
|
24
|
+
"checkbox_units": "Я прама патрабую і прама згаджаюся на пачатак аказання {{trader}} паслуг платформы {{plan}} зараз і на выкананне працы ШІ, аплачанай уключанымі крэдытамі, кожны раз, калі я яе запускаю, да сканчэння 14-дзённага тэрміну адмовы ад дагавора. Я разумею, што пры адмове ад дагавора я аплачваю паслугі платформы, аказаныя да гэтага моманту, прапарцыйна часу, які мінуў, і што маё права на адмову ад дагавора спыняецца ў дачыненні да выкарыстаных мной уключаных крэдытаў; усё астатняе кампенсуецца.",
|
|
25
|
+
"confirm": "Перайсці да аплаты",
|
|
26
|
+
"decline": "Скасаваць"
|
|
27
|
+
},
|
|
28
|
+
"withdrawal": {
|
|
29
|
+
"function": "Адмовіцца ад дагавора тут",
|
|
30
|
+
"confirm": "Пацвердзіць адмову ад дагавора",
|
|
31
|
+
"title": "Адмова ад дагавора",
|
|
32
|
+
"intro": "Тут вы можаце адмовіцца ад дагавора на працягу тэрміну адмовы. Пазначце імя, дагавор і адрас электроннай пошты, на які мы адправім пацвярджэнне атрымання.",
|
|
33
|
+
"name": "Імя",
|
|
34
|
+
"contract": "Дагавор",
|
|
35
|
+
"email": "Адрас электроннай пошты",
|
|
36
|
+
"review": "Праверце даныя. Вашу адмову будзе адпраўлена пасля пацвярджэння.",
|
|
37
|
+
"received": "Вашу адмову ад дагавора атрымана {{date}} (UTC). Пацвярджэнне атрымання адпраўлена на {{email}}.",
|
|
38
|
+
"deadline": "Вы можаце адмовіцца ад дагавора да {{deadline}} уключна."
|
|
39
|
+
},
|
|
40
|
+
"cancellation": {
|
|
41
|
+
"function": "Растаргнуць дагаворы тут",
|
|
42
|
+
"confirm": "Растаргнуць зараз",
|
|
43
|
+
"title": "Растарганне дагавора",
|
|
44
|
+
"intro": "Тут вы можаце заявіць пра растарганне дагавора падпіскі. Запоўніце палі ніжэй; пацвярджэнне атрымання мы адправім на пазначаны адрас электроннай пошты.",
|
|
45
|
+
"kind": "Від растаргнення",
|
|
46
|
+
"kind-ordinary": "Звычайнае растарганне",
|
|
47
|
+
"kind-extraordinary": "Датэрміновае растарганне (па ўважлівай прычыне)",
|
|
48
|
+
"reason": "Прычына датэрміновага растаргнення",
|
|
49
|
+
"name": "Імя",
|
|
50
|
+
"contract": "Дагавор або нумар кліента",
|
|
51
|
+
"effective": "Дата спынення",
|
|
52
|
+
"effective-earliest": "У найбліжэйшую магчымую дату",
|
|
53
|
+
"effective-date": "У вызначаную дату",
|
|
54
|
+
"email": "Адрас электроннай пошты",
|
|
55
|
+
"summary": "Праверце заяву пра растарганне перад адпраўкай.",
|
|
56
|
+
"received": "Вашу заяву пра растарганне атрымана {{date}} (UTC). Пацвярджэнне атрымання адпраўлена на {{email}}."
|
|
57
|
+
},
|
|
58
|
+
"links": {
|
|
59
|
+
"billing-terms": "Умовы аплаты",
|
|
60
|
+
"withdrawal-information": "Інфармацыя пра права на адмову",
|
|
61
|
+
"withdrawal-form": "Узор формы адмовы",
|
|
62
|
+
"withdrawal-function": "Адмовіцца ад дагавора тут",
|
|
63
|
+
"cancellation": "Растаргнуць дагаворы тут"
|
|
64
|
+
},
|
|
65
|
+
"checkout": {
|
|
66
|
+
"terms-acceptance": {
|
|
67
|
+
"in-scope": "Я прымаю [Умовы аплаты]({{billingTerms}}) і пацвярджаю азнаямленне з [інфармацыяй пра права на адмову]({{withdrawalInformation}}).",
|
|
68
|
+
"other": "Я прымаю [Умовы аплаты]({{billingTerms}})."
|
|
69
|
+
},
|
|
70
|
+
"renewal": {
|
|
71
|
+
"month": "{{price}} у месяц. Падаўжаецца штомесяц да растаргнення; растаргнуць можна ў любы момант з канцом разліковага перыяду.",
|
|
72
|
+
"year": "{{price}} у год. Падаўжаецца штогод да растаргнення; растаргнуць можна ў любы момант з канцом разліковага перыяду.",
|
|
73
|
+
"after-submit": "Растаргнуць можна ў любы момант: [Растаргнуць дагаворы тут]({{cancelUrl}})"
|
|
74
|
+
},
|
|
75
|
+
"price": {
|
|
76
|
+
"exclusive": "{{amount}} плюс ПДВ",
|
|
77
|
+
"inclusive": "{{amount}} з ПДВ",
|
|
78
|
+
"exclusive-tax": "{{amount}} плюс адпаведныя падаткі"
|
|
79
|
+
},
|
|
80
|
+
"top-up": "Перадаплата: {{product}}, толькі для выкарыстання ўліковым запісам гэтай арганізацыі (краіна выстаўлення рахункаў {{country}}). Спажыўцы ў ЕС могуць адмовіцца на працягу 14 дзён; права спыняецца для крэдытаў, выкарыстаных пасля таго, як вы папросіце нас пачаць.",
|
|
81
|
+
"top-up-note": "Спажыўцы ў ЕС могуць адмовіцца ад пакупкі крэдытаў на працягу 14 дзён. Як толькі вы папросіце нас пачаць выкарыстоўваць крэдыты, права на адмову спыняецца для выкарыстаных крэдытаў; невыкарыстаныя крэдыты кампенсуюцца."
|
|
82
|
+
},
|
|
83
|
+
"email": {
|
|
84
|
+
"common": {
|
|
85
|
+
"greeting": "Вітаем!",
|
|
86
|
+
"greeting-named": "Вітаем, {{name}}!",
|
|
87
|
+
"received-at": "Атрымана: {{date}} (UTC)",
|
|
88
|
+
"contract-ref": "Дагавор: {{contractRef}}",
|
|
89
|
+
"trader": "Прадавец: {{trader}}",
|
|
90
|
+
"link": "{{label}}: {{url}}",
|
|
91
|
+
"footer": "Калі ласка, захавайце гэты ліст. Ён пацвярджае выкладзенае вышэй на даўгавечным носьбіце."
|
|
92
|
+
},
|
|
93
|
+
"consent": {
|
|
94
|
+
"subject": "Пацвярджэнне: ваша патрабаванне пачаць выкарыстанне крэдытаў",
|
|
95
|
+
"body": "{{date}} (UTC) вы зрабілі наступную заяву:\n\n«{{statement}}»\n\nЗаява датычыцца наступных пакупак:\n{{purchases}}",
|
|
96
|
+
"purchase": "- {{contractRef}} ад {{date}} ({{amount}}): ад невыкарыстаных крэдытаў можна адмовіцца да {{deadline}} уключна.",
|
|
97
|
+
"unused": "Ад невыкарыстаных крэдытаў можна адмовіцца да канца тэрміну адмовы па іх пакупцы. Пры адмове ад дагавора кампенсуюцца толькі невыкарыстаныя крэдыты."
|
|
98
|
+
},
|
|
99
|
+
"start": {
|
|
100
|
+
"subject": "Пацвярджэнне: ваша патрабаванне пачаць паслугі {{plan}}",
|
|
101
|
+
"body": "{{date}} (UTC), перад афармленнем падпіскі {{plan}}, вы зрабілі наступную заяву:\n\n«{{statement}}»",
|
|
102
|
+
"rule": "Калі вы адмовіцеся ад дагавора на працягу тэрміну адмовы, вы аплачваеце паслугі, аказаныя да гэтага моманту, прапарцыйна колькасці дзён, якія мінулі; усё астатняе кампенсуецца.",
|
|
103
|
+
"rule_units": "Калі вы адмовіцеся ад дагавора на працягу тэрміну адмовы, вы аплачваеце паслугі платформы, аказаныя да гэтага моманту, прапарцыйна часу, які мінуў, а права на адмову спыняецца ў дачыненні да выкарыстаных уключаных крэдытаў; усё астатняе кампенсуецца."
|
|
104
|
+
},
|
|
105
|
+
"purchase": {
|
|
106
|
+
"subject": "Пацвярджэнне заказу {{contractRef}}",
|
|
107
|
+
"body": "Дзякуй за заказ.\n\nДагавор: {{contractRef}}\nДата: {{date}} (UTC)\nПрадукт: {{product}}\nЦана з падаткамі: {{total}} (падатак: {{tax}})",
|
|
108
|
+
"start-request": "Перад гэтай пакупкай вы прама запатрабавалі, каб мы адразу пачалі аказваць паслугі:\n\n«{{statement}}»",
|
|
109
|
+
"withdrawal-information": "Права на адмову ад дагавора\n\nВы маеце права адмовіцца ад гэтага дагавора на працягу 14 дзён без тлумачэння прычын. Тэрмін адмовы сканчаецца праз 14 дзён з дня заключэння дагавора.\n\nКаб скарыстацца правам на адмову, вы павінны паведаміць нам ({{trader}}) пра сваё рашэнне адмовіцца ад гэтага дагавора з дапамогай недвухсэнсоўнай заявы (напрыклад, ліста па пошце або па электроннай пошце). Вы можаце выкарыстаць прыведзены ніжэй узор формы адмовы, але гэта не абавязкова. Вы таксама можаце адмовіцца ад дагавора онлайн з дапамогай функцыі адмовы на нашым сайце: {{withdrawalFunction}}. Калі вы скарыстаецеся гэтай магчымасцю, мы неадкладна адправім вам пацвярджэнне атрымання такой адмовы на даўгавечным носьбіце (напрыклад, па электроннай пошце).\n\nДля захавання тэрміну дастаткова адправіць паведамленне пра ажыццяўленне права на адмову да сканчэння тэрміну адмовы.\n\nНаступствы адмовы\n\nКалі вы адмовіцеся ад гэтага дагавора, мы кампенсуем вам усе атрыманыя ад вас плацяжы без неабгрунтаванай затрымкі і ў любым выпадку не пазней чым праз 14 дзён з дня, калі мы даведаліся пра ваша рашэнне адмовіцца ад гэтага дагавора. Кампенсацыя ажыццяўляецца тым самым плацежным сродкам, які вы выкарысталі пры першапачатковай аперацыі, калі толькі вы прама не пагадзіліся на іншае; у любым выпадку кампенсацыя не прывядзе для вас да ніякіх выдаткаў.\n\nКалі вы запатрабавалі пачаць аказанне паслуг на працягу тэрміну адмовы, вы плаціце нам суму, прапарцыйную аб’ёму паслуг, аказаных да моманту, калі вы паведамілі нам пра адмову ад гэтага дагавора, у параўнанні з поўным аб’ёмам паслуг па дагаворы.\n\nВаша права на адмову спыняецца ў дачыненні да паслуг і лічбавага кантэнту, цалкам аказаных пасля таго, як вы прама запатрабавалі пачаць выкананне на працягу тэрміну адмовы і пацвердзілі, што тым самым губляеце права на адмову. Для перадаплачаных крэдытаў выкананне пачынаецца толькі тады, калі вы просіце нас іх выкарыстаць: права на адмову спыняецца для крэдытаў, выкарыстаных пасля гэтай просьбы, а невыкарыстаныя крэдыты кампенсуюцца.",
|
|
110
|
+
"model-form": "Узор формы адмовы ад дагавора\n\n(запоўніце і адпраўце гэту форму, толькі калі хочаце адмовіцца ад дагавора)\n\n— Каму: {{trader}}\n— Гэтым я/мы (*) заяўляю/заяўляем (*) пра адмову ад майго/нашага (*) дагавора аб аказанні наступнай паслугі (*) / аб пастаўцы наступнага лічбавага кантэнту (*):\n— Дата заказу (*) / атрымання (*):\n— Імя спажыўца (спажыўцоў):\n— Адрас спажыўца (спажыўцоў):\n— Подпіс спажыўца (спажыўцоў) (толькі пры адпраўцы формы на паперы):\n— Дата:\n\n(*) Непатрэбнае закрэсліць."
|
|
111
|
+
},
|
|
112
|
+
"withdrawal": {
|
|
113
|
+
"subject": "Пацвярджэнне атрымання вашай адмовы ад дагавора",
|
|
114
|
+
"body": "Мы атрымалі вашу адмову ад дагавора.\n\nАтрымана: {{date}} (UTC)\nІмя: {{name}}\nДагавор: {{contract}}\nАдрас электроннай пошты: {{email}}",
|
|
115
|
+
"refund": "Мы кампенсуем {{amount}} тым плацежным сродкам, які вы выкарысталі пры пакупцы, у любым выпадку на працягу 14 дзён.",
|
|
116
|
+
"review": "Мы апрацоўваем вашу адмову. Мы вернем належную суму тым самым спосабам аплаты, якім вы скарысталіся пры пакупцы, без неапраўданай затрымкі і ў любым выпадку не пазней за 14 дзён з дня атрымання вашай адмовы, і паведамім вам гэтую суму.",
|
|
117
|
+
"expired": "Вашу адмову атрымана пасля сканчэння тэрміну адмовы па гэтым дагаворы ({{deadline}}). Вашы правы па законе, у тым ліку правы пры неадпаведнасці паслугі дагавору, захоўваюцца.",
|
|
118
|
+
"unmatched": "Калі гэтыя даныя адпавядаюць аднаму з нашых дагавораў, мы выканаем адмову і паведамім вам пра кампенсацыю."
|
|
119
|
+
},
|
|
120
|
+
"cancellation": {
|
|
121
|
+
"subject": "Пацвярджэнне атрымання заявы пра растарганне",
|
|
122
|
+
"body": "Мы атрымалі вашу заяву пра растарганне.\n\nАтрымана: {{date}} (UTC)\nІмя: {{name}}\nДагавор: {{contract}}\nВід растаргнення: {{kind}}\nЖаданая дата спынення: {{requested}}\nАдрас электроннай пошты: {{email}}",
|
|
123
|
+
"effective": "Ваш дагавор спыняецца {{effectiveAt}}.",
|
|
124
|
+
"unmatched": "Калі гэтыя даныя адпавядаюць аднаму з нашых дагавораў, мы спынім яго ў жаданую дату, а калі гэта немагчыма — у найбліжэйшую магчымую дату, і пацвердзім вам гэту дату.",
|
|
125
|
+
"review": "Ваша датэрміновае растарганне па ўважлівай прычыне зарэгістравана. Мы разгледзім пазначаную прычыну і пісьмова пацвердзім вам, ці спыняецца дагавор і калі."
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"credit-note": {
|
|
129
|
+
"memo": "Адмова ад дагавора {{contractRef}}, атрымана {{date}}."
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"performance-consent": {
|
|
3
|
+
"title": "Jetzt mit der Nutzung Ihrer Credits beginnen?",
|
|
4
|
+
"title_included": "Jetzt Ihre aufgeladenen Credits verwenden?",
|
|
5
|
+
"intro": "Käufe, die sich noch in der Widerrufsfrist befinden: {{count}}. Die letzte Widerrufsfrist endet am {{deadline}}.",
|
|
6
|
+
"intro_included": "Käufe, die sich noch in der Widerrufsfrist befinden: {{count}}. Die letzte Widerrufsfrist endet am {{deadline}}. Die in Ihrem Tarif enthaltenen Credit-Limits werden stets zuerst verwendet; dies gilt für die von Ihnen aufgeladenen Credits, sobald diese Limits aufgebraucht sind.",
|
|
7
|
+
"purchase": "Credits gekauft am {{date}} ({{amount}}): Als Verbraucher in der EU können Sie diesen Kauf bis einschließlich {{deadline}} widerrufen.",
|
|
8
|
+
"request": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} mit der Ausführung der kostenpflichtigen Leistung – der KI-Arbeit und der dabei erstellten digitalen Inhalte – jetzt, vor Ablauf der Widerrufsfrist, beginnt.",
|
|
9
|
+
"request_included": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} mit der Ausführung der kostenpflichtigen Leistung – der KI-Arbeit und der dabei erstellten digitalen Inhalte – jetzt, vor Ablauf der Widerrufsfrist, beginnt; bezahlt wird sie mit meinen aufgeladenen Credits, sobald die in meinem Tarif enthaltenen Credit-Limits, die stets zuerst verwendet werden, aufgebraucht sind.",
|
|
10
|
+
"acknowledgement": "Mir ist bekannt, dass mein Widerrufsrecht für die von mir verwendeten Credits erlischt, sobald diese Arbeit ausgeführt wurde, und dass mir bei einem Widerruf nur die nicht verwendeten Credits erstattet werden.",
|
|
11
|
+
"checkbox": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} mit der Ausführung der kostenpflichtigen Leistung – der KI-Arbeit und der dabei erstellten digitalen Inhalte – jetzt, vor Ablauf der Widerrufsfrist, beginnt. Mir ist bekannt, dass mein Widerrufsrecht für die von mir verwendeten Credits erlischt, sobald diese Arbeit ausgeführt wurde, und dass mir bei einem Widerruf nur die nicht verwendeten Credits erstattet werden.",
|
|
12
|
+
"checkbox_included": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} mit der Ausführung der kostenpflichtigen Leistung – der KI-Arbeit und der dabei erstellten digitalen Inhalte – jetzt, vor Ablauf der Widerrufsfrist, beginnt; bezahlt wird sie mit meinen aufgeladenen Credits, sobald die in meinem Tarif enthaltenen Credit-Limits, die stets zuerst verwendet werden, aufgebraucht sind. Mir ist bekannt, dass mein Widerrufsrecht für die von mir verwendeten Credits erlischt, sobald diese Arbeit ausgeführt wurde, und dass mir bei einem Widerruf nur die nicht verwendeten Credits erstattet werden.",
|
|
13
|
+
"confirm": "Jetzt beginnen",
|
|
14
|
+
"decline": "Nicht jetzt"
|
|
15
|
+
},
|
|
16
|
+
"subscription-start": {
|
|
17
|
+
"title": "Die Leistungen von {{plan}} jetzt beginnen?",
|
|
18
|
+
"intro": "Als Verbraucher in der EU können Sie dieses Abonnement binnen 14 Tagen widerrufen. Vor Ablauf dieser Frist beginnen wir mit den Leistungen nur auf Ihr ausdrückliches Verlangen.",
|
|
19
|
+
"request": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} die Leistungen von {{plan}} – einschließlich der KI-Arbeit im Rahmen der im Plan enthaltenen Nutzung – jetzt beginnt, vor Ablauf der 14-tägigen Widerrufsfrist.",
|
|
20
|
+
"request_units": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} die Plattformleistungen von {{plan}} jetzt beginnt und die mit den enthaltenen Credits bezahlte KI-Arbeit ausführt, sobald ich sie starte – vor Ablauf der 14-tägigen Widerrufsfrist.",
|
|
21
|
+
"acknowledgement": "Mir ist bekannt, dass ich bei einem Widerruf die bis dahin erbrachten Leistungen anteilig nach den verstrichenen Tagen bezahle und alles Übrige erstattet wird.",
|
|
22
|
+
"acknowledgement_units": "Mir ist bekannt, dass ich bei einem Widerruf die bis dahin erbrachten Plattformleistungen zeitanteilig bezahle und dass mein Widerrufsrecht für die von mir verwendeten enthaltenen Credits erlischt; alles Übrige wird erstattet.",
|
|
23
|
+
"checkbox": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} die Leistungen von {{plan}} – einschließlich der KI-Arbeit im Rahmen der im Plan enthaltenen Nutzung – jetzt beginnt, vor Ablauf der 14-tägigen Widerrufsfrist. Mir ist bekannt, dass ich bei einem Widerruf die bis dahin erbrachten Leistungen anteilig nach den verstrichenen Tagen bezahle und alles Übrige erstattet wird.",
|
|
24
|
+
"checkbox_units": "Ich verlange ausdrücklich und stimme ausdrücklich zu, dass {{trader}} die Plattformleistungen von {{plan}} jetzt beginnt und die mit den enthaltenen Credits bezahlte KI-Arbeit ausführt, sobald ich sie starte – vor Ablauf der 14-tägigen Widerrufsfrist. Mir ist bekannt, dass ich bei einem Widerruf die bis dahin erbrachten Plattformleistungen zeitanteilig bezahle und dass mein Widerrufsrecht für die von mir verwendeten enthaltenen Credits erlischt; alles Übrige wird erstattet.",
|
|
25
|
+
"confirm": "Weiter zur Zahlung",
|
|
26
|
+
"decline": "Abbrechen"
|
|
27
|
+
},
|
|
28
|
+
"withdrawal": {
|
|
29
|
+
"function": "Vertrag widerrufen",
|
|
30
|
+
"confirm": "Widerruf bestätigen",
|
|
31
|
+
"title": "Widerruf eines Vertrags",
|
|
32
|
+
"intro": "Hier können Sie einen Vertrag innerhalb der Widerrufsfrist widerrufen. Geben Sie Ihren Namen, den Vertrag und die E-Mail-Adresse an, an die wir die Eingangsbestätigung senden.",
|
|
33
|
+
"name": "Name",
|
|
34
|
+
"contract": "Vertrag",
|
|
35
|
+
"email": "E-Mail-Adresse",
|
|
36
|
+
"review": "Bitte prüfen Sie Ihre Angaben. Ihr Widerruf wird abgesendet, sobald Sie ihn bestätigen.",
|
|
37
|
+
"received": "Ihr Widerruf ist am {{date}} (UTC) bei uns eingegangen. Eine Eingangsbestätigung wurde an {{email}} gesendet.",
|
|
38
|
+
"deadline": "Sie können bis einschließlich {{deadline}} widerrufen."
|
|
39
|
+
},
|
|
40
|
+
"cancellation": {
|
|
41
|
+
"function": "Verträge hier kündigen",
|
|
42
|
+
"confirm": "Jetzt kündigen",
|
|
43
|
+
"title": "Vertrag kündigen",
|
|
44
|
+
"intro": "Hier können Sie einen Abonnementvertrag kündigen. Geben Sie die folgenden Angaben ein; wir senden eine Eingangsbestätigung an die von Ihnen angegebene E-Mail-Adresse.",
|
|
45
|
+
"kind": "Art der Kündigung",
|
|
46
|
+
"kind-ordinary": "Ordentliche Kündigung",
|
|
47
|
+
"kind-extraordinary": "Außerordentliche Kündigung (aus wichtigem Grund)",
|
|
48
|
+
"reason": "Grund der außerordentlichen Kündigung",
|
|
49
|
+
"name": "Name",
|
|
50
|
+
"contract": "Vertrag oder Kundennummer",
|
|
51
|
+
"effective": "Zeitpunkt der Beendigung",
|
|
52
|
+
"effective-earliest": "Zum nächstmöglichen Zeitpunkt",
|
|
53
|
+
"effective-date": "Zu einem bestimmten Datum",
|
|
54
|
+
"email": "E-Mail-Adresse",
|
|
55
|
+
"summary": "Bitte prüfen Sie Ihre Kündigung, bevor Sie sie absenden.",
|
|
56
|
+
"received": "Ihre Kündigung ist am {{date}} (UTC) bei uns eingegangen. Eine Eingangsbestätigung wurde an {{email}} gesendet."
|
|
57
|
+
},
|
|
58
|
+
"links": {
|
|
59
|
+
"billing-terms": "Abrechnungsbedingungen",
|
|
60
|
+
"withdrawal-information": "Widerrufsbelehrung",
|
|
61
|
+
"withdrawal-form": "Muster-Widerrufsformular",
|
|
62
|
+
"withdrawal-function": "Vertrag widerrufen",
|
|
63
|
+
"cancellation": "Verträge hier kündigen"
|
|
64
|
+
},
|
|
65
|
+
"checkout": {
|
|
66
|
+
"terms-acceptance": {
|
|
67
|
+
"in-scope": "Ich akzeptiere die [Abrechnungsbedingungen]({{billingTerms}}) und habe die [Widerrufsbelehrung]({{withdrawalInformation}}) gelesen.",
|
|
68
|
+
"other": "Ich akzeptiere die [Abrechnungsbedingungen]({{billingTerms}})."
|
|
69
|
+
},
|
|
70
|
+
"renewal": {
|
|
71
|
+
"month": "{{price}} pro Monat. Verlängert sich monatlich bis zur Kündigung; jederzeit kündbar zum Ende des Abrechnungszeitraums.",
|
|
72
|
+
"year": "{{price}} pro Jahr. Verlängert sich jährlich bis zur Kündigung; jederzeit kündbar zum Ende des Abrechnungszeitraums.",
|
|
73
|
+
"after-submit": "Jederzeit kündbar: [Verträge hier kündigen]({{cancelUrl}})"
|
|
74
|
+
},
|
|
75
|
+
"price": {
|
|
76
|
+
"exclusive": "{{amount}} zzgl. MwSt.",
|
|
77
|
+
"inclusive": "{{amount}} inkl. MwSt.",
|
|
78
|
+
"exclusive-tax": "{{amount}} zzgl. anfallender Steuern"
|
|
79
|
+
},
|
|
80
|
+
"top-up": "Vorauszahlung: {{product}}, nur für das Konto dieser Organisation nutzbar (Rechnungsland {{country}}). Verbraucher in der EU können binnen 14 Tagen widerrufen; das Widerrufsrecht erlischt für Credits, die verwendet werden, nachdem Sie uns um den Beginn gebeten haben.",
|
|
81
|
+
"top-up-note": "Verbraucher in der EU können einen Kauf von Credits binnen 14 Tagen widerrufen. Sobald Sie uns bitten, mit der Nutzung der Credits zu beginnen, erlischt das Widerrufsrecht für die verwendeten Credits; nicht verwendete Credits werden erstattet."
|
|
82
|
+
},
|
|
83
|
+
"email": {
|
|
84
|
+
"common": {
|
|
85
|
+
"greeting": "Guten Tag,",
|
|
86
|
+
"greeting-named": "Guten Tag {{name}},",
|
|
87
|
+
"received-at": "Eingegangen am: {{date}} (UTC)",
|
|
88
|
+
"contract-ref": "Vertrag: {{contractRef}}",
|
|
89
|
+
"trader": "Unternehmer: {{trader}}",
|
|
90
|
+
"link": "{{label}}: {{url}}",
|
|
91
|
+
"footer": "Bitte bewahren Sie diese E-Mail auf. Sie bestätigt das Obenstehende auf einem dauerhaften Datenträger."
|
|
92
|
+
},
|
|
93
|
+
"consent": {
|
|
94
|
+
"subject": "Bestätigung: Ihr Verlangen, mit der Nutzung Ihrer Credits zu beginnen",
|
|
95
|
+
"body": "Am {{date}} (UTC) haben Sie uns gegenüber folgende Erklärung abgegeben:\n\n„{{statement}}“\n\nDie Erklärung betrifft diese Käufe:\n{{purchases}}",
|
|
96
|
+
"purchase": "- {{contractRef}} vom {{date}} ({{amount}}): nicht verwendete Credits können bis einschließlich {{deadline}} widerrufen werden.",
|
|
97
|
+
"unused": "Credits, die Sie nicht verwendet haben, können bis zum Ende der Widerrufsfrist ihres Kaufs widerrufen werden. Bei einem Widerruf werden nur die nicht verwendeten Credits erstattet."
|
|
98
|
+
},
|
|
99
|
+
"start": {
|
|
100
|
+
"subject": "Bestätigung: Ihr Verlangen, die Leistungen von {{plan}} zu beginnen",
|
|
101
|
+
"body": "Am {{date}} (UTC) haben Sie uns vor dem Abschluss des Abonnements {{plan}} folgende Erklärung abgegeben:\n\n„{{statement}}“",
|
|
102
|
+
"rule": "Widerrufen Sie innerhalb der Widerrufsfrist, bezahlen Sie die bis dahin erbrachten Leistungen anteilig nach den verstrichenen Tagen; alles Übrige wird erstattet.",
|
|
103
|
+
"rule_units": "Widerrufen Sie innerhalb der Widerrufsfrist, bezahlen Sie die bis dahin erbrachten Plattformleistungen zeitanteilig, und Ihr Widerrufsrecht erlischt für die verwendeten enthaltenen Credits; alles Übrige wird erstattet."
|
|
104
|
+
},
|
|
105
|
+
"purchase": {
|
|
106
|
+
"subject": "Bestellbestätigung {{contractRef}}",
|
|
107
|
+
"body": "Vielen Dank für Ihre Bestellung.\n\nVertrag: {{contractRef}}\nDatum: {{date}} (UTC)\nProdukt: {{product}}\nPreis inklusive Steuern: {{total}} (Steuern: {{tax}})",
|
|
108
|
+
"start-request": "Vor diesem Kauf haben Sie ausdrücklich verlangt, dass wir sofort mit den Leistungen beginnen:\n\n„{{statement}}“",
|
|
109
|
+
"withdrawal-information": "Widerrufsbelehrung\n\nWiderrufsrecht\n\nSie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag des Vertragsabschlusses.\n\nUm Ihr Widerrufsrecht auszuüben, müssen Sie uns ({{trader}}) mittels einer eindeutigen Erklärung (z. B. ein mit der Post versandter Brief oder E-Mail) über Ihren Entschluss, diesen Vertrag zu widerrufen, informieren. Sie können dafür das unten stehende Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Sie können den Vertrag auch online über die Widerrufsfunktion auf unserer Webseite widerrufen: {{withdrawalFunction}}. Machen Sie von dieser Möglichkeit Gebrauch, so werden wir Ihnen unverzüglich (z. B. per E-Mail) eine Bestätigung über den Eingang eines solchen Widerrufs auf einem dauerhaften Datenträger übermitteln.\n\nZur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.\n\nFolgen des Widerrufs\n\nWenn Sie diesen Vertrag widerrufen, haben wir Ihnen alle Zahlungen, die wir von Ihnen erhalten haben, unverzüglich und spätestens binnen vierzehn Tagen ab dem Tag zurückzuzahlen, an dem die Mitteilung über Ihren Widerruf dieses Vertrags bei uns eingegangen ist. Für diese Rückzahlung verwenden wir dasselbe Zahlungsmittel, das Sie bei der ursprünglichen Transaktion eingesetzt haben, es sei denn, mit Ihnen wurde ausdrücklich etwas anderes vereinbart; in keinem Fall werden Ihnen wegen dieser Rückzahlung Entgelte berechnet.\n\nHaben Sie verlangt, dass die Dienstleistungen während der Widerrufsfrist beginnen sollen, so haben Sie uns einen angemessenen Betrag zu zahlen, der dem Anteil der bis zu dem Zeitpunkt, zu dem Sie uns von der Ausübung des Widerrufsrechts hinsichtlich dieses Vertrags unterrichten, bereits erbrachten Dienstleistungen im Vergleich zum Gesamtumfang der im Vertrag vorgesehenen Dienstleistungen entspricht.\n\nIhr Widerrufsrecht erlischt für Dienstleistungen und digitale Inhalte, die vollständig erbracht wurden, nachdem Sie ausdrücklich verlangt haben, dass wir vor Ablauf der Widerrufsfrist mit der Ausführung beginnen, und bestätigt haben, dass Ihnen bekannt ist, dass Sie dadurch Ihr Widerrufsrecht verlieren. Bei vorausbezahlten Credits beginnt die Ausführung erst, wenn Sie uns bitten, sie zu verwenden: Das Widerrufsrecht erlischt für die danach verwendeten Credits, und die nicht verwendeten Credits werden erstattet.",
|
|
110
|
+
"model-form": "Muster-Widerrufsformular\n\n(Wenn Sie den Vertrag widerrufen wollen, dann füllen Sie bitte dieses Formular aus und senden Sie es zurück.)\n\n— An {{trader}}:\n— Hiermit widerrufe(n) ich/wir (*) den von mir/uns (*) abgeschlossenen Vertrag über die Erbringung der folgenden Dienstleistung (*) / die Bereitstellung der folgenden digitalen Inhalte (*):\n— Bestellt am (*) / erhalten am (*):\n— Name des/der Verbraucher(s):\n— Anschrift des/der Verbraucher(s):\n— Unterschrift des/der Verbraucher(s) (nur bei Mitteilung auf Papier):\n— Datum:\n\n(*) Unzutreffendes streichen."
|
|
111
|
+
},
|
|
112
|
+
"withdrawal": {
|
|
113
|
+
"subject": "Eingangsbestätigung Ihres Widerrufs",
|
|
114
|
+
"body": "Wir haben Ihren Widerruf eines Vertrags erhalten.\n\nEingegangen am: {{date}} (UTC)\nName: {{name}}\nVertrag: {{contract}}\nE-Mail-Adresse: {{email}}",
|
|
115
|
+
"refund": "Wir erstatten {{amount}} über das Zahlungsmittel, das Sie beim Kauf verwendet haben, in jedem Fall binnen 14 Tagen.",
|
|
116
|
+
"review": "Wir bearbeiten Ihren Widerruf. Wir zahlen Ihnen den geschuldeten Betrag unverzüglich und spätestens binnen vierzehn Tagen ab dem Tag zurück, an dem Ihr Widerruf bei uns eingegangen ist, und verwenden dafür dasselbe Zahlungsmittel, das Sie beim Kauf eingesetzt haben. Den Betrag teilen wir Ihnen mit.",
|
|
117
|
+
"expired": "Ihr Widerruf ist nach Ablauf der Widerrufsfrist dieses Vertrags am {{deadline}} eingegangen. Ihre gesetzlichen Rechte, einschließlich Ihrer Mängelrechte, bleiben unberührt.",
|
|
118
|
+
"unmatched": "Wenn diese Angaben zu einem unserer Verträge passen, führen wir den Widerruf aus und informieren Sie über die Erstattung."
|
|
119
|
+
},
|
|
120
|
+
"cancellation": {
|
|
121
|
+
"subject": "Eingangsbestätigung Ihrer Kündigung",
|
|
122
|
+
"body": "Wir haben Ihre Kündigung erhalten.\n\nEingegangen am: {{date}} (UTC)\nName: {{name}}\nVertrag: {{contract}}\nArt der Kündigung: {{kind}}\nGewünschter Beendigungszeitpunkt: {{requested}}\nE-Mail-Adresse: {{email}}",
|
|
123
|
+
"effective": "Ihr Vertrag endet am {{effectiveAt}}.",
|
|
124
|
+
"unmatched": "Wenn diese Angaben zu einem unserer Verträge passen, beenden wir ihn zum gewünschten, andernfalls zum nächstmöglichen Zeitpunkt und bestätigen Ihnen dieses Datum.",
|
|
125
|
+
"review": "Ihre außerordentliche Kündigung wurde erfasst. Wir prüfen den angegebenen Grund und bestätigen Ihnen schriftlich, ob und wann der Vertrag endet."
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"credit-note": {
|
|
129
|
+
"memo": "Widerruf des Vertrags {{contractRef}}, eingegangen am {{date}}."
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"performance-consent": {
|
|
3
|
+
"title": "Start using your credits now?",
|
|
4
|
+
"title_included": "Use your topped-up credits now?",
|
|
5
|
+
"intro": "Purchases still within the withdrawal period: {{count}}. The last withdrawal period ends on {{deadline}}.",
|
|
6
|
+
"intro_included": "Purchases still within the withdrawal period: {{count}}. The last withdrawal period ends on {{deadline}}. The credit limits included in your plan are always used first; this applies to credits you topped up once those limits have run out.",
|
|
7
|
+
"purchase": "Credits bought on {{date}} ({{amount}}): as a consumer in the EU you may withdraw from this purchase until the end of {{deadline}}.",
|
|
8
|
+
"request": "I expressly request and agree that {{trader}} starts performing the paid service — the AI work and the digital content it produces — now, before the withdrawal period ends.",
|
|
9
|
+
"request_included": "I expressly request and agree that {{trader}} starts performing the paid service — the AI work and the digital content it produces — now, before the withdrawal period ends, paid with my topped-up credits once the credit limits included in my plan, which are always used first, have run out.",
|
|
10
|
+
"acknowledgement": "I acknowledge that for the credits I use, my right of withdrawal expires once that work has been performed, and that if I withdraw, only the credits I have not used are reimbursed.",
|
|
11
|
+
"checkbox": "I expressly request and agree that {{trader}} starts performing the paid service — the AI work and the digital content it produces — now, before the withdrawal period ends. I acknowledge that for the credits I use, my right of withdrawal expires once that work has been performed, and that if I withdraw, only the credits I have not used are reimbursed.",
|
|
12
|
+
"checkbox_included": "I expressly request and agree that {{trader}} starts performing the paid service — the AI work and the digital content it produces — now, before the withdrawal period ends, paid with my topped-up credits once the credit limits included in my plan, which are always used first, have run out. I acknowledge that for the credits I use, my right of withdrawal expires once that work has been performed, and that if I withdraw, only the credits I have not used are reimbursed.",
|
|
13
|
+
"confirm": "Start now",
|
|
14
|
+
"decline": "Not now"
|
|
15
|
+
},
|
|
16
|
+
"subscription-start": {
|
|
17
|
+
"title": "Start the {{plan}} services now?",
|
|
18
|
+
"intro": "As a consumer in the EU you may withdraw from this subscription within 14 days. We start the services before that period ends only at your express request.",
|
|
19
|
+
"request": "I expressly request and agree that {{trader}} starts the {{plan}} services — including the AI work within the usage the plan includes — now, before the 14-day withdrawal period ends.",
|
|
20
|
+
"request_units": "I expressly request and agree that {{trader}} starts the {{plan}} platform services now and performs the AI work paid with the included credits whenever I start it, before the 14-day withdrawal period ends.",
|
|
21
|
+
"acknowledgement": "I acknowledge that if I withdraw, I pay for the services provided until then, pro rata by the days elapsed, and everything else is reimbursed.",
|
|
22
|
+
"acknowledgement_units": "I acknowledge that if I withdraw, I pay for the platform services provided until then, pro rata by time, and that my right of withdrawal expires for the included credits I have used; everything else is reimbursed.",
|
|
23
|
+
"checkbox": "I expressly request and agree that {{trader}} starts the {{plan}} services — including the AI work within the usage the plan includes — now, before the 14-day withdrawal period ends. I acknowledge that if I withdraw, I pay for the services provided until then, pro rata by the days elapsed, and everything else is reimbursed.",
|
|
24
|
+
"checkbox_units": "I expressly request and agree that {{trader}} starts the {{plan}} platform services now and performs the AI work paid with the included credits whenever I start it, before the 14-day withdrawal period ends. I acknowledge that if I withdraw, I pay for the platform services provided until then, pro rata by time, and that my right of withdrawal expires for the included credits I have used; everything else is reimbursed.",
|
|
25
|
+
"confirm": "Continue to payment",
|
|
26
|
+
"decline": "Cancel"
|
|
27
|
+
},
|
|
28
|
+
"withdrawal": {
|
|
29
|
+
"function": "Withdraw from contract here",
|
|
30
|
+
"confirm": "Confirm withdrawal",
|
|
31
|
+
"title": "Withdrawal from a contract",
|
|
32
|
+
"intro": "Here you can withdraw from a contract during its withdrawal period. Enter your name, the contract and the e-mail address to which we send the acknowledgement of receipt.",
|
|
33
|
+
"name": "Name",
|
|
34
|
+
"contract": "Contract",
|
|
35
|
+
"email": "E-mail address",
|
|
36
|
+
"review": "Please check your details. Your withdrawal is sent when you confirm it.",
|
|
37
|
+
"received": "Your withdrawal was received on {{date}} (UTC). An acknowledgement of receipt has been sent to {{email}}.",
|
|
38
|
+
"deadline": "You may withdraw until the end of {{deadline}}."
|
|
39
|
+
},
|
|
40
|
+
"cancellation": {
|
|
41
|
+
"function": "Cancel contracts here",
|
|
42
|
+
"confirm": "Cancel now",
|
|
43
|
+
"title": "Cancel a contract",
|
|
44
|
+
"intro": "Here you can give notice of termination of a subscription contract. Enter the details below; we send an acknowledgement of receipt to the e-mail address you enter.",
|
|
45
|
+
"kind": "Type of cancellation",
|
|
46
|
+
"kind-ordinary": "Ordinary cancellation",
|
|
47
|
+
"kind-extraordinary": "Extraordinary cancellation (for good cause)",
|
|
48
|
+
"reason": "Reason for the extraordinary cancellation",
|
|
49
|
+
"name": "Name",
|
|
50
|
+
"contract": "Contract or customer reference",
|
|
51
|
+
"effective": "Date of termination",
|
|
52
|
+
"effective-earliest": "At the earliest possible date",
|
|
53
|
+
"effective-date": "On a specific date",
|
|
54
|
+
"email": "E-mail address",
|
|
55
|
+
"summary": "Please check your cancellation before you send it.",
|
|
56
|
+
"received": "Your cancellation was received on {{date}} (UTC). An acknowledgement of receipt has been sent to {{email}}."
|
|
57
|
+
},
|
|
58
|
+
"links": {
|
|
59
|
+
"billing-terms": "Billing Terms",
|
|
60
|
+
"withdrawal-information": "Withdrawal information",
|
|
61
|
+
"withdrawal-form": "Model withdrawal form",
|
|
62
|
+
"withdrawal-function": "Withdraw from contract here",
|
|
63
|
+
"cancellation": "Cancel contracts here"
|
|
64
|
+
},
|
|
65
|
+
"checkout": {
|
|
66
|
+
"terms-acceptance": {
|
|
67
|
+
"in-scope": "I agree to the [Billing Terms]({{billingTerms}}) and have read the [withdrawal information]({{withdrawalInformation}}).",
|
|
68
|
+
"other": "I agree to the [Billing Terms]({{billingTerms}})."
|
|
69
|
+
},
|
|
70
|
+
"renewal": {
|
|
71
|
+
"month": "{{price}} per month. Renews monthly until cancelled; cancel any time, effective at the end of the billing period.",
|
|
72
|
+
"year": "{{price}} per year. Renews yearly until cancelled; cancel any time, effective at the end of the billing period.",
|
|
73
|
+
"after-submit": "Cancel any time: [Cancel contracts here]({{cancelUrl}})"
|
|
74
|
+
},
|
|
75
|
+
"price": {
|
|
76
|
+
"exclusive": "{{amount}} plus VAT",
|
|
77
|
+
"inclusive": "{{amount}} incl. VAT",
|
|
78
|
+
"exclusive-tax": "{{amount}} plus applicable tax"
|
|
79
|
+
},
|
|
80
|
+
"top-up": "Prepaid {{product}}, usable only by this organization's account (billing country {{country}}). EU consumers may withdraw within 14 days; the right expires for credits used after you ask us to start.",
|
|
81
|
+
"top-up-note": "EU consumers may withdraw from a credit purchase within 14 days. Once you ask us to start using the credits, the right of withdrawal expires for the credits used; unused credits are reimbursed."
|
|
82
|
+
},
|
|
83
|
+
"email": {
|
|
84
|
+
"common": {
|
|
85
|
+
"greeting": "Hello,",
|
|
86
|
+
"greeting-named": "Hello {{name}},",
|
|
87
|
+
"received-at": "Received on: {{date}} (UTC)",
|
|
88
|
+
"contract-ref": "Contract: {{contractRef}}",
|
|
89
|
+
"trader": "Trader: {{trader}}",
|
|
90
|
+
"link": "{{label}}: {{url}}",
|
|
91
|
+
"footer": "Please keep this e-mail. It confirms the above on a durable medium."
|
|
92
|
+
},
|
|
93
|
+
"consent": {
|
|
94
|
+
"subject": "Confirmation: your request to start using your credits",
|
|
95
|
+
"body": "On {{date}} (UTC) you gave us the following statement:\n\n\"{{statement}}\"\n\nThe statement covers these purchases:\n{{purchases}}",
|
|
96
|
+
"purchase": "- {{contractRef}} of {{date}} ({{amount}}): unused credits remain withdrawable until the end of {{deadline}}.",
|
|
97
|
+
"unused": "Credits you have not used remain withdrawable until the end of the withdrawal period of their purchase. If you withdraw, only the credits you have not used are reimbursed."
|
|
98
|
+
},
|
|
99
|
+
"start": {
|
|
100
|
+
"subject": "Confirmation: your request to start the {{plan}} services",
|
|
101
|
+
"body": "On {{date}} (UTC), before subscribing to {{plan}}, you gave us the following statement:\n\n\"{{statement}}\"",
|
|
102
|
+
"rule": "If you withdraw within the withdrawal period, you pay for the services provided until then, pro rata by the days elapsed; everything else is reimbursed.",
|
|
103
|
+
"rule_units": "If you withdraw within the withdrawal period, you pay for the platform services provided until then, pro rata by time, and your right of withdrawal expires for the included credits you have used; everything else is reimbursed."
|
|
104
|
+
},
|
|
105
|
+
"purchase": {
|
|
106
|
+
"subject": "Order confirmation {{contractRef}}",
|
|
107
|
+
"body": "Thank you for your order.\n\nContract: {{contractRef}}\nDate: {{date}} (UTC)\nProduct: {{product}}\nPrice including tax: {{total}} (tax: {{tax}})",
|
|
108
|
+
"start-request": "Before this purchase you expressly requested that we start the services right away:\n\n\"{{statement}}\"",
|
|
109
|
+
"withdrawal-information": "Right of withdrawal\n\nYou have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day of the conclusion of the contract.\n\nTo exercise the right of withdrawal, you must inform us ({{trader}}) of your decision to withdraw from this contract by an unequivocal statement (e.g. a letter sent by post or e-mail). You may use the model withdrawal form below, but it is not obligatory. You can also withdraw online with the withdrawal function on our website: {{withdrawalFunction}}. If you use this option, we will communicate to you an acknowledgement of receipt of such a withdrawal on a durable medium (e.g. by e-mail) without delay.\n\nTo meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.\n\nEffects of withdrawal\n\nIf you withdraw from this contract, we shall reimburse to you all payments received from you without undue delay and in any event not later than 14 days from the day on which we are informed about your decision to withdraw from this contract. We will carry out such reimbursement using the same means of payment as you used for the initial transaction, unless you have expressly agreed otherwise; in any event, you will not incur any fees as a result of such reimbursement.\n\nIf you requested to begin the performance of services during the withdrawal period, you shall pay us an amount which is in proportion to what has been provided until you have communicated us your withdrawal from this contract, in comparison with the full coverage of the contract.\n\nYour right of withdrawal expires for services and digital content that have been fully performed after you expressly requested us to begin performance during the withdrawal period and acknowledged that you thereby lose your right of withdrawal. For prepaid credits, performance begins only when you ask us to start using them: the right of withdrawal expires for the credits used after that request, and the credits you have not used are reimbursed.",
|
|
110
|
+
"model-form": "Model withdrawal form\n\n(complete and return this form only if you wish to withdraw from the contract)\n\n— To {{trader}}:\n— I/We (*) hereby give notice that I/We (*) withdraw from my/our (*) contract for the provision of the following service (*) / for the supply of the following digital content (*):\n— Ordered on (*) / received on (*):\n— Name of consumer(s):\n— Address of consumer(s):\n— Signature of consumer(s) (only if this form is notified on paper):\n— Date:\n\n(*) Delete as appropriate."
|
|
111
|
+
},
|
|
112
|
+
"withdrawal": {
|
|
113
|
+
"subject": "Acknowledgement of receipt of your withdrawal",
|
|
114
|
+
"body": "We have received your withdrawal from a contract.\n\nReceived on: {{date}} (UTC)\nName: {{name}}\nContract: {{contract}}\nE-mail address: {{email}}",
|
|
115
|
+
"refund": "We reimburse {{amount}} using the means of payment you used for the purchase, and in any event within 14 days.",
|
|
116
|
+
"review": "We are processing your withdrawal. We will reimburse the amount due using the means of payment you used for the purchase, without undue delay and in any event not later than 14 days from the day on which we received your withdrawal, and will tell you the amount.",
|
|
117
|
+
"expired": "Your withdrawal was received after the withdrawal period of this contract ended on {{deadline}}. Your statutory rights, including your rights in case of defects, remain unaffected.",
|
|
118
|
+
"unmatched": "If these details match one of our contracts, we carry out the withdrawal and inform you of the reimbursement."
|
|
119
|
+
},
|
|
120
|
+
"cancellation": {
|
|
121
|
+
"subject": "Acknowledgement of receipt of your cancellation",
|
|
122
|
+
"body": "We have received your cancellation.\n\nReceived on: {{date}} (UTC)\nName: {{name}}\nContract: {{contract}}\nType of cancellation: {{kind}}\nRequested date of termination: {{requested}}\nE-mail address: {{email}}",
|
|
123
|
+
"effective": "Your contract ends on {{effectiveAt}}.",
|
|
124
|
+
"unmatched": "If these details match one of our contracts, we end it at the requested date or, failing that, at the earliest possible date, and confirm that date to you.",
|
|
125
|
+
"review": "Your extraordinary cancellation has been recorded. We examine the reason you gave and confirm to you in writing whether and when the contract ends."
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"credit-note": {
|
|
129
|
+
"memo": "Withdrawal from contract {{contractRef}}, received on {{date}}."
|
|
130
|
+
}
|
|
131
|
+
}
|