# Omnichannel one time orders

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


Represents a one-time in-app product purchase from Apple App Store or Google Play Store, normalized into Chargebee's omnichannel model.

Omnichannel one-time orders are typically created when you [record a purchase](/docs/api/recorded_purchases/record-a-purchase) and may be updated via store notifications (for example, refunds). Unlike subscriptions, one-time order items do not carry a recurring `status` field; cancellation is expressed via item `cancelled_at` / `cancellation_reason`.

**Apple App Store**: Parent `id_at_source` is the **Transaction ID**. Nested `purchase_transaction.id_at_source` is the same Transaction ID for the purchase row.

**Google Play Store**: Parent `id_at_source` is the **purchase token**. Nested `purchase_transaction.id_at_source` is the **Order ID** (`GPA.…`).

See [omnichannel events](/docs/api/omnichannel_events) for recording and cancel mappings, and [`omnichannel_transaction`](/docs/api/omnichannel_transactions) for price / `transacted_at` guidance.

**Note:** This resource specifically represents in-app product purchases made via the Apple App Store and Google Play Store.

## Sample Omnichannel one time order

```json
{
  "id": "__test_oto_HmbXw88UrgaSKYa",
  "app_id": "__test_gp_app_Hmdm904Upz2fet9",
  "customer_id": "1mLtfx5Urfuna02JE",
  "id_at_source": "bhggcokdffngjojmihfobjke",
  "origin": "US",
  "source": "google_play_store",
  "created_at": 1753191402,
  "resource_version": 1753191402443,
  "object": "omnichannel_one_time_order",
  "omnichannel_one_time_order_items": [
    {
      "id": "__test_otoi_HmbXw88UrgaSKab",
      "item_id_at_source": "coin",
      "quantity": 1,
      "resource_version": 1753191402445,
      "object": "omnichannel_one_time_order_item"
    },
    {..}
  ],
  "purchase_transaction": {
    "id": "__test_ot_HmbXw88UrgaSKGZ",
    "id_at_source": "GPA.3346-4067-5254-30096",
    "app_id": "__test_gp_app_Hmdm904Upz2fet9",
    "price_currency": "USD",
    "price_units": 5,
    "price_nanos": 0,
    "type": "purchase",
    "transacted_at": 1753191346,
    "created_at": 1753191402,
    "resource_version": 1753191402000,
    "object": "omnichannel_transaction"
  }
}
```

## Omnichannel one time orders attributes

## Input Parameters

- `id` (required, string, max chars=40)
  The ID generated by Chargebee for the recorded one-time order.

