Exported resources
The table below provides an overview of the supported resources, the schema, and any notes on their sync behavior:
Resource | Sync Cadence | Notes | Schema |
---|---|---|---|
Credit ledger entry | Daily | Orb syncs all committed (i.e. non-pending) ledger entries. | This mirrors the schema returned by the Fetch credits ledger endpoint. |
Customer | Daily | Customer resource | This mirrors the schema returned by the Fetch customer endpoint. |
Daily Line Item Revenue | Daily | More information can be found below. | |
Invoice | Daily | Orb syncs invoices, except draft invoices which are filtered out. | This mirrors the schema returned by the Fetch invoice endpoint. |
Invoice Line Item Billing | Daily | More information can be found below. | |
Plan | Daily | Plan resource | This mirrors the schema returned by the Fetch plan endpoint. |
Subscription | Daily | Subscription resource | This mirrors the schema returned by the Fetch subscription endpoint. |
Subscription version | Daily | This captures the subscription schedule of a subscription, specifically allowing you to understand plan transitions. | A JSON object with the following keys: start_date , ended_at , plan , subscription_id subscription_start_date , subscription_ended_at |
Daily Line Item Revenue
Overview
The Daily Line Item Revenue resource can be used to track the daily quantity and associated costs for invoice line items. This resource will function similarly to the subscription costs endpoint, but with more fine grained access to information.
This information can be used to power use cases like:
- Daily revenue recognition workflows
- Running pricing exercises
As mentioned, this resource will track daily quantities, but will reflect intra-day plan changes where applicable. This means that rows may span time periods less than a day in cases where a plan changes. Values in the export are periodic values (as opposed to cumulative values) and only relevant to the applicable timeframe.
The Daily Line Item Revenue resource is conceptually an append only resource.
Entries in this table can be reverted.
For example, when a backdated operation occurs, this may result in old values changing.
When entries are reverted, they will have a corresponding timestamp in their reverted_at
field but will still exist in the table.
This means that historical queries can be constructed to understand what values were returned in the past.
The Daily Line Item Revenue resource relies on upstream processes running to calculate these values. Importantly, this processing relies on the grace period ending before it can run. This means that entries in this resource will be delayed. On average, we expect this delay to be approximately three days.
Schema
Field Name | Type | Description |
---|---|---|
customer_id | string | The ID of the customer. |
subscription_id | nullable string | The ID of the subscription. Note that a subscription ID may not always be present due to things like one-off invoices. |
pricing_currency | string | The currency of the underlying price. |
invoicing_currency | nullable string | The currency used for invoicing if it differs from the price’s currency. Today, this only occurs if you are using virtual pricing units. |
item_id | string | The ID of the item |
invoice_id | string | The ID of the invoice |
invoice_line_item_id | string | The ID of the invoice line item |
price_id | string | The ID of the price |
billable_metric_id | nullable string | The ID of the billable metric. Note that a billable metric ID may not be present if the associated price is not usage based. |
plan_id | nullable string | The ID of the plan. Note that it may not always be present due to things like one-off invoices. |
timeframe_start | timestamp | The inclusive timestamp for the start of the relevant period. Note that entries are scoped to day boundaries, but may start or end in the middle of the day if a plan change occurs. |
timeframe_end | timestamp | The exclusive timestamp for the end of the relevant period. Note that entries are scoped to day boundaries, but may start or end in the middle of the day if a plan change occurs. |
quantity | decimal | The price’s quantity for the relevant timeframe. |
subtotal | decimal | The list price before any adjustments have been applied. |
adjusted_subtotal | decimal | The list price after adjustments have been applied. Called the “total” in the subscription costs API. This has been renamed to avoid confusion. |
amount | decimal | The list price after: adjustments have been applied, prepaid credits have been applied, overage conversions have been applied, and partial invoice amounts have been applied. |
credits_applied | decimal | The number of credits used. |
conversion_rate | decimal | The conversion rate between the price currency and the invoicing currency. If they are the same, this is 1. |
adjustments | JSONB An array of dictionaries with: adjustment ID, adjustment type, amount, and price IDs. | The adjustments made to line items to account for maximums, minimums, and discounts. |
sub_line_items | nullable JSONB If this field is null, the number of sub-line items exceeds 100. This is differentiated from cases with no sub-line items, where the column will be empty JSON. | The serialized sub-line items from the invoice. This field can contain up to 100 sub-line items for a given line item. If the number of sub-line items exceeds 100, this field will not contain any sub-line items. |
is_partial_invoice | boolean | True if this line item was part of a Threshold invoice |
partially_invoiced_amount | nullable decimal | If this is from a threshold invoice, the amount that was partially invoiced. |
reverted_at | nullable timestamp | When this entry was reverted. Entries are reverted when backdated operations occur that change the amounts for a given invoice line item on a specified day. Entries are never deleted and are only marked as reverted to allow for historical tracking of values returned on a given day in the past. A row is valid in this table if reverted_at is null. |
Invoice Line Item Billing
Overview
The Invoice Line Item Billing resource can be used to track the individual line item values for invoices that have been issued / billed.
This information can be used to power use cases like:
- Calculating the precise amounts discounted per line item
- Breaking down the amounts billed for a specific price or billable metric
The Invoice Line Item Billing resource is conceptually an append only resource.
There are infrequent cases where entries can be voided (usually from a requested manual intervention).
If this has occurred, it will be reflected in the voided_at
column.
The Invoice Line Item Revenue resource relies on an invoice being issued before rows are written. Importantly, invoice issuing relies on the grace period ending before it can occur. This means that entries in this resource will be delayed.
Schema
Field Name | Type | Description |
---|---|---|
customer_id | string | The ID of the customer. |
subscription_id | nullable string | The ID of the subscription. Note that a subscription ID may not always be present due to things like one-off invoices. |
pricing_currency | string | The currency of the underlying price. |
invoicing_currency | nullable string | The currency used for invoicing if it differs from the price’s currency. Today, this only occurs if you are using virtual pricing units. |
item_id | string | The ID of the item |
invoice_id | string | The ID of the invoice |
invoice_line_item_id | string | The ID of the invoice line item |
price_id | string | The ID of the price |
billable_metric_id | nullable string | The ID of the billable metric. Note that a billable metric ID may not be present if the associated price is not usage based. |
plan_id | nullable string | The ID of the plan. Note that it may not always be present due to things like one-off invoices. |
timeframe_start | timestamp | The inclusive timestamp for the start of the relevant period. Note that entries are scoped to day boundaries, but may start or end in the middle of the day if a plan change occurs. |
timeframe_end | timestamp | The exclusive timestamp for the end of the relevant period. Note that entries are scoped to day boundaries, but may start or end in the middle of the day if a plan change occurs. |
quantity | decimal | The price’s quantity for the relevant timeframe. |
subtotal | decimal | The list price before any adjustments have been applied. |
adjusted_subtotal | decimal | The list price after adjustments have been applied. Called the “total” in the subscription costs API. This has been renamed to avoid confusion. |
amount | decimal | The list price after: adjustments have been applied, prepaid credits have been applied, overage conversions have been applied, and partial invoice amounts have been applied. |
credits_applied | decimal | The number of credits used. |
conversion_rate | decimal | The conversion rate between the price currency and the invoicing currency. If they are the same, this is 1. |
adjustments | JSONB An array of dictionaries with: adjustment ID, adjustment type, amount, and price IDs. | The adjustments made to line items to account for maximums, minimums, and discounts. |
sub_line_items | nullable JSONB If this field is null, the number of sub-line items exceeds 100. This is differentiated from cases with no sub-line items, where the column will be empty JSON. | The serialized sub-line items from the invoice. This field can contain up to 100 sub-line items for a given line item. If the number of sub-line items exceeds 100, this field will not contain any sub-line items. |
is_partial_invoice | boolean | True if this line item was part of a Threshold invoice |
partially_invoiced_amount | nullable decimal | If this is from a threshold invoice, the amount that was partially invoiced. |
voided_at | nullable timestamp | When this entry was voided. Entries are very infrequently voided and usually correspond to manual actions that have taken place at the request of the customer. |