-
Notifications
You must be signed in to change notification settings - Fork 48
DOCS-3667: Document annual billing feature for subscription billing model #4447
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
promptless
wants to merge
20
commits into
main
Choose a base branch
from
DOCS-3667
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
20 commits
Select commit
Hold shift + click to select a range
5563efc
Documentation updates from Promptless
promptless[bot] ae4e377
Simplify
npentrel 45c8e06
update hash
npentrel 3b4f57a
Update based on feedback
npentrel 4860934
Update docs/manage/manage/white-labelled-billing.md
npentrel 4d71402
Update docs/manage/manage/white-labelled-billing.md
npentrel 49875dd
Apply suggestions from code review
npentrel 574f609
Update docs/manage/manage/white-labelled-billing.md
npentrel 74950e8
Update docs/manage/manage/white-labelled-billing.md
npentrel c1342d3
Update docs/manage/manage/white-labelled-billing.md
npentrel f86b231
Update static/include/app/apis/generated/billing.md
npentrel 21acf95
Update static/include/app/apis/overrides/protos/billing.GetCurrentMon…
npentrel 68b7fa3
Update docs/manage/manage/white-labelled-billing.md
npentrel b2e5792
Update docs/manage/manage/white-labelled-billing.md
npentrel d2a3ffb
Update docs/manage/manage/white-labelled-billing.md
npentrel bf37135
Update docs/manage/manage/white-labelled-billing.md
npentrel 867ebf1
Update docs/manage/manage/white-labelled-billing.md
npentrel 02b4bd9
Update docs/manage/manage/white-labelled-billing.md
npentrel 81e17b9
Update docs/manage/manage/white-labelled-billing.md
npentrel 61c3d1f
Merge branch 'main' into DOCS-3667
npentrel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -100,33 +100,19 @@ https://app.viam.com/billing/<public-namespace>?id=<org-id> | |
|
||
## Set custom pricing | ||
|
||
To use custom billing, add a billing configuration the fragment you use for your machine configurations. | ||
To use custom billing, add a billing configuration to a fragment. | ||
|
||
1. Navigate to the **FLEET** page. | ||
1. Go to the [**FRAGMENTS** tab](https://app.viam.com/fragments). | ||
1. Select the fragment you use for your machines. | ||
1. Click **+** and add **Billing** | ||
1. Adjust attributes as needed. | ||
1. Mark the fragment as public or unlisted. | ||
1. Save the fragment. | ||
edobranov marked this conversation as resolved.
Show resolved
Hide resolved
|
||
1. Add the fragment to the machines that you want to bill for. | ||
|
||
{{< tabs >}} | ||
{{% tab name="Example" %}} | ||
|
||
```json { class="line-numbers linkable-line-numbers" } | ||
{ | ||
"components": { ... }, | ||
"services" : { ... }, | ||
"billing": { | ||
"cost_per_month": { | ||
"per_machine": 10 | ||
}, | ||
"tier_name": "not-free" | ||
} | ||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{% tab name="Full Template" %}} | ||
{{% tab name="Full Template (monthly)" %}} | ||
|
||
```json | ||
{ | ||
|
@@ -146,7 +132,62 @@ To use custom billing, add a billing configuration the fragment you use for your | |
}, | ||
"tier_name": "example-tier", | ||
"description": "", | ||
"tier_credit": 0.0 | ||
"tier_credit": 0.0, | ||
"in_arrears": true | ||
} | ||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{% tab name="Full Template (yearly)" %}} | ||
|
||
```json | ||
{ | ||
"billing": { | ||
"cost_per_year": { | ||
"per_machine": 0 | ||
}, | ||
"tier_name": "example-tier", | ||
"description": "", | ||
"tier_credit": 0.0, | ||
"in_arrears": false | ||
} | ||
} | ||
``` | ||
|
||
{{% /tab %}} | ||
{{% tab name="Example (monthly)" %}} | ||
|
||
This configuration charges customers every month in arrears, which means after usage: | ||
|
||
```json { class="line-numbers linkable-line-numbers" } | ||
{ | ||
"billing": { | ||
"cost_per_month": { | ||
"per_machine": 10, | ||
"binary_data_upload_bytes": 0.01 | ||
}, | ||
"tier_name": "monthly-tier", | ||
"in_arrears": true | ||
} | ||
} | ||
``` | ||
|
||
By setting `"in_arrears": false` you can change the configuration to charge customers upfront. | ||
|
||
{{% /tab %}} | ||
{{% tab name="Example (yearly)" %}} | ||
|
||
This configuration charges customers every 12 months, with upfront payment: | ||
|
||
```json { class="line-numbers linkable-line-numbers" } | ||
{ | ||
"billing": { | ||
"cost_per_year": { | ||
"per_machine": 100 | ||
}, | ||
"tier_name": "annual-tier", | ||
"in_arrears": false | ||
} | ||
} | ||
``` | ||
|
@@ -159,11 +200,12 @@ To use custom billing, add a billing configuration the fragment you use for your | |
<!-- prettier-ignore --> | ||
| Name | Type | Required? | Description | | ||
| ---- | ---- | --------- | ----------- | | ||
| `cost_per_month` | object | Optional | See [cost per month attributes](/manage/manage/white-labelled-billing/#click-to-view-cost-per-month-attributes). Default: `{}` (all machines cost `0`). | | ||
| `cost_per_year` | object | Optional | See [cost per year attributes](/manage/manage/white-labelled-billing/#click-to-view-cost-per-year-attributes). Default: `{}` (all machines cost `0`). | | ||
| `cost_per_month` | object | Optional | See [cost per month attributes](/manage/manage/white-labelled-billing/#click-to-view-cost-per-month-attributes). If specified, you cannot also specify `cost_per_year`. Default: `{}` (all machines cost `0`). | | ||
| `cost_per_year` | object | Optional | See [cost per year attributes](/manage/manage/white-labelled-billing/#click-to-view-cost-per-year-attributes). If specified, you cannot also specify `cost_per_month`. Default: `{}` (all machines cost `0`). | | ||
| `tier_name` | string | **Required** | The name of the billing tier. | | ||
| `description` | | Optional | Description for the billing tier. Default: `""`. | | ||
| `description` | string | Optional | Description for the billing tier. Default: `""`. | | ||
| `tier_credit` | number | Optional | Credit that should be applied to final total for the org. Default: `0`. | | ||
| `in_arrears` | boolean | Optional | Whether billing is charged in arrears (after usage) or upfront. For monthly billing, set to `true` for billing after usage and `false` for upfront billing. If set to `false` you can only set the `per_machine` attribute in `cost_per_month`. For annual billing, `in_arrears` must be set to `false`. Default: `false`. | | ||
|
||
{{% /expand%}} | ||
|
||
|
@@ -204,3 +246,26 @@ Payments for white-labeled billing go directly to Viam. To arrange reimbursement | |
### Can I customize the billing page further? | ||
|
||
If you need further customization, please [contact us](mailto:[email protected]). | ||
|
||
### How does renewal work? | ||
|
||
Renewal is automatic for upfront annual billing and for upfront monthly billing. | ||
For monthly billing after usage, if there is no usage, there is no charge. | ||
If the `per_machine` field is set, then a machine existing, is considered usage. | ||
|
||
### When are invoices generated? | ||
edobranov marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
- **Monthly billing (`in_arrears: true`)**: Invoices are generated on the first day of the month and customers are charged at the end of each month for the per machine cost and usage during that month. | ||
For example, if you set up a machine on June 20, you'll get an invoice on July 1 for 10 days of usage. Then you'll get the next invoice on August 1 for the usage in July. | ||
- **Monthly billing (`in_arrears: false`)**: Invoices are generated shortly after the billing fragment is added to the machine and customers are charged at the beginning of each new month of usage for the per machine cost. | ||
For example, if you set up a monthly upfront machine on June 20, you'll get an invoice shortly after on the same day. | ||
Then you'll get the next invoice on July 20, then August 20, and so on. | ||
- **Annual billing (`in_arrears: false`)**: Invoices are generated shortly after the billing fragment is added to the machine and customers are charged at the beginning of each new year of usage for the per machine cost. | ||
For example, if you set up an annual upfront machine on June 20, you'll get an invoice shortly after on the same day. | ||
Then you'll get the next invoice on June 20 the following year. | ||
|
||
### Can customers switch between monthly and annual billing? | ||
|
||
Yes. However, switching billing fragments will result in the new charge immediately taking effect. | ||
We recommend that you wait until the end of the current billing cycle to remove the old billing | ||
fragment and assign the new billing fragment. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 changes: 2 additions & 1 deletion
3
static/include/app/apis/overrides/protos/billing.GetCurrentMonthUsage.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
Access data usage information for the current month for a given organization. | ||
Access data usage information for the current billing period for a given organization. | ||
This method only returns usage for organizations with monthly billing at the end of the month (`"in_arrears": true`). | ||
You can also find your usage data on the [**Payment and billing** page](/manage/reference/billing/). |
3 changes: 2 additions & 1 deletion
3
static/include/app/apis/overrides/protos/billing.GetInvoicesSummary.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
Access total outstanding balance plus invoice summaries for a given org. | ||
Access total outstanding balance plus invoice summaries for a given organization. | ||
This includes both monthly and annual invoices depending on the organization's billing configuration. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.