# Order completed

Endpoint: POST order-completed
Version: latest
Security: SecretApiKey, JWT

## Request fields (application/json):

  - `subscriptionId` (string)
    ID of the order.
    Example: sub_01HRF27SATGE4Z6PBJE6PD8328

  - `eventType` (string)
    Type of event that triggered the webhook.
    Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"

  - `_embedded` (object)
    Embedded objects related to the order event.

  - `_embedded.subscription` (object)
    Subscription details.

  - `_embedded.subscription.orderType` (string, required)
    Specifies the type of order.
An order may be a subscription or a one-time purchase.
> **Note:** The order type cannot be changed after creation.
    Enum: "subscription-order"

  - `_embedded.subscription.customerId` (string, required)
    ID of the customer resource.
    Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF

  - `_embedded.subscription.organizationId` (string)
    Unique organization identifier.
An organization is an entity that represents a company.
For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
    Example: org_0YVDM8RC7GDADADSBSMW124JA8

  - `_embedded.subscription.trial` (object)
    Details of the trial.
To use plan defaults, omit the `trial` key or set this value to `null`.

  - `_embedded.subscription.trial.enabled` (boolean)
    Specifies if there is a trial for this subscription.
Plans without trial prices are free trials.

  - `_embedded.subscription.trial.endTime` (string | null)
    Time and date when the trial ends.
If a trial is enabled on this subscription, a value must be provided.

If the specified trial end time is in the past, the current time is used.

  - `_embedded.subscription.isTrialOnly` (boolean)
    Specifies if a subscription ends after a trial period.
If this value is `true`, recurring settings are ignored.

  - `_embedded.subscription.invoiceTimeShift` (object | null)
    Use invoice time shift to control the billing time.
Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes.
Use invoice time shift in conjunction with `billingTiming` to:
- Bill immediately when the service period starts.
- Bill immediately after the service period ends.
- Bill at an interval of time before the service period starts.
- Bill at an interval of time after the service period starts.
- Bill at an interval of time before the service period ends.
- Bill at an interval of time after the service period ends.

  - `_embedded.subscription.invoiceTimeShift.issueTimeShift` (object)
    Calculation instruction of the billing time.
