Time Machine is a simulation feature which imitates the key characteristics, behaviours and functions of the billing configurations. It is a virtual time travelling tool which facilitates the integration testing process by carrying out subscription renewals, dunning, webhooks etc on a hypothetical time frame.
You can use Time Machine in the test site to verify if the billing rules configured in your site adhere to your expectations before executing them in real time. This feature can be used in both API and UI versions.
View this doc for more details.
Note: In order to use Time Machine via API , you need to first "enable" the Time Travel option which is available under Settings > Configure Chargebee > Time Machine.
Sample time machine [ JSON ]
{
"destination_time": 1585065021,
"genesis_time": 1585065021,
"name": "delorean",
"object": "time_machine",
"time_travel_status": "succeeded"
}
API Index URL GET
https://{site}.chargebee.com/api/v2/time_machines
string, default=delorean, max chars=50 The name of the time machine. Currently only delorean is allowed
enumerated string, default=not_enabled The current status of time travel Possible values are
not_enabledTime travel has not been enabled for the sitein_progressTime travel is in progresssucceededTime travel has succeeded.failedTime travel has failed. Check the failure code and failure reason attributes for further details.
Note: The time machine needs to be reset by starting afresh again.
Show all values[+]
timestamp(UTC) in seconds The start time of the time machine. Specified when 'starting afresh'
timestamp(UTC) in seconds The destination time to which the time machine is travelling (or has traveled)
optional, string, max chars=250 The failure code. This will follow the api error code convention
optional, string, max chars=250 The more descriptive failure reason.
optional, string, max chars=1000 The failure details as error json.
This is a list of the event types we currently support. We will continue
to add more events moving forward. All events follow a uniform pattern -
<resource>_<event_name>. The resources that will be
present in the event content are provided beneath each event type's
description.
Note: If consolidated invoicing is enabled, the
attributes invoice.subscription_id and
credit_note.subscription_id should not be used
(as it will not be present if the invoice / credit note has lines from
multiple subscriptions). Instead to know the related subscriptions,
their line_items' subscription_id attribute should be referred.
string, default=delorean, max chars=50 The name of the time machine. Currently only delorean is allowed
enumerated string, default=not_enabled The current status of time travel Possible values are
not_enabledTime travel has not been enabled for the sitein_progressTime travel is in progresssucceededTime travel has succeeded.failedTime travel has failed. Check the failure code and failure reason attributes for further details.
Note: The time machine needs to be reset by starting afresh again.
Show all values[+]
timestamp(UTC) in seconds The start time of the time machine. Specified when 'starting afresh'
timestamp(UTC) in seconds The destination time to which the time machine is travelling (or has traveled)
optional, string, max chars=250 The failure code. This will follow the api error code convention
optional, string, max chars=250 The more descriptive failure reason.
optional, string, max chars=1000 The failure details as error json. Retrieves the time machine. Currently only one time machine is available per site and is named 'delorean'.
This API is not enabled for live sites by default. Please contact
support to get this enabled.
Sample Response [ JSON ]
Show more...
{
"time_machine": {
"destination_time": 1585065021,
"genesis_time": 1585065021,
"name": "delorean",
"object": "time_machine",
"time_travel_status": "succeeded"
}
}
URL Format
GET
https://{site}.chargebee.com/api/v2/time_machines/{time-machine-name}
always returned required
Resource object representing time_machine
Sample admin console URL
https://{site}.chargebee.com/admin-console/time_machines/123x
Restart the time machine. This will clear the "customer" data like customer details, subscriptions, invoices, transactions. Also a time travel is initiated to travel back to specified genesis time.
Note: This API call is asynchronous. You need to check if the "start afresh" operation has completed by checking if the time travel status is successful by retrieving the time machine in a loop with a minimum delay of 3 secs between two retrieve requests. In case you are using any of the client libraries, use the wait for time travel completion function provided as a instance method in the library. Use method waitForTimeTravelCompletion() on the returned time_machine resource which will block until the time travel completes. Use method waitForTimeTravelCompletion() on the returned time_machine resource which will block until the time travel completes. Use method wait_for_time_travel_completion on the returned time_machine resource which will block until the time travel completes. Use method wait_for_time_travel_completion on the returned time_machine resource which will block until the time travel completes. Use method WaitForTimeTravelCompletion on the returned time_machine resource which will block until the time travel completes. Use method wait_for_time_travel_completion on the returned time_machine resource which will block until the time travel completes. Use method waitForTimeTravelCompletion on the returned time_machine resource which will block until the time travel completes. Use method wait_for_time_travel_completion on the returned time_machine resource which will block until the time travel completes.
This API is not enabled for live sites by default. Please contact
support to get this enabled.
Sample Response [ JSON ]
Show more...
{
"time_machine": {
"destination_time": 1585066228,
"genesis_time": 1585066228,
"name": "delorean",
"object": "time_machine",
"time_travel_status": "in_progress"
}
}
URL Format
POST
https://{site}.chargebee.com/api/v2/time_machines/{time-machine-name}/start_afresh
optional, timestamp(UTC) in seconds The genesis time to travel back as part of the reset operation. If not provided, then the travel is set to 6 months in the past.
Note: Can only be in the past.
always returned required
Resource object representing time_machine
Sample admin console URL
https://{site}.chargebee.com/admin-console/time_machines/123x
Travel forward in time. This operation is asynchronous. You need to check if the "start afresh" operation has completed by checking if the time travel status is successful by retrieving the time machine in a loop with a minimum delay of 3 secs between two retrieve requests. Use method waitForTimeTravelCompletion() on the returned time_machine resource which will block until the time travel completes.
This API is not enabled for live sites by default. Please contact
support to get this enabled.
Sample Response [ JSON ]
Show more...
{
"time_machine": {
"destination_time": 1586274640,
"genesis_time": 1585066234,
"name": "delorean",
"object": "time_machine",
"time_travel_status": "in_progress"
}
}
URL Format
POST
https://{site}.chargebee.com/api/v2/time_machines/{time-machine-name}/travel_forward
optional, timestamp(UTC) in seconds The time to travel to. Should be between the 'current' destination time of the time machine and present time.
always returned required
Resource object representing time_machine
Sample admin console URL
https://{site}.chargebee.com/admin-console/time_machines/123x