Skip to content
  • Auto
  • Light
  • Dark
Talk to an expert

Edit

Edit a contract
v2.contracts.edit(**kwargs) -> dataIDContractEditResponse
post/v2/contracts/edit

Edit a contract. Contract editing must be enabled to use this endpoint.

Parameters
contract_idString

ID of the contract being edited

formatuuid
customer_idString

ID of the customer whose contract is being edited

formatuuid
add_commitsarray
optional
Array[{ product_id, type, access_schedule, 15 more}]
Hide ParametersShow Parameters
product_idString
formatuuid
typeunion
:PREPAID | :POSTPAID
Hide ParametersShow Parameters
:PREPAID
:POSTPAID
access_scheduleobject
optional
{ schedule_items, credit_type_id}

Required: Schedule for distributing the commit to the customer. For "POSTPAID" commits only one schedule item is allowed and amount must match invoice_schedule total.

Hide ParametersShow Parameters
schedule_itemsarray
Array[{ amount, ending_before, starting_at}]
Hide ParametersShow Parameters
amountFloat
ending_beforeTime

RFC 3339 timestamp (exclusive)

formatdate-time
starting_atTime

RFC 3339 timestamp (inclusive)

formatdate-time
credit_type_idString
optional
formatuuid
amountFloat
optional

(DEPRECATED) Use access_schedule and invoice_schedule instead.

applicable_product_idsarray
optional
Array[String]

Which products the commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

applicable_product_tagsarray
optional
Array[String]

Which tags the commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

custom_fieldshash
optional
Hash[Symbol, String]
descriptionString
optional

Used only in UI/API. It is not exposed to end customers.

hierarchy_configurationobject
optional
{ child_access}

Optional configuration for commit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
{ type} | { type} | { contract_ids, type}
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllclass
Hide ParametersShow Parameters
typeunion
:ALL
Hide ParametersShow Parameters
:ALL
CommitHierarchyChildAccessNoneclass
Hide ParametersShow Parameters
typeunion
:NONE
Hide ParametersShow Parameters
:NONE
CommitHierarchyChildAccessContractIDsclass
Hide ParametersShow Parameters
contract_idsarray
Array[String]
typeunion
:CONTRACT_IDS
Hide ParametersShow Parameters
:CONTRACT_IDS
invoice_scheduleobject
optional
{ credit_type_id, do_not_invoice, recurring_schedule, schedule_items}

Required for "POSTPAID" commits: the true up invoice will be generated at this time and only one schedule item is allowed; the total must match access_schedule amount. Optional for "PREPAID" commits: if not provided, this will be a "complimentary" commit with no invoice.

Hide ParametersShow Parameters
credit_type_idString
optional

Defaults to USD (cents) if not passed.

formatuuid
do_not_invoicebool
optional

This field is only applicable to commit invoice schedules. If true, this schedule will not generate an invoice.

recurring_scheduleobject
optional
{ amount_distribution, ending_before, frequency, 4 more}

Enter the unit price and quantity for the charge or instead only send the amount. If amount is sent, the unit price is assumed to be the amount and quantity is inferred to be 1.

Hide ParametersShow Parameters
amount_distributionunion
:DIVIDED | :DIVIDED_ROUNDED | :EACH
Hide ParametersShow Parameters
:DIVIDED
:DIVIDED_ROUNDED
:EACH
ending_beforeTime

RFC 3339 timestamp (exclusive).

formatdate-time
frequencyunion
:MONTHLY | :QUARTERLY | :SEMI_ANNUAL | 2 more
Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:SEMI_ANNUAL
:ANNUAL
:WEEKLY
starting_atTime

RFC 3339 timestamp (inclusive).

formatdate-time
amountFloat
optional

Amount for the charge. Can be provided instead of unit_price and quantity. If amount is sent, the unit_price is assumed to be the amount and quantity is inferred to be 1.

quantityFloat
optional

Quantity for the charge. Will be multiplied by unit_price to determine the amount and must be specified with unit_price. If specified amount cannot be provided.

unit_priceFloat
optional

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified with quantity. If specified amount cannot be provided.

schedule_itemsarray
optional
Array[{ timestamp, amount, quantity, unit_price}]

Either provide amount or provide both unit_price and quantity.

Hide ParametersShow Parameters
timestampTime

timestamp of the scheduled event

formatdate-time
amountFloat
optional

Amount for the charge. Can be provided instead of unit_price and quantity. If amount is sent, the unit_price is assumed to be the amount and quantity is inferred to be 1.

quantityFloat
optional

Quantity for the charge. Will be multiplied by unit_price to determine the amount and must be specified with unit_price. If specified amount cannot be provided.

unit_priceFloat
optional

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified with quantity. If specified amount cannot be provided.

nameString
optional

displayed on invoices

minLength1
netsuite_sales_order_idString
optional

This field's availability is dependent on your client's configuration.

payment_gate_configobject
optional
{ payment_gate_type, precalculated_tax_config, stripe_config, tax_type}

optionally payment gate this commit

Hide ParametersShow Parameters
payment_gate_typeunion
:NONE | :STRIPE | :EXTERNAL

Gate access to the commit balance based on successful collection of payment. Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to facilitate payment using your own payment integration. Select NONE if you do not wish to payment gate the commit balance.

Hide ParametersShow Parameters
:NONE
:STRIPE
:EXTERNAL
precalculated_tax_configobject
optional
{ tax_amount, tax_name}

Only applicable if using PRECALCULATED as your tax type.

Hide ParametersShow Parameters
tax_amountFloat

Amount of tax to be applied. This should be in the same currency and denomination as the commit's invoice schedule

tax_nameString
optional

Name of the tax to be applied. This may be used in an invoice line item description.

stripe_configobject
optional
{ payment_type, invoice_metadata}

Only applicable if using STRIPE as your payment gateway type.

Hide ParametersShow Parameters
payment_typeunion
:INVOICE | :PAYMENT_INTENT

If left blank, will default to INVOICE

Hide ParametersShow Parameters
:INVOICE
:PAYMENT_INTENT
invoice_metadatahash
optional
Hash[Symbol, String]

Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as your payment type.

tax_typeunion
optional
:NONE | :STRIPE | :ANROK | :PRECALCULATED

Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.

Hide ParametersShow Parameters
:NONE
:STRIPE
:ANROK
:PRECALCULATED
priorityFloat
optional

If multiple commits are applicable, the one with the lower priority will apply first.

rate_typeunion
optional
:COMMIT_RATE | :LIST_RATE
Hide ParametersShow Parameters
:COMMIT_RATE
:LIST_RATE
rollover_fractionFloat
optional