This is used in conjunction with the service period anchor to calculate
the time at which the invoice is issued. For more information, see
[Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/concepts/#service-period-anchor-and-billing-timing-and-invoice-time-shift).

  - `_embedded.subscription.invoiceTimeShift.issueTimeShift.chronology` (string, required)
    Sequential order of the billing time relative to the start of the service period.
    Enum: "before"

  - `_embedded.subscription.invoiceTimeShift.issueTimeShift.duration` (integer, required)
    Amount of time by which to move the invoice issue time or date.

  - `_embedded.subscription.invoiceTimeShift.issueTimeShift.unit` (any, required)
    Unit of time.

  - `_embedded.subscription.invoiceTimeShift.dueTimeShift` (object)
    Calculation instruction of the invoice due time.
This is used in conjunction with the billing anchor to calculate when
an invoice is due for payment. For more information, see
[Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/concepts/#service-period-anchor-and-billing-timing-and-invoice-time-shift).
The sequential order of due time shift is always after the due date.

  - `_embedded.subscription.invoiceTimeShift.dueTimeShift.duration` (integer, required)
    Amount of time by which to move the invoice due time or date.

  - `_embedded.subscription.invoiceTimeShift.dueTimeShift.unit` (any, required)
    Unit of time.

  - `_embedded.subscription.recurringInterval` (object | null)
    Recurring interval to override plan settings.
To use plan settings, set this value to `null`.
To use multiple plans in one subscription,
all plans must have the same recurring period length.
    Example: null

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction` (object | null)
    Instruction for calculating the service period anchor.

The service period anchor is used, in conjunction with the subscription
start time, to calculate when the service period starts and ends.

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction.method` (string, required)
    Enum: "day-of-month"

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction.day` (integer, required)
    Day of the month in which the event occurs.
If the month has less days, the last day of the month is selected.

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction.time` (string)
    Extended ISO-8601 format of time.

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction.day` (string, required)
    Day of the week when the event occurs.
    Enum: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction.week` (string, required)
    Enum: "next", "first-in-month", "last-in-month"

  - `_embedded.subscription.recurringInterval.periodAnchorInstruction.month` (integer, required)
    Month of the year in which the event occurs.

  - `_embedded.subscription.autopay` (boolean)
    Specifies if payment attempts are made automatically.
If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`,
or the default payment instrument on the subscription.

  - `_embedded.subscription.startTime` (string | null)
    Date and time when the subscription starts.
If this value is `null`, the current time is used.
This value cannot be more than one service period in the past.
    Example: null

  - `_embedded.subscription.renewalTime` (string | null)
    Date and time when the subscription renews.

  - `_embedded.subscription.paymentInstrumentId` (string | null)
    ID of the payment instrument to use for autopay.
If this value is not provided, or if the payment instrument is inactive,
the customer's default payment instrument is used.
    Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N

  - `_embedded.subscription.websiteId` (string, required)
    ID of the website.
A website is where an organization obtains a customer.
For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
> **Note:** The ID of the website cannot be changed after creation.
    Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG

  - `_embedded.subscription.currency` (string)
    Currency code in ISO 4217 format.
    Example: USD

  - `_embedded.subscription.items` (array, required)
    Details of items in the order.

  - `_embedded.subscription.items.planId` (string)
    ID of the plan.
> **Note:** This field is deprecated. Use the `plan.id` field instead.
    Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X

  - `_embedded.subscription.items.quantity` (integer)
    Number of product units in the specified plan.

  - `_embedded.subscription.items.quantityFilled` (number)
    Number of filled product units.
    Example: 5.125

  - `_embedded.subscription.items.plan` (any, required)

  - `_embedded.subscription.items.plan.id` (string, required)
    Unique resource ID.
    Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21

  - `_embedded.subscription.items.plan.id` (string, required)
    ID of the plan.
    Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X

  - `_embedded.subscription.items.plan.name` (string, required)
    Name of the plan.
This name is displayed on invoices and receipts.

  - `_embedded.subscription.items.plan.description` (string)
    Plain-text description of the plan.
This field accepts plain-text only.

  - `_embedded.subscription.items.plan.richDescription` (string)
    Rich-text description of the plan.
This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.

  - `_embedded.subscription.items.plan.productId` (string, required)
    ID of the related product.
    Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ

  - `_embedded.subscription.items.plan.pricing` (object, required)
    Pricing details.

  - `_embedded.subscription.items.plan.pricing.formula` (string, required)
    Price formula that determines which algorithm is used to calculate the invoice price based on the following factors:
- Quantity in the order.
This value may be variable if you are charging based on usage.
If you are not charging based on usage,
this value is determined when an order is created.
- Price of the quantity range.
Some formulas set a price based on defined product quantity ranges.

For more information, see [Price formulas](https://www.rebilly.com/docs/billing/pricing-formulas/).
    Enum: "fixed-fee"

  - `_embedded.subscription.items.plan.pricing.price` (number, required)
    Use this formula to charge for subscriptions that have a fixed price,
number of units, and reoccur over a fixed period of time,
such as every: day, week, month, year, or number of years.
For example, a streaming company charges customers $13.99 each month for subscription period that is 6 months in duration.
The quantity of movies that a customer streams each month does not impact the price.
    Example: 99.95

  - `_embedded.subscription.items.plan.pricing.price` (number, required)
    Use this formula to charge a flat fee per unit.
For example, $0.10 for each transaction or $4 per unit.
If the value of this field is `0`, the product is free.
    Example: 99.95

  - `_embedded.subscription.items.plan.pricing.minQuantity` (integer | null)
    Minimum permitted unit quantity.
If this value is `null`, no limit is in place.
    Example: 1

  - `_embedded.subscription.items.plan.pricing.maxQuantity` (integer | null)
    Maximum permitted unit quantity.
If this value is `null`, no limit is in place.
    Example: 1

  - `_embedded.subscription.items.plan.pricing.brackets` (array, required)
    Use this formula to charge for units that are sold in specific quantity ranges.
For example, a bank charges a merchant based on the number of transactions they complete each month.
| Price total | Max quantity | Description |
|  --- | --- | --- |
| $50 | 1000 | Up to 1000 transactions |
| $100 | 1500 | Between 1000 and 1500 transactions |
| $200 | 3000 | Between 1500 and 3000 transactions |
| $500 | null | More than 3000 transactions |

- If the merchant completes 900 transaction in a month, they are charged $50.
- If the merchant completes 1001 transaction in a month, they are charged $100.
- If the merchant completes 2500  transaction in a month, they are charged $200.
- If the merchant completes more than 3000 transaction in a month, they are charged $500.

  - `_embedded.subscription.items.plan.pricing.brackets` (array, required)
    Use this formula to charge for units that are sold within defined quantity ranges, or tiers.
If a customer buys a number of units that span more than one tier,
the total cost is calculated based on the cost of the units in each tier.
For example, a software company sells user licenses based on the following:
| Tier | Price per user | Max quantity | Description |
|  --- | --- | --- | --- |
| 1 | $40 | 3 | 1 to 3 user licenses |
| 2 | $30 | 5 | 5 to 8 user licenses |
| 3 | $15 | null | 9 or more user licenses |

If a customer buys 10 user licenses, the pricing is as follows:
- 3 licenses at tier 1 (3 x $40) is 120
- 5 licenses at tier 2 (5 x $30) is 150
- 2 licenses at tier 3 (2 x $15) is 30

Total cost = $330
Formula: `(price for the tier x quantity within the tier)` + `(price for next tier x quantity in next tier)` + `...` = final price.

  - `_embedded.subscription.items.plan.pricing.brackets` (array, required)
    Use this formula to charge for units that are sold in bulk, or volume ranges.
This formula enables customers to pays less per unit when they buy a large volume of units.
Unit cost is based on the highest volume range, and does not include lower volume range pricing.
For example, a company sells t-shirts in the following volume ranges:
| Price per unit | Max quantity | Description |
|  --- | --- | --- |
| $10 | 1 | 1 t-shirt |
| $8 | 5 | 2 to 5 t-shirts |
| $4 | null | 6 or more t-shirts |

- If a customer buys 1 unit, they pay $10.
- If a customer buys 3 units, they pay $24 per unit, which is $8 per unit.
- If a customer buys 10 units, they pay $40, which is $4 per unit.

  - `_embedded.subscription.items.plan.setup` (object | null)
    Setup fee information for the plan.

  - `_embedded.subscription.items.plan.setup.price` (number, required)
    One-time setup fee charged when the plan starts.
Set to `0` if no setup fee applies.

  - `_embedded.subscription.items.plan.customFields` (object)
    Use custom fields to extend a resource scheme to include custom data that is not provided as a common field.
For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
    Example: {"foo":"bar"}

  - `_embedded.subscription.items.plan.isActive` (boolean)
    Specifies if the plan is active.

  - `_embedded.subscription.items.plan.recurringInterval` (object, required)
    Service interval settings.

  - `_embedded.subscription.items.plan.recurringInterval.unit` (string, required)
    Unit of time.
    Enum: "day", "week", "month", "year"

  - `_embedded.subscription.items.plan.recurringInterval.length` (integer, required)
    Length of time.

  - `_embedded.subscription.items.plan.recurringInterval.limit` (integer | null)
    Number of invoices the subscription order generates.
If this value is `1`, only the initial order creation is generated.
Example: For a 1 year contract that is billed monthly,
where the `periodUnit` is `month` and the `periodDuration` is `1`,
set this field to `12`.

  - `_embedded.subscription.items.plan.recurringInterval.billingTiming` (string)
    Billing timing in relation to the service period.
For `prepaid` plans the customer pays when the service period starts,
whereas, for `postpaid` plans, the customer pays when the service period ends.
    Enum: "prepaid", "postpaid"

  - `_embedded.subscription.items.plan.trial` (object | null)

  - `_embedded.subscription.items.plan.trial.price` (number, required)
    Price of setting up a trial.
If your service charges a fee for a trial, specify it here.
To charge no trial fee, set this value to `0`.

  - `_embedded.subscription.items.plan.trial.period` (object, required)
    Period information.

  - `_embedded.subscription.items.plan.trial.period.unit` (string, required)
    Unit of time.
    Enum: "day", "week", "month", "year"

  - `_embedded.subscription.items.plan.trial.period.length` (integer, required)
    Length of time.

  - `_embedded.subscription.items.plan.meteredBilling` (object | null)
    Use metered billing when an exact quantity is unknown.
Report usage during a service period and charge customers afterwards.
Metered billing plans must be postpaid.

  - `_embedded.subscription.items.plan.meteredBilling.strategy` (string, required)
    Enum: "sum", "last"

  - `_embedded.subscription.items.plan.meteredBilling.min` (number | null)
    Minimum quantity that is charged at the end of a service period regardless of reported usage.

  - `_embedded.subscription.items.plan.meteredBilling.max` (number | null)
    Maximum quantity that is charged at the end of a service period regardless of reported usage.

  - `_embedded.subscription.items.plan.meteredBilling.sticky` (boolean)
    When enabled, if no usage is reported during a service period,
the plan bills the last known reported quantity from a previous period instead of zero.
This is suitable for hosted or persistent resources whose usage does not change every period.
Only supported with `strategy`: `last`.
    Example: false

  - `_embedded.subscription.items.usageLimits` (any)

  - `_embedded.subscription.items.usageLimits.softLimit` (object)
    Defines thresholds for notification purposes.
For example, to notify the customer that their usage is near the hard limit of their metered billing plan.
This notification informs the customer so that they can upgrade their plan before the hard limit is reached.
When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is triggered.
To notify the customer, a webhook and notification can be configured for this event.
This field is useful for accounting and customer success purposes.
The usage of metered billing plans can still be reported if the soft limit is reached.

  - `_embedded.subscription.items.usageLimits.softLimit.quantity` (integer)
    Usage limit quantity.

  - `_embedded.subscription.items.usageLimits.softLimit.amount` (number)
    Usage limit amount in the currency of the order.

  - `_embedded.subscription.items.usageLimits.hardLimit` (object)
    Defines a limit where the customer can no longer use the service.
Hard limits are used in addition to soft limits.
When a soft limit is reached,
a customer may receive a notification
but the service can still be provided up to the hard limit value so that the customer can upgrade their plan.
When the reported usage reaches the configured limit,
a specific event is triggered.
To notify the customer in the merchant system,
or block a service,
a webhook and notification can be configured for this event.
When the total usage reaches the hard limit quantity,
or amount values,
metered billing plan usages can no longer be reported.

  - `_embedded.subscription.items.usageLimits.hardLimit.quantity` (integer)
    Usage limit quantity.

  - `_embedded.subscription.items.usageLimits.hardLimit.amount` (number)
    Usage limit amount in the currency of the order.

  - `_embedded.subscription.items.usageLimits.trialLimit` (any)
    Defines a usage cap during the trial period of a subscription.
This limit is enforced only while the subscription is in its trial phase.
When the reported usage reaches the configured trial limit, an event called 'trial-usage-limit-reached' is triggered.
To notify the customer or restrict access to the service, a webhook and notification can be configured for this event.
Once the trial limit is reached, additional usage cannot be reported unless the trial ends.
    Example: 20.725

  - `_embedded.subscription.items.usageStatus` (any)

  - `_embedded.subscription.items.usageStatus.isSoftLimitReached` (boolean)
    Specifies if the soft limit has been reached.
    Example: false

  - `_embedded.subscription.items.usageStatus.isHardLimitReached` (boolean)
    Specifies if the hard limit has been reached.
    Example: false

  - `_embedded.subscription.items.usageStatus.isTrialLimitReached` (boolean)
    Specifies if the trial limit has been reached.
    Example: false

  - `_embedded.subscription.items.excludeFromMrr` (boolean)
    Specifies if this item should be excluded from monthly recurring revenue calculations.

  - `_embedded.subscription.deliveryAddress` (any)
    Delivery address of the order.

  - `_embedded.subscription.deliveryAddress.firstName` (string | null)
    Contact's first name.
    Example: Benjamin

  - `_embedded.subscription.deliveryAddress.lastName` (string | null)
    Contact's last name.
    Example: Franklin

  - `_embedded.subscription.deliveryAddress.organization` (string | null)
    Contact's organization.
    Example: Rebilly

  - `_embedded.subscription.deliveryAddress.address` (string | null)
    First line of the contact's street address.
    Example: 36 Craven St

  - `_embedded.subscription.deliveryAddress.address2` (string | null)
    Second line of the contact's street address.

  - `_embedded.subscription.deliveryAddress.city` (string | null)
    Contact's city of residence.
    Example: Austin

  - `_embedded.subscription.deliveryAddress.region` (string | null)
    Contact's region of residence.
    Example: Texas

  - `_embedded.subscription.deliveryAddress.country` (string | null)
    Contact's country of residence in ISO 3166 alpha-2 country code.
For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
    Example: GB

  - `_embedded.subscription.deliveryAddress.postalCode` (string | null)
    Contact's postal code.
    Example: WC2N 5NF

  - `_embedded.subscription.deliveryAddress.phoneNumbers` (array)
    List of phone numbers associated with the contact.

  - `_embedded.subscription.deliveryAddress.phoneNumbers.label` (string, required)
    Phone number label or name.
    Example: main

  - `_embedded.subscription.deliveryAddress.phoneNumbers.value` (string, required)
    Phone number value.
    Example: 1-512-777-0269

  - `_embedded.subscription.deliveryAddress.phoneNumbers.primary` (boolean)
    Specifies if the phone number is the contact's primary phone number.
    Example: true

  - `_embedded.subscription.deliveryAddress.emails` (array)
    List of email addresses associated with the contact.

  - `_embedded.subscription.deliveryAddress.emails.label` (string, required)
    Email label or name.
    Example: main

  - `_embedded.subscription.deliveryAddress.emails.value` (string, required)
    Email address value.
    Example: rebilly@example.com

  - `_embedded.subscription.deliveryAddress.emails.primary` (boolean)
    Specifies if the email address is the contact's primary email address.
    Example: true

  - `_embedded.subscription.deliveryAddress.dob` (string | null)
    Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
    Example: 1980-04-01

  - `_embedded.subscription.deliveryAddress.jobTitle` (string | null)
    Contact's job title.
    Example: CEO

  - `_embedded.subscription.billingAddress` (any)
    Billing address of the order.

  - `_embedded.subscription.abandonTime` (string | null)
    Date and time when the pending order is automatically abandoned.
If this value is not passed during order creation,
a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.

  - `_embedded.subscription.delinquencyPeriod` (string | null)
    Length of time, in ISO-8601 durations format,
which is added to the due time of the order when setting the delinquency time for all related invoices.
When the delinquency time of an invoice is reached, the order is automatically canceled.
- If the `delinquencyPeriod` value is `null`, the order does not change state and remains active.
You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders.
- If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime).

If this value is not passed during order creation,
an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
    Example: P7D

  - `_embedded.subscription.couponIds` (array | null)
    List of coupons to redeem on the customer and restrict to this order.
For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
This parameter uses the following logic:
- If this parameter is not supplied, applied coupons are not changed.
- If an empty array is supplied, all applied coupon redemptions are canceled.
- If a list of coupons is supplied, unapplied coupons in the list are applied.
Coupons that have already been applied do not change state.
Applied coupons that are not supplied in list are canceled.

If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued.

  - `_embedded.subscription.poNumber` (string | null)
    Purchase order number displayed on the issued invoices.
    Example: PO123456

  - `_embedded.subscription.shipping` (object)
    Shipping settings.

  - `_embedded.subscription.shipping.amount` (number, required)
    Shipping amount.

  - `_embedded.subscription.shipping.calculator` (string, required)
    Shipping calculator.
    Enum: "manual"

  - `_embedded.subscription.shipping.rateId` (string | null)
    ID of the shipping rate.
If this value is not set,
the cheapest applicable shipping rate is used.
    Example: shipping-123-456

  - `_embedded.subscription.notes` (string)
    Notes for the customer displayed on the order invoice.

  - `_embedded.subscription.riskMetadata` (any)
    Risk metadata.
If this value is `null`, this field uses risk metadata that is captured when creating the payment token.

  - `_embedded.subscription.riskMetadata.ipAddress` (string | null)
    Customer's IP address.
    Example: 93.92.91.90

  - `_embedded.subscription.riskMetadata.fingerprint` (string | null)
    Customer's device fingerprint.
A device fingerprint is a unique token that is used to identify the customer.
The device fingerprint is generated based on device attributes, such as: hardware,
software, IP address, language, browser, and more.
    Example: pIUt3xbgX3l9g3YDiLbx

  - `_embedded.subscription.riskMetadata.httpHeaders` (any)

  - `_embedded.subscription.riskMetadata.browserData` (object | null)
    Browser data used for 3D Secure and risk scoring.

  - `_embedded.subscription.riskMetadata.browserData.colorDepth` (integer, required)
    Browser color depth in bits per pixel.
This value is obtained using the `screen.colorDepth` property.
    Example: 24

  - `_embedded.subscription.riskMetadata.browserData.isJavaEnabled` (boolean, required)
    Specifies if Java is enabled in a browser.
This value is obtained from the `navigator.javaEnabled` property.

  - `_embedded.subscription.riskMetadata.browserData.language` (string, required)
    Browser language settings.
This value is obtained from the `navigator.language` property.
    Example: en-US

  - `_embedded.subscription.riskMetadata.browserData.screenWidth` (integer, required)
    Width of the browser screen.
This value is obtained from the `screen.width` property.
    Example: 1920

  - `_embedded.subscription.riskMetadata.browserData.screenHeight` (integer, required)
    Height of the browser screen.
This value is obtained from the `screen.height` property.
    Example: 1080

  - `_embedded.subscription.riskMetadata.browserData.timeZoneOffset` (integer, required)
    Browser time zone offset in minutes from UTC.
A positive offset indicates that the local time is behind UTC.
A negative offset indicates that the local time is ahead of UTC.
You can find this value using the `(new Date()).getTimezoneOffset()` property.
    Example: 300

  - `_embedded.subscription.riskMetadata.browserData.isAdBlockEnabled` (boolean)
    Specifies if the usage of ad block has been detected in the browser.

  - `_embedded.subscription.riskMetadata.extraData` (object | null)
    Third-party data used for risk scoring.

  - `_embedded.subscription.riskMetadata.extraData.kountFraudSessionId` (string)
    Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
    Example: abcdefg12345abababab123456789012

  - `_embedded.subscription.riskMetadata.extraData.payPalMerchantSessionId` (string)
    PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
    Example: dd65ratxc5qv15iph3vyoq7l6davuowa

  - `_embedded.subscription.riskMetadata.extraData.threatMetrixSessionId` (string)
    Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
    Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa

  - `_embedded.subscription.orderType` (string, required)
    Specifies the type of order.
An order may be a subscription or a one-time purchase.
    Enum: "one-time-order"

  - `_embedded.subscription.websiteId` (string, required)
    ID of the website.
A website is where an organization obtains a customer.
For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
    Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG

  - `_links` (array)
    Links to related resources.

  - `_links.href` (string)
    URL of the link.

  - `_links.rel` (string)
    Relationship type of the link.
    Enum: "subscription"