- `app_id` (required, string, max chars=100)
  App Identifier in Chargebee. This is the handle created by Chargebee for your app. To get the `app_id`:
  
  -   For **Apple**, follow [these steps](https://www.chargebee.com/docs/billing/2.0/mobile-subscriptions/omnichannel-app-store#create-an-omnichannel-subscription-for-in-app-purchases).
  -   For **Google**, follow [these steps](https://www.chargebee.com/docs/billing/2.0/mobile-subscriptions/omnichannel-play-store#connect-google-app-to-chargebee-to-generate-unique-app-id-and-notifications-url).

- `customer_id` (optional, string, max chars=100)
  The `id` of the [customer](/docs/api/customers/customer-object#id) object that is associated with this one-time order.

- `id_at_source` (required, string, max chars=500)
  The store-native identifier for this one-time order.
  
  **Apple App Store**: The App Store **Transaction ID** for the purchase (same value as `purchase_transaction.id_at_source` for the initial purchase row).
  
  **Google Play Store**: The Google Play **purchase token** for the one-time product purchase — not the **Order ID**. The Order ID (`GPA.…`) is on `purchase_transaction.id_at_source`.

- `origin` (optional, string, max chars=3)
  Country code indicating where the one-time order originated, such as `US` for the United States.

- `source` (required, enumerated string)
  The storefront where the one-time order was originally made and managed (`apple_app_store` or `google_play_store`).
  Possible enum values:
    - `apple_app_store`
      The source of the app is `apple_app_store`.
    - `google_play_store`
      The source of the app is `google_play_store`.

- `created_at` (required, timestamp(UTC) in seconds)
  Timestamp when the `omnichannel_one_time_order` was created in Chargebee.

- `resource_version` (optional, long)
  Version number of this resource. The `resource_version` is updated with a new timestamp in milliseconds for every change made to the resource. This attribute will be present only if the resource has been updated after 2016-09-28.

- `omnichannel_one_time_order_items` (required, list of omnichannel_one_time_order_item)
  List of `omnichannel_one_time_order_item` objects in the one-time order.

- `purchase_transaction` (optional, omnichannel_transaction)
  Details of the purchase transaction associated with the one-time order.

## Omnichannel one time order item attributes

## Input Parameters

- `id` (required, string, max chars=40)
  Uniquely identifies an `omnichannel_one_time_order_item`.

- `item_id_at_source` (required, string, max chars=100)
  Product identifier of the purchased item in the source store.
  
  **Apple App Store**: App Store Connect product identifier (consumable, non-consumable, or non-renewing subscription product).
  
  **Google Play Store**: Google Play in-app product ID for the one-time product.

- `item_type_at_source` (optional, string, max chars=100)
  Product type as reported by the source store.
  
  **Apple App Store**: Typically values such as consumable, non-consumable, or non-renewing subscription product types from App Store Connect / StoreKit.
  
  **Google Play Store**: Typically the Google Play one-time product / in-app product type context.

- `quantity` (optional, integer)
  The quantity of the omnichannel order item(s) purchased by the customer.

- `cancelled_at` (optional, timestamp(UTC) in seconds)
  Timestamp when this specific `omnichannel_one_time_order_item` was cancelled in the `source`.

- `cancellation_reason` (optional, enumerated string)
  The reason this `omnichannel_one_time_order_item` was cancelled (for example, refunded or revoked).
  Possible enum values:
    - `customer_cancelled`
      The customer cancelled / requested refund of the one-time purchase where the store reports a customer-initiated context.
    - `customer_did_not_consent_to_price_increase`
      Not typically applicable to one-time orders; reserved for parity with subscription cancellation reasons.
    - `refunded_due_to_app_issue`
      The one-time purchase was refunded due to an app issue.
      
      **Apple App Store**: Commonly set for refund notifications with an app-issue refund reason.
      
      **Google Play Store**: Not typically used for this reason code.
    - `refunded_for_other_reason`
      The one-time purchase was refunded for another reason.
      
      **Apple App Store**: Commonly set for refund notifications with a non-app-issue refund reason.
      
      **Google Play Store**: Not typically used for this reason code.
    - `merchant_revoked`
      The merchant revoked the one-time purchase / access.
      
      **Google Play Store**: Commonly used for voided / revoked purchases.
      
      **Apple App Store**: Can apply when access is revoked.

- `created_at` (required, timestamp(UTC) in seconds)
  Timestamp when the `omnichannel_one_time_order_item` was created in Chargebee.

- `resource_version` (optional, long)
  Version number of this resource. The `resource_version` is updated with a new timestamp in milliseconds for every change made to the resource. This attribute will be present only if the resource has been updated after 2016-09-28.

## Purchase transaction attributes

## Input Parameters

- `id` (required, string, max chars=40)
  Unique identifier for the `omnichannel_transaction`.

- `id_at_source` (required, string, max chars=100)
  The store-native identifier for this transaction.
  
  **Apple App Store**: **Transaction ID** for this purchase.
  
  **Google Play Store**: **Order ID** for this purchase (typically `GPA.…`). This is not the parent one-time order purchase token (`omnichannel_one_time_order.id_at_source`).

- `app_id` (required, string, max chars=100)
  App Identifier in Chargebee. This is the handle created by Chargebee for your app. To get the `app_id`:
  
  -   For **Apple**, follow [these steps](https://www.chargebee.com/docs/billing/2.0/mobile-subscriptions/omnichannel-app-store#create-an-omnichannel-subscription-for-in-app-purchases).
  -   For **Google**, follow [these steps](https://www.chargebee.com/docs/billing/2.0/mobile-subscriptions/omnichannel-play-store#connect-google-app-to-chargebee-to-generate-unique-app-id-and-notifications-url).

- `price_currency` (optional, string, max chars=3)
  The three-letter ISO 4217 currency code associated with the transaction (`price_currency`), when price data is available.

- `price_units` (optional, long)
  The whole units of the amount, when price data is available. For example: if `price_currency` is **USD** (two-decimal currency), then the unit value for **USD** **1.23** will be **1** if `price_currency` is **JPY** (zero-decimal currency), then the unit value for **JPY** **123** will be **123** if `price_currency` is **BHD** (three-decimal currency), then the unit value for **BHD** **1.234** will be **1**

- `price_nanos` (optional, long)
  The fractional price amount, in nanos (billionths of the currency unit), when price data is available. The value must be between **0** and **+999,999,999** inclusive. For example: If `price_currency` is **USD** (two-decimal currency), then nanos value for **USD** **1.23** will be **230,000,000** If `price_currency` is **JPY** (zero-decimal currency), then nanos value for **JPY** **123** will be **0** If `price_currency` is **BHD** (three-decimal currency), then nanos value for **BHD** **1.234** will be **234,000,000**
  
  **Apple App Store**: Typically present.
  
  **Google Play Store**: May be present when Google provides price data for the transaction; otherwise absent.

- `type` (required, enumerated string)
  The type of transaction that occurred in the `source`.
  Possible enum values:
    - `purchase`
      Indicates that the transaction occurred for a purchase.
    - `renewal`
      Indicates that the transaction was initiated as part of a renewal for a previously completed purchase. Not used for one-time orders.

- `transacted_at` (optional, timestamp(UTC) in seconds)
  Timestamp when the transaction occurred in the `source`, when available.
  
  **Apple App Store**: Typically present.
  
  **Google Play Store**: May be present when Google provides purchase time; otherwise absent.

- `created_at` (required, timestamp(UTC) in seconds)
  Timestamp when the transaction was created in Chargebee.

- `resource_version` (optional, long)
  Version number of this resource. The `resource_version` is updated with a new timestamp in milliseconds for every change made to the resource. This attribute will be present only if the resource has been updated after 2016-09-28.

- `linked_omnichannel_subscriptions` (optional, list of linked_omnichannel_subscription)
  A list of `omnichannel_subscription` objects linked to this transaction.
  - `omnichannel_subscription_id` (optional, string, max chars=100)
    The `id` of a linked [`omnichannel_subscription`](/docs/api/omnichannel_subscriptions/omnichannel_subscription-object#id).

- `linked_omnichannel_one_time_orders` (optional, list of linked_omnichannel_one_time_order)
  A list of `omnichannel_one_time_order` objects linked to this transaction.
  - `omnichannel_one_time_order_id` (optional, string, max chars=100)
    The `id` of a linked [`omnichannel_one_time_order`](/docs/api/omnichannel_one_time_orders/omnichannel_one_time_order-object#id).