Fraction of unused segments that will be rolled over. Must be between 0 and 1.

specifiersarray
optional
Array[{ presentation_group_values, pricing_group_values, product_id, product_tags}]

List of filters that determine what kind of customer usage draws down a commit or credit. A customer's usage needs to meet the condition of at least one of the specifiers to contribute to a commit's or credit's drawdown. This field cannot be used together with applicable_product_ids or applicable_product_tags. Instead, to target usage by product or product tag, pass those values in the body of specifiers.

Hide ParametersShow Parameters
presentation_group_valueshash
optional
Hash[Symbol, String]
pricing_group_valueshash
optional
Hash[Symbol, String]
product_idString
optional

If provided, the specifier will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the specifier will only apply to products with all the specified tags.

temporary_idString
optional

A temporary ID for the commit that can be used to reference the commit for commit specific overrides.

add_creditsarray
optional
Array[{ access_schedule, product_id, applicable_product_ids, 9 more}]
Hide ParametersShow Parameters
access_scheduleobject
{ schedule_items, credit_type_id}

Schedule for distributing the credit to the customer.

Hide ParametersShow Parameters
schedule_itemsarray
Array[{ amount, ending_before, starting_at}]
Hide ParametersShow Parameters
amountFloat
ending_beforeTime

RFC 3339 timestamp (exclusive)

formatdate-time
starting_atTime

RFC 3339 timestamp (inclusive)

formatdate-time
credit_type_idString
optional
formatuuid
product_idString
formatuuid
applicable_product_idsarray
optional
Array[String]

Which products the credit applies to. If both applicable_product_ids and applicable_product_tags are not provided, the credit applies to all products.

applicable_product_tagsarray
optional
Array[String]

Which tags the credit applies to. If both applicable_product_ids and applicable_product_tags are not provided, the credit applies to all products.

custom_fieldshash
optional
Hash[Symbol, String]
descriptionString
optional

Used only in UI/API. It is not exposed to end customers.

hierarchy_configurationobject
optional
{ child_access}

Optional configuration for credit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
{ type} | { type} | { contract_ids, type}
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllclass
Hide ParametersShow Parameters
typeunion
:ALL
Hide ParametersShow Parameters
:ALL
CommitHierarchyChildAccessNoneclass
Hide ParametersShow Parameters
typeunion
:NONE
Hide ParametersShow Parameters
:NONE
CommitHierarchyChildAccessContractIDsclass
Hide ParametersShow Parameters
contract_idsarray
Array[String]
typeunion
:CONTRACT_IDS
Hide ParametersShow Parameters
:CONTRACT_IDS
nameString
optional

displayed on invoices

minLength1
netsuite_sales_order_idString
optional

This field's availability is dependent on your client's configuration.

priorityFloat
optional

If multiple credits are applicable, the one with the lower priority will apply first.

rate_typeunion
optional
:COMMIT_RATE | :LIST_RATE
Hide ParametersShow Parameters
:COMMIT_RATE
:LIST_RATE
specifiersarray
optional
Array[{ presentation_group_values, pricing_group_values, product_id, product_tags}]

List of filters that determine what kind of customer usage draws down a commit or credit. A customer's usage needs to meet the condition of at least one of the specifiers to contribute to a commit's or credit's drawdown. This field cannot be used together with applicable_product_ids or applicable_product_tags. Instead, to target usage by product or product tag, pass those values in the body of specifiers.

Hide ParametersShow Parameters
presentation_group_valueshash
optional
Hash[Symbol, String]
pricing_group_valueshash
optional
Hash[Symbol, String]
product_idString
optional

If provided, the specifier will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the specifier will only apply to products with all the specified tags.

add_discountsarray
optional
Array[{ product_id, schedule, custom_fields, 2 more}]
Hide ParametersShow Parameters
product_idString
formatuuid
scheduleobject
{ credit_type_id, do_not_invoice, recurring_schedule, schedule_items}

Must provide either schedule_items or recurring_schedule.

Hide ParametersShow Parameters
credit_type_idString
optional

Defaults to USD (cents) if not passed.

formatuuid
do_not_invoicebool
optional

This field is only applicable to commit invoice schedules. If true, this schedule will not generate an invoice.

recurring_scheduleobject
optional
{ amount_distribution, ending_before, frequency, 4 more}

Enter the unit price and quantity for the charge or instead only send the amount. If amount is sent, the unit price is assumed to be the amount and quantity is inferred to be 1.

Hide ParametersShow Parameters
amount_distributionunion
:DIVIDED | :DIVIDED_ROUNDED | :EACH
Hide ParametersShow Parameters
:DIVIDED
:DIVIDED_ROUNDED
:EACH
ending_beforeTime

RFC 3339 timestamp (exclusive).

formatdate-time
frequencyunion
:MONTHLY | :QUARTERLY | :SEMI_ANNUAL | 2 more
Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:SEMI_ANNUAL
:ANNUAL
:WEEKLY
starting_atTime

RFC 3339 timestamp (inclusive).

formatdate-time
amountFloat
optional

Amount for the charge. Can be provided instead of unit_price and quantity. If amount is sent, the unit_price is assumed to be the amount and quantity is inferred to be 1.

quantityFloat
optional

Quantity for the charge. Will be multiplied by unit_price to determine the amount and must be specified with unit_price. If specified amount cannot be provided.

unit_priceFloat
optional

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified with quantity. If specified amount cannot be provided.

schedule_itemsarray
optional
Array[{ timestamp, amount, quantity, unit_price}]

Either provide amount or provide both unit_price and quantity.

Hide ParametersShow Parameters
timestampTime

timestamp of the scheduled event

formatdate-time
amountFloat
optional

Amount for the charge. Can be provided instead of unit_price and quantity. If amount is sent, the unit_price is assumed to be the amount and quantity is inferred to be 1.

quantityFloat
optional

Quantity for the charge. Will be multiplied by unit_price to determine the amount and must be specified with unit_price. If specified amount cannot be provided.

unit_priceFloat
optional

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified with quantity. If specified amount cannot be provided.

custom_fieldshash
optional
Hash[Symbol, String]
nameString
optional

displayed on invoices

minLength1
netsuite_sales_order_idString
optional

This field's availability is dependent on your client's configuration.

add_overridesarray
optional
Array[{ starting_at, applicable_product_tags, ending_before, 10 more}]
Hide ParametersShow Parameters
starting_atTime

RFC 3339 timestamp indicating when the override will start applying (inclusive)

formatdate-time
applicable_product_tagsarray
optional
Array[String]

tags identifying products whose rates are being overridden

ending_beforeTime
optional

RFC 3339 timestamp indicating when the override will stop applying (exclusive)

formatdate-time
entitledbool
optional
is_commit_specificbool
optional

Indicates whether the override should only apply to commits. Defaults to false. If true, you can specify relevant commits in override_specifiers by passing commit_ids.

multiplierFloat
optional

Required for MULTIPLIER type. Must be >=0.

override_specifiersarray
optional
Array[{ billing_frequency, commit_ids, presentation_group_values, 5 more}]

Cannot be used in conjunction with product_id or applicable_product_tags. If provided, the override will apply to all products with the specified specifiers.

Hide ParametersShow Parameters
billing_frequencyunion
optional
:MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:ANNUAL
:WEEKLY
commit_idsarray
optional
Array[String]

If provided, the override will only apply to the specified commits. Can only be used for commit specific overrides. If not provided, the override will apply to all commits.

presentation_group_valueshash
optional
Hash[Symbol, String]

A map of group names to values. The override will only apply to line items with the specified presentation group values. Can only be used for multiplier overrides.

pricing_group_valueshash
optional
Hash[Symbol, String]

A map of pricing group names to values. The override will only apply to products with the specified pricing group values.

product_idString
optional

If provided, the override will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the override will only apply to products with all the specified tags.

recurring_commit_idsarray
optional
Array[String]

Can only be used for commit specific overrides. Must be used in conjunction with one of product_id, product_tags, pricing_group_values, or presentation_group_values. If provided, the override will only apply to commits created by the specified recurring commit ids.

recurring_credit_idsarray
optional
Array[String]

Can only be used for commit specific overrides. Must be used in conjunction with one of product_id, product_tags, pricing_group_values, or presentation_group_values. If provided, the override will only apply to commits created by the specified recurring credit ids.

overwrite_rateobject
optional
{ rate_type, credit_type_id, custom_rate, 4 more}

Required for OVERWRITE type.

Hide ParametersShow Parameters
rate_typeunion
:FLAT | :PERCENTAGE | :SUBSCRIPTION | 2 more
Hide ParametersShow Parameters
:FLAT
:PERCENTAGE
:SUBSCRIPTION
:TIERED
:CUSTOM
credit_type_idString
optional
formatuuid
custom_ratehash
optional
Hash[Symbol, untyped]

Only set for CUSTOM rate_type. This field is interpreted by custom rate processors.

is_proratedbool
optional

Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be set to true.

priceFloat
optional

Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.

quantityFloat
optional

Default quantity. For SUBSCRIPTION rate_type, this must be >=0.

tiersarray
optional
Array[priceFloatsizeFloatTier]

Only set for TIERED rate_type.

Hide ParametersShow Parameters
priceFloat
sizeFloat
optional
priorityFloat
optional

Required for EXPLICIT multiplier prioritization scheme and all TIERED overrides. Under EXPLICIT prioritization, overwrites are prioritized first, and then tiered and multiplier overrides are prioritized by their priority value (lowest first). Must be > 0.

product_idString
optional

ID of the product whose rate is being overridden

formatuuid
targetunion
optional
:COMMIT_RATE | :LIST_RATE

Indicates whether the override applies to commit rates or list rates. Can only be used for overrides that have is_commit_specific set to true. Defaults to "LIST_RATE".

Hide ParametersShow Parameters
:COMMIT_RATE
:LIST_RATE
tiersarray
optional
Array[{ multiplier, size}]

Required for TIERED type. Must have at least one tier.

Hide ParametersShow Parameters
multiplierFloat
sizeFloat
optional
typeunion
optional
:OVERWRITE | :MULTIPLIER | :TIERED

Overwrites are prioritized over multipliers and tiered overrides.

Hide ParametersShow Parameters
:OVERWRITE
:MULTIPLIER
:TIERED
add_prepaid_balance_threshold_configurationobject
optional
{ commit, is_enabled, payment_gate_config, 3 more}
Hide ParametersShow Parameters
commitobject
{ product_id, applicable_product_ids, applicable_product_tags, 3 more}
Hide ParametersShow Parameters
product_idString

The commit product that will be used to generate the line item for commit payment.

applicable_product_idsarray
optional
Array[String]

Which products the threshold commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

applicable_product_tagsarray
optional
Array[String]

Which tags the threshold commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

descriptionString
optional
nameString
optional

Specify the name of the line item for the threshold charge. If left blank, it will default to the commit product name.

specifiersarray
optional
Array[{ presentation_group_values, pricing_group_values, product_id, product_tags}]

List of filters that determine what kind of customer usage draws down a commit or credit. A customer's usage needs to meet the condition of at least one of the specifiers to contribute to a commit's or credit's drawdown. This field cannot be used together with applicable_product_ids or applicable_product_tags. Instead, to target usage by product or product tag, pass those values in the body of specifiers.

Hide ParametersShow Parameters
presentation_group_valueshash
optional
Hash[Symbol, String]
pricing_group_valueshash
optional
Hash[Symbol, String]
product_idString
optional

If provided, the specifier will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the specifier will only apply to products with all the specified tags.

is_enabledbool

When set to false, the contract will not be evaluated against the threshold_amount. Toggling to true will result an immediate evaluation, regardless of prior state.

payment_gate_configobject
{ payment_gate_type, precalculated_tax_config, stripe_config, tax_type}
Hide ParametersShow Parameters
payment_gate_typeunion
:NONE | :STRIPE | :EXTERNAL

Gate access to the commit balance based on successful collection of payment. Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to facilitate payment using your own payment integration. Select NONE if you do not wish to payment gate the commit balance.

Hide ParametersShow Parameters
:NONE
:STRIPE
:EXTERNAL
precalculated_tax_configobject
optional
{ tax_amount, tax_name}

Only applicable if using PRECALCULATED as your tax type.

Hide ParametersShow Parameters
tax_amountFloat

Amount of tax to be applied. This should be in the same currency and denomination as the commit's invoice schedule

tax_nameString
optional

Name of the tax to be applied. This may be used in an invoice line item description.

stripe_configobject
optional
{ payment_type, invoice_metadata}

Only applicable if using STRIPE as your payment gateway type.

Hide ParametersShow Parameters
payment_typeunion
:INVOICE | :PAYMENT_INTENT

If left blank, will default to INVOICE

Hide ParametersShow Parameters
:INVOICE
:PAYMENT_INTENT
invoice_metadatahash
optional
Hash[Symbol, String]

Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as your payment type.

tax_typeunion
optional
:NONE | :STRIPE | :ANROK | :PRECALCULATED

Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.

Hide ParametersShow Parameters
:NONE
:STRIPE
:ANROK
:PRECALCULATED
recharge_to_amountFloat

Specify the amount the balance should be recharged to.

threshold_amountFloat

Specify the threshold amount for the contract. Each time the contract's balance lowers to this amount, a threshold charge will be initiated.

custom_credit_type_idString
optional

If provided, the threshold, recharge-to amount, and the resulting threshold commit amount will be in terms of this credit type instead of the fiat currency.

formatuuid
add_professional_servicesarray
optional
Array[{ max_amount, product_id, quantity, 4 more}]

This field's availability is dependent on your client's configuration.

Hide ParametersShow Parameters
max_amountFloat

Maximum amount for the term.

product_idString
formatuuid
quantityFloat

Quantity for the charge. Will be multiplied by unit_price to determine the amount.

unit_priceFloat

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified.

custom_fieldshash
optional
Hash[Symbol, String]
descriptionString
optional
netsuite_sales_order_idString
optional

This field's availability is dependent on your client's configuration.

add_recurring_commitsarray
optional
Array[{ access_amount, commit_duration, priority, 17 more}]
Hide ParametersShow Parameters
access_amountobject
{ credit_type_id, unit_price, quantity}

The amount of commit to grant.

Hide ParametersShow Parameters
credit_type_idString
formatuuid
unit_priceFloat
quantityFloat
optional

This field is required unless a subscription is attached via subscription_config.

commit_durationobject
{ value, unit}

Defines the length of the access schedule for each created commit/credit. The value represents the number of units. Unit defaults to "PERIODS", where the length of a period is determined by the recurrence_frequency.

Hide ParametersShow Parameters
valueFloat
unitunion
optional
:PERIODS
Hide ParametersShow Parameters
:PERIODS
priorityFloat

Will be passed down to the individual commits

product_idString
formatuuid
starting_atTime

determines the start time for the first commit

formatdate-time
applicable_product_idsarray
optional
Array[String]

Will be passed down to the individual commits

applicable_product_tagsarray
optional
Array[String]

Will be passed down to the individual commits

descriptionString
optional

Will be passed down to the individual commits

ending_beforeTime
optional

Determines when the contract will stop creating recurring commits. optional

formatdate-time
hierarchy_configurationobject
optional
{ child_access}

Optional configuration for recurring credit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
{ type} | { type} | { contract_ids, type}
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllclass
Hide ParametersShow Parameters
typeunion
:ALL
Hide ParametersShow Parameters
:ALL
CommitHierarchyChildAccessNoneclass
Hide ParametersShow Parameters
typeunion
:NONE
Hide ParametersShow Parameters
:NONE
CommitHierarchyChildAccessContractIDsclass
Hide ParametersShow Parameters
contract_idsarray
Array[String]
typeunion
:CONTRACT_IDS
Hide ParametersShow Parameters
:CONTRACT_IDS
invoice_amountobject
optional
{ credit_type_id, quantity, unit_price}

The amount the customer should be billed for the commit. Not required.

Hide ParametersShow Parameters
credit_type_idString
formatuuid
quantityFloat
unit_priceFloat
nameString
optional

displayed on invoices. will be passed through to the individual commits

minLength1
netsuite_sales_order_idString
optional

Will be passed down to the individual commits

prorationunion
optional
:NONE | :FIRST | :LAST | :FIRST_AND_LAST

Determines whether the first and last commit will be prorated. If not provided, the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).

Hide ParametersShow Parameters
:NONE
:FIRST
:LAST
:FIRST_AND_LAST
rate_typeunion
optional
:COMMIT_RATE | :LIST_RATE

Whether the created commits will use the commit rate or list rate

Hide ParametersShow Parameters
:COMMIT_RATE
:LIST_RATE
recurrence_frequencyunion
optional
:MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY

The frequency at which the recurring commits will be created. If not provided: - The commits will be created on the usage invoice frequency. If provided: - The period defined in the duration will correspond to this frequency. - Commits will be created aligned with the recurring commit's starting_at rather than the usage invoice dates.

Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:ANNUAL
:WEEKLY
rollover_fractionFloat
optional

Will be passed down to the individual commits. This controls how much of an individual unexpired commit will roll over upon contract transition. Must be between 0 and 1.

specifiersarray
optional
Array[{ presentation_group_values, pricing_group_values, product_id, product_tags}]

List of filters that determine what kind of customer usage draws down a commit or credit. A customer's usage needs to meet the condition of at least one of the specifiers to contribute to a commit's or credit's drawdown. This field cannot be used together with applicable_product_ids or applicable_product_tags. Instead, to target usage by product or product tag, pass those values in the body of specifiers.

Hide ParametersShow Parameters
presentation_group_valueshash
optional
Hash[Symbol, String]
pricing_group_valueshash
optional
Hash[Symbol, String]
product_idString
optional

If provided, the specifier will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the specifier will only apply to products with all the specified tags.

subscription_configobject
optional
{ apply_seat_increase_config, subscription_id, allocation}

Attach a subscription to the recurring commit/credit.

Hide ParametersShow Parameters
apply_seat_increase_configobject
{ is_prorated}
Hide ParametersShow Parameters
is_proratedbool

Indicates whether a mid-period seat increase should be prorated.

subscription_idString

ID of the subscription to configure on the recurring commit/credit.

allocationunion
optional
:POOLED

If set to POOLED, allocation added per seat is pooled across the account.

Hide ParametersShow Parameters
:POOLED
temporary_idString
optional

A temporary ID that can be used to reference the recurring commit for commit specific overrides.

add_recurring_creditsarray
optional
Array[{ access_amount, commit_duration, priority, 16 more}]
Hide ParametersShow Parameters
access_amountobject
{ credit_type_id, unit_price, quantity}

The amount of commit to grant.

Hide ParametersShow Parameters
credit_type_idString
formatuuid
unit_priceFloat
quantityFloat
optional

This field is required unless a subscription is attached via subscription_config.

commit_durationobject
{ value, unit}

Defines the length of the access schedule for each created commit/credit. The value represents the number of units. Unit defaults to "PERIODS", where the length of a period is determined by the recurrence_frequency.

Hide ParametersShow Parameters
valueFloat
unitunion
optional
:PERIODS
Hide ParametersShow Parameters
:PERIODS
priorityFloat

Will be passed down to the individual commits

product_idString
formatuuid
starting_atTime

determines the start time for the first commit

formatdate-time
applicable_product_idsarray
optional
Array[String]

Will be passed down to the individual commits

applicable_product_tagsarray
optional
Array[String]

Will be passed down to the individual commits

descriptionString
optional

Will be passed down to the individual commits

ending_beforeTime
optional

Determines when the contract will stop creating recurring commits. optional

formatdate-time
hierarchy_configurationobject
optional
{ child_access}

Optional configuration for recurring credit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
{ type} | { type} | { contract_ids, type}
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllclass
Hide ParametersShow Parameters
typeunion
:ALL
Hide ParametersShow Parameters
:ALL
CommitHierarchyChildAccessNoneclass
Hide ParametersShow Parameters
typeunion
:NONE
Hide ParametersShow Parameters
:NONE
CommitHierarchyChildAccessContractIDsclass
Hide ParametersShow Parameters
contract_idsarray
Array[String]
typeunion
:CONTRACT_IDS
Hide ParametersShow Parameters
:CONTRACT_IDS
nameString
optional

displayed on invoices. will be passed through to the individual commits

minLength1
netsuite_sales_order_idString
optional

Will be passed down to the individual commits

prorationunion
optional
:NONE | :FIRST | :LAST | :FIRST_AND_LAST

Determines whether the first and last commit will be prorated. If not provided, the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).

Hide ParametersShow Parameters
:NONE
:FIRST
:LAST
:FIRST_AND_LAST
rate_typeunion
optional
:COMMIT_RATE | :LIST_RATE

Whether the created commits will use the commit rate or list rate

Hide ParametersShow Parameters
:COMMIT_RATE
:LIST_RATE
recurrence_frequencyunion
optional
:MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY

The frequency at which the recurring commits will be created. If not provided: - The commits will be created on the usage invoice frequency. If provided: - The period defined in the duration will correspond to this frequency. - Commits will be created aligned with the recurring commit's starting_at rather than the usage invoice dates.

Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:ANNUAL
:WEEKLY
rollover_fractionFloat
optional

Will be passed down to the individual commits. This controls how much of an individual unexpired commit will roll over upon contract transition. Must be between 0 and 1.

specifiersarray
optional
Array[{ presentation_group_values, pricing_group_values, product_id, product_tags}]

List of filters that determine what kind of customer usage draws down a commit or credit. A customer's usage needs to meet the condition of at least one of the specifiers to contribute to a commit's or credit's drawdown. This field cannot be used together with applicable_product_ids or applicable_product_tags. Instead, to target usage by product or product tag, pass those values in the body of specifiers.

Hide ParametersShow Parameters
presentation_group_valueshash
optional
Hash[Symbol, String]
pricing_group_valueshash
optional
Hash[Symbol, String]
product_idString
optional

If provided, the specifier will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the specifier will only apply to products with all the specified tags.

subscription_configobject
optional
{ apply_seat_increase_config, subscription_id, allocation}

Attach a subscription to the recurring commit/credit.

Hide ParametersShow Parameters
apply_seat_increase_configobject
{ is_prorated}
Hide ParametersShow Parameters
is_proratedbool

Indicates whether a mid-period seat increase should be prorated.

subscription_idString

ID of the subscription to configure on the recurring commit/credit.

allocationunion
optional
:POOLED

If set to POOLED, allocation added per seat is pooled across the account.

Hide ParametersShow Parameters
:POOLED
temporary_idString
optional

A temporary ID that can be used to reference the recurring commit for commit specific overrides.

add_reseller_royaltiesarray
optional
Array[{ reseller_type, applicable_product_ids, applicable_product_tags, 7 more}]
Hide ParametersShow Parameters
reseller_typeunion
:AWS | :AWS_PRO_SERVICE | :GCP | :GCP_PRO_SERVICE
Hide ParametersShow Parameters
:AWS
:AWS_PRO_SERVICE
:GCP
:GCP_PRO_SERVICE
applicable_product_idsarray
optional
Array[String]

Must provide at least one of applicable_product_ids or applicable_product_tags.

applicable_product_tagsarray
optional
Array[String]

Must provide at least one of applicable_product_ids or applicable_product_tags.

aws_optionsobject
optional
{ aws_account_number, aws_offer_id, aws_payer_reference_id}
Hide ParametersShow Parameters
aws_account_numberString
optional
aws_offer_idString
optional
aws_payer_reference_idString
optional
ending_beforeTime
optional

Use null to indicate that the existing end timestamp should be removed.

formatdate-time
fractionFloat
optional
gcp_optionsobject
optional
{ gcp_account_id, gcp_offer_id}
Hide ParametersShow Parameters
gcp_account_idString
optional
gcp_offer_idString
optional
netsuite_reseller_idString
optional
reseller_contract_valueFloat
optional
starting_atTime
optional
formatdate-time
add_scheduled_chargesarray
optional
Array[{ product_id, schedule, name, netsuite_sales_order_id}]
Hide ParametersShow Parameters
product_idString
formatuuid
scheduleobject
{ credit_type_id, do_not_invoice, recurring_schedule, schedule_items}

Must provide either schedule_items or recurring_schedule.

Hide ParametersShow Parameters
credit_type_idString
optional

Defaults to USD (cents) if not passed.

formatuuid
do_not_invoicebool
optional

This field is only applicable to commit invoice schedules. If true, this schedule will not generate an invoice.

recurring_scheduleobject
optional
{ amount_distribution, ending_before, frequency, 4 more}

Enter the unit price and quantity for the charge or instead only send the amount. If amount is sent, the unit price is assumed to be the amount and quantity is inferred to be 1.

Hide ParametersShow Parameters
amount_distributionunion
:DIVIDED | :DIVIDED_ROUNDED | :EACH
Hide ParametersShow Parameters
:DIVIDED
:DIVIDED_ROUNDED
:EACH
ending_beforeTime

RFC 3339 timestamp (exclusive).

formatdate-time
frequencyunion
:MONTHLY | :QUARTERLY | :SEMI_ANNUAL | 2 more
Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:SEMI_ANNUAL
:ANNUAL
:WEEKLY
starting_atTime

RFC 3339 timestamp (inclusive).

formatdate-time
amountFloat
optional

Amount for the charge. Can be provided instead of unit_price and quantity. If amount is sent, the unit_price is assumed to be the amount and quantity is inferred to be 1.

quantityFloat
optional

Quantity for the charge. Will be multiplied by unit_price to determine the amount and must be specified with unit_price. If specified amount cannot be provided.

unit_priceFloat
optional

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified with quantity. If specified amount cannot be provided.

schedule_itemsarray
optional
Array[{ timestamp, amount, quantity, unit_price}]

Either provide amount or provide both unit_price and quantity.

Hide ParametersShow Parameters
timestampTime

timestamp of the scheduled event

formatdate-time
amountFloat
optional

Amount for the charge. Can be provided instead of unit_price and quantity. If amount is sent, the unit_price is assumed to be the amount and quantity is inferred to be 1.

quantityFloat
optional

Quantity for the charge. Will be multiplied by unit_price to determine the amount and must be specified with unit_price. If specified amount cannot be provided.

unit_priceFloat
optional

Unit price for the charge. Will be multiplied by quantity to determine the amount and must be specified with quantity. If specified amount cannot be provided.

nameString
optional

displayed on invoices

minLength1
netsuite_sales_order_idString
optional

This field's availability is dependent on your client's configuration.

add_spend_threshold_configurationobject
optional
{ commit, is_enabled, payment_gate_config, threshold_amount}
Hide ParametersShow Parameters
commitobject
{ product_id, description, name}
Hide ParametersShow Parameters
product_idString

The commit product that will be used to generate the line item for commit payment.

descriptionString
optional
nameString
optional

Specify the name of the line item for the threshold charge. If left blank, it will default to the commit product name.

is_enabledbool

When set to false, the contract will not be evaluated against the threshold_amount. Toggling to true will result an immediate evaluation, regardless of prior state.

payment_gate_configobject
{ payment_gate_type, precalculated_tax_config, stripe_config, tax_type}
Hide ParametersShow Parameters
payment_gate_typeunion
:NONE | :STRIPE | :EXTERNAL

Gate access to the commit balance based on successful collection of payment. Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to facilitate payment using your own payment integration. Select NONE if you do not wish to payment gate the commit balance.

Hide ParametersShow Parameters
:NONE
:STRIPE
:EXTERNAL
precalculated_tax_configobject
optional
{ tax_amount, tax_name}

Only applicable if using PRECALCULATED as your tax type.

Hide ParametersShow Parameters
tax_amountFloat

Amount of tax to be applied. This should be in the same currency and denomination as the commit's invoice schedule

tax_nameString
optional

Name of the tax to be applied. This may be used in an invoice line item description.

stripe_configobject
optional
{ payment_type, invoice_metadata}

Only applicable if using STRIPE as your payment gateway type.

Hide ParametersShow Parameters
payment_typeunion
:INVOICE | :PAYMENT_INTENT

If left blank, will default to INVOICE

Hide ParametersShow Parameters
:INVOICE
:PAYMENT_INTENT
invoice_metadatahash
optional
Hash[Symbol, String]

Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as your payment type.

tax_typeunion
optional
:NONE | :STRIPE | :ANROK | :PRECALCULATED

Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.

Hide ParametersShow Parameters
:NONE
:STRIPE
:ANROK
:PRECALCULATED
threshold_amountFloat

Specify the threshold amount for the contract. Each time the contract's usage hits this amount, a threshold charge will be initiated.

add_subscriptionsarray
optional
Array[{ collection_schedule, initial_quantity, proration, 7 more}]

Optional list of subscriptions to add to the contract.

Hide ParametersShow Parameters
collection_scheduleunion
:ADVANCE | :ARREARS
Hide ParametersShow Parameters
:ADVANCE
:ARREARS
initial_quantityFloat
prorationobject
{ invoice_behavior, is_prorated}
Hide ParametersShow Parameters
invoice_behaviorunion
optional
:BILL_IMMEDIATELY | :BILL_ON_NEXT_COLLECTION_DATE

Indicates how mid-period quantity adjustments are invoiced. BILL_IMMEDIATELY: Only available when collection schedule is ADVANCE. The quantity increase will be billed immediately on the scheduled date. BILL_ON_NEXT_COLLECTION_DATE: The quantity increase will be billed for in-arrears at the end of the period.

Hide ParametersShow Parameters
:BILL_IMMEDIATELY
:BILL_ON_NEXT_COLLECTION_DATE
is_proratedbool
optional

Indicates if the partial period will be prorated or charged a full amount.

subscription_rateobject
{ billing_frequency, product_id}
Hide ParametersShow Parameters
billing_frequencyunion
:MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY

Frequency to bill subscription with. Together with product_id, must match existing rate on the rate card.

Hide ParametersShow Parameters
:MONTHLY
:QUARTERLY
:ANNUAL
:WEEKLY
product_idString

Must be subscription type product

formatuuid
custom_fieldshash
optional
Hash[Symbol, String]
descriptionString
optional
ending_beforeTime
optional

Exclusive end time for the subscription. If not provided, subscription inherits contract end date.

formatdate-time
nameString
optional
starting_atTime
optional

Inclusive start time for the subscription. If not provided, defaults to contract start date

formatdate-time
temporary_idString
optional

A temporary ID used to reference the subscription in recurring commit/credit subscription configs created within the same payload.

allow_contract_ending_before_finalized_invoicebool
optional

If true, allows setting the contract end date earlier than the end_timestamp of existing finalized invoices. Finalized invoices will be unchanged; if you want to incorporate the new end date, you can void and regenerate finalized usage invoices. Defaults to true.

archive_commitsarray
optional
Array[{ id}]

IDs of commits to archive

Hide ParametersShow Parameters
idString
formatuuid
archive_creditsarray
optional
Array[{ id}]

IDs of credits to archive

Hide ParametersShow Parameters
idString
formatuuid
archive_scheduled_chargesarray
optional
Array[{ id}]

IDs of scheduled charges to archive

Hide ParametersShow Parameters
idString
formatuuid
remove_overridesarray
optional
Array[{ id}]

IDs of overrides to remove

Hide ParametersShow Parameters
idString
formatuuid
update_commitsarray
optional
Array[{ commit_id, access_schedule, applicable_product_ids, 7 more}]
Hide ParametersShow Parameters
commit_idString
formatuuid
access_scheduleobject
optional
{ add_schedule_items, remove_schedule_items, update_schedule_items}
Hide ParametersShow Parameters
add_schedule_itemsarray
optional
Array[{ amount, ending_before, starting_at}]
Hide ParametersShow Parameters
amountFloat
ending_beforeTime
formatdate-time
starting_atTime
formatdate-time
remove_schedule_itemsarray
optional
Array[{ id}]
Hide ParametersShow Parameters
idString
formatuuid
update_schedule_itemsarray
optional
Array[{ id, amount, ending_before, starting_at}]
Hide ParametersShow Parameters
idString
formatuuid
amountFloat
optional
ending_beforeTime
optional
formatdate-time
starting_atTime
optional
formatdate-time
applicable_product_idsarray
optional
Array[String]

Which products the commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

applicable_product_tagsarray
optional
Array[String]

Which tags the commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

hierarchy_configurationobject
optional
{ child_access}

Optional configuration for commit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
{ type} | { type} | { contract_ids, type}
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllclass
Hide ParametersShow Parameters
typeunion
:ALL
Hide ParametersShow Parameters
:ALL
CommitHierarchyChildAccessNoneclass
Hide ParametersShow Parameters
typeunion
:NONE
Hide ParametersShow Parameters
:NONE
CommitHierarchyChildAccessContractIDsclass
Hide ParametersShow Parameters
contract_idsarray
Array[String]
typeunion
:CONTRACT_IDS
Hide ParametersShow Parameters
:CONTRACT_IDS
invoice_scheduleobject
optional
{ add_schedule_items, remove_schedule_items, update_schedule_items}
Hide ParametersShow Parameters
add_schedule_itemsarray
optional
Array[{ timestamp, amount, quantity, unit_price}]
Hide ParametersShow Parameters
timestampTime
formatdate-time
amountFloat
optional
quantityFloat
optional
unit_priceFloat
optional
remove_schedule_itemsarray
optional
Array[{ id}]
Hide ParametersShow Parameters
idString
formatuuid
update_schedule_itemsarray
optional
Array[{ id, amount, quantity, 2 more}]
Hide ParametersShow Parameters
idString
formatuuid
amountFloat
optional
quantityFloat
optional
timestampTime
optional
formatdate-time
unit_priceFloat
optional
netsuite_sales_order_idString
optional
priorityFloat
optional
product_idString
optional
formatuuid
rollover_fractionFloat
optional
update_contract_end_dateTime
optional

RFC 3339 timestamp indicating when the contract will end (exclusive).

formatdate-time
update_contract_nameString
optional

Value to update the contract name to. If not provided, the contract name will remain unchanged.

update_creditsarray
optional
Array[{ credit_id, access_schedule, applicable_product_ids, 5 more}]
Hide ParametersShow Parameters
credit_idString
formatuuid
access_scheduleobject
optional
{ add_schedule_items, remove_schedule_items, update_schedule_items}
Hide ParametersShow Parameters
add_schedule_itemsarray
optional
Array[{ amount, ending_before, starting_at}]
Hide ParametersShow Parameters
amountFloat
ending_beforeTime
formatdate-time
starting_atTime
formatdate-time
remove_schedule_itemsarray
optional
Array[{ id}]
Hide ParametersShow Parameters
idString
formatuuid
update_schedule_itemsarray
optional
Array[{ id, amount, ending_before, starting_at}]
Hide ParametersShow Parameters
idString
formatuuid
amountFloat
optional
ending_beforeTime
optional
formatdate-time
starting_atTime
optional
formatdate-time
applicable_product_idsarray
optional
Array[String]

Which products the commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

applicable_product_tagsarray
optional
Array[String]

Which tags the commit applies to. If applicable_product_ids, applicable_product_tags or specifiers are not provided, the commit applies to all products.

hierarchy_configurationobject
optional
{ child_access}

Optional configuration for commit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
{ type} | { type} | { contract_ids, type}
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllclass
Hide ParametersShow Parameters
typeunion
:ALL
Hide ParametersShow Parameters
:ALL
CommitHierarchyChildAccessNoneclass
Hide ParametersShow Parameters
typeunion
:NONE
Hide ParametersShow Parameters
:NONE
CommitHierarchyChildAccessContractIDsclass
Hide ParametersShow Parameters
contract_idsarray
Array[String]
typeunion
:CONTRACT_IDS
Hide ParametersShow Parameters
:CONTRACT_IDS
netsuite_sales_order_idString
optional
priorityFloat
optional
product_idString
optional
formatuuid
update_prepaid_balance_threshold_configurationobject
optional
{ commit, custom_credit_type_id, is_enabled, 3 more}
Hide ParametersShow Parameters
commitobject
optional
{ applicable_product_ids, applicable_product_tags, description, 3 more}
Hide ParametersShow Parameters
applicable_product_idsarray
optional
Array[String]

Which products the threshold commit applies to. If both applicable_product_ids and applicable_product_tags are not provided, the commit applies to all products.

applicable_product_tagsarray
optional
Array[String]

Which tags the threshold commit applies to. If both applicable_product_ids and applicable_product_tags are not provided, the commit applies to all products.

descriptionString
optional
nameString
optional

Specify the name of the line item for the threshold charge. If left blank, it will default to the commit product name.

product_idString
optional

The commit product that will be used to generate the line item for commit payment.

specifiersarray
optional
Array[{ presentation_group_values, pricing_group_values, product_id, product_tags}]

List of filters that determine what kind of customer usage draws down a commit or credit. A customer's usage needs to meet the condition of at least one of the specifiers to contribute to a commit's or credit's drawdown. This field cannot be used together with applicable_product_ids or applicable_product_tags. Instead, to target usage by product or product tag, pass those values in the body of specifiers.

Hide ParametersShow Parameters
presentation_group_valueshash
optional
Hash[Symbol, String]
pricing_group_valueshash
optional
Hash[Symbol, String]
product_idString
optional

If provided, the specifier will only apply to the product with the specified ID.

formatuuid
product_tagsarray
optional
Array[String]

If provided, the specifier will only apply to products with all the specified tags.

custom_credit_type_idString
optional

If provided, the threshold, recharge-to amount, and the resulting threshold commit amount will be in terms of this credit type instead of the fiat currency.

formatuuid
is_enabledbool
optional

When set to false, the contract will not be evaluated against the threshold_amount. Toggling to true will result an immediate evaluation, regardless of prior state.

payment_gate_configobject
optional
{ payment_gate_type, precalculated_tax_config, stripe_config, tax_type}
Hide ParametersShow Parameters
payment_gate_typeunion
:NONE | :STRIPE | :EXTERNAL

Gate access to the commit balance based on successful collection of payment. Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to facilitate payment using your own payment integration. Select NONE if you do not wish to payment gate the commit balance.

Hide ParametersShow Parameters
:NONE
:STRIPE
:EXTERNAL
precalculated_tax_configobject
optional
{ tax_amount, tax_name}

Only applicable if using PRECALCULATED as your tax type.

Hide ParametersShow Parameters
tax_amountFloat

Amount of tax to be applied. This should be in the same currency and denomination as the commit's invoice schedule

tax_nameString
optional

Name of the tax to be applied. This may be used in an invoice line item description.

stripe_configobject
optional
{ payment_type, invoice_metadata}

Only applicable if using STRIPE as your payment gateway type.

Hide ParametersShow Parameters
payment_typeunion
:INVOICE | :PAYMENT_INTENT

If left blank, will default to INVOICE

Hide ParametersShow Parameters
:INVOICE
:PAYMENT_INTENT
invoice_metadatahash
optional
Hash[Symbol, String]

Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as your payment type.

tax_typeunion
optional
:NONE | :STRIPE | :ANROK | :PRECALCULATED

Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.

Hide ParametersShow Parameters
:NONE
:STRIPE
:ANROK
:PRECALCULATED
recharge_to_amountFloat
optional

Specify the amount the balance should be recharged to.

threshold_amountFloat
optional

Specify the threshold amount for the contract. Each time the contract's balance lowers to this amount, a threshold charge will be initiated.

update_recurring_commitsarray
optional
Array[{ recurring_commit_id, access_amount, ending_before, invoice_amount}]

Edits to these recurring commits will only affect commits whose access schedules has not started. Expired commits, and commits with an active access schedule will remain unchanged.

Hide ParametersShow Parameters
recurring_commit_idString
formatuuid
access_amountobject
optional
{ quantity, unit_price}
Hide ParametersShow Parameters
quantityFloat
optional
unit_priceFloat
optional
ending_beforeTime
optional
formatdate-time
invoice_amountobject
optional
{ quantity, unit_price}
Hide ParametersShow Parameters
quantityFloat
optional
unit_priceFloat
optional
update_recurring_creditsarray
optional
Array[{ recurring_credit_id, access_amount, ending_before}]

Edits to these recurring credits will only affect credits whose access schedules has not started. Expired credits, and credits with an active access schedule will remain unchanged.

Hide ParametersShow Parameters
recurring_credit_idString
formatuuid
access_amountobject
optional
{ quantity, unit_price}
Hide ParametersShow Parameters
quantityFloat
optional
unit_priceFloat
optional
ending_beforeTime
optional
formatdate-time
update_scheduled_chargesarray
optional
Array[{ scheduled_charge_id, invoice_schedule, netsuite_sales_order_id}]
Hide ParametersShow Parameters
scheduled_charge_idString
formatuuid
invoice_scheduleobject
optional
{ add_schedule_items, remove_schedule_items, update_schedule_items}
Hide ParametersShow Parameters
add_schedule_itemsarray
optional
Array[{ timestamp, amount, quantity, unit_price}]
Hide ParametersShow Parameters
timestampTime
formatdate-time
amountFloat
optional
quantityFloat
optional
unit_priceFloat
optional
remove_schedule_itemsarray
optional
Array[{ id}]
Hide ParametersShow Parameters
idString
formatuuid
update_schedule_itemsarray
optional
Array[{ id, amount, quantity, 2 more}]
Hide ParametersShow Parameters
idString
formatuuid
amountFloat
optional
quantityFloat
optional
timestampTime
optional
formatdate-time
unit_priceFloat
optional
netsuite_sales_order_idString
optional
update_spend_threshold_configurationobject
optional
{ commit, is_enabled, payment_gate_config, threshold_amount}
Hide ParametersShow Parameters
commitobject
optional
{ description, name, product_id}
Hide ParametersShow Parameters
descriptionString
optional
nameString
optional

Specify the name of the line item for the threshold charge. If left blank, it will default to the commit product name.

product_idString
optional

The commit product that will be used to generate the line item for commit payment.

is_enabledbool
optional

When set to false, the contract will not be evaluated against the threshold_amount. Toggling to true will result an immediate evaluation, regardless of prior state.

payment_gate_configobject
optional
{ payment_gate_type, precalculated_tax_config, stripe_config, tax_type}
Hide ParametersShow Parameters
payment_gate_typeunion
:NONE | :STRIPE | :EXTERNAL

Gate access to the commit balance based on successful collection of payment. Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to facilitate payment using your own payment integration. Select NONE if you do not wish to payment gate the commit balance.

Hide ParametersShow Parameters
:NONE
:STRIPE
:EXTERNAL
precalculated_tax_configobject
optional
{ tax_amount, tax_name}

Only applicable if using PRECALCULATED as your tax type.

Hide ParametersShow Parameters
tax_amountFloat

Amount of tax to be applied. This should be in the same currency and denomination as the commit's invoice schedule

tax_nameString
optional

Name of the tax to be applied. This may be used in an invoice line item description.

stripe_configobject
optional
{ payment_type, invoice_metadata}

Only applicable if using STRIPE as your payment gateway type.

Hide ParametersShow Parameters
payment_typeunion
:INVOICE | :PAYMENT_INTENT

If left blank, will default to INVOICE

Hide ParametersShow Parameters
:INVOICE
:PAYMENT_INTENT
invoice_metadatahash
optional
Hash[Symbol, String]

Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as your payment type.

tax_typeunion
optional
:NONE | :STRIPE | :ANROK | :PRECALCULATED

Stripe tax is only supported for Stripe payment gateway. Select NONE if you do not wish Metronome to calculate tax on your behalf. Leaving this field blank will default to NONE.

Hide ParametersShow Parameters
:NONE
:STRIPE
:ANROK
:PRECALCULATED
threshold_amountFloat
optional

Specify the threshold amount for the contract. Each time the contract's usage hits this amount, a threshold charge will be initiated.

update_subscriptionsarray
optional
Array[{ subscription_id, ending_before, quantity_updates}]

Optional list of subscriptions to update.

Hide ParametersShow Parameters
subscription_idString
formatuuid
ending_beforeTime
optional
formatdate-time
quantity_updatesarray
optional
Array[{ starting_at, quantity, quantity_delta}]

Quantity changes are applied on the effective date based on the order which they are sent. For example, if I scheduled the quantity to be 12 on May 21 and then scheduled a quantity delta change of -1, the result from that day would be 11.

Hide ParametersShow Parameters
starting_atTime
formatdate-time
quantityFloat
optional

The new quantity for the subscription. Must be provided if quantity_delta is not provided. Must be non-negative.

quantity_deltaFloat
optional

The delta to add to the subscription's quantity. Must be provided if quantity is not provided. Can't be zero. It also can't result in a negative quantity on the subscription.

Returns
ContractEditResponseclass
Hide ParametersShow Parameters
dataidStringID
require "metronome_sdk"

metronome = MetronomeSDK::Client.new(bearer_token: "My Bearer Token")

response = metronome.v2.contracts.edit(
  contract_id: "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
  customer_id: "13117714-3f05-48e5-a6e9-a66093f13b4d"
)

puts(response)
200 Example
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  }
}