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

Amend

Amend a contract
post/v1/contracts/amend

Amendments will be replaced by Contract editing. New clients should implement using the editContract endpoint. Read more about the migration to contract editing here and reach out to your Metronome representative for more details. Once contract editing is enabled, access to this endpoint will be removed.

Body Parameters
contract_idstring

ID of the contract to amend

formatuuid
customer_idstring

ID of the customer whose contract is to be amended

formatuuid
starting_atstring

inclusive start time for the amendment

formatdate-time
commitsarray of object
optional
Hide ParametersShow Parameters
product_idstring
formatuuid
typeenum
"PREPAID" OR "POSTPAID"
Hide ParametersShow Parameters
"PREPAID"
"POSTPAID"
access_scheduleobject
optional

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 of object
Hide ParametersShow Parameters
amountnumber
ending_beforestring

RFC 3339 timestamp (exclusive)

formatdate-time
starting_atstring

RFC 3339 timestamp (inclusive)

formatdate-time
credit_type_idstring
optional

Defaults to USD (cents) if not passed

formatuuid
amountnumber
optional

(DEPRECATED) Use access_schedule and invoice_schedule instead.

applicable_product_idsarray of string
optional

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 of string
optional

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_fieldsmap
optional
descriptionstring
optional

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

hierarchy_configurationobject
optional

Optional configuration for commit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
One of the following 3 object variants:
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllobject
Hide ParametersShow Parameters
typeenum
"ALL"
Hide ParametersShow Parameters
"ALL"
CommitHierarchyChildAccessNoneobject
Hide ParametersShow Parameters
typeenum
"NONE"
Hide ParametersShow Parameters
"NONE"
CommitHierarchyChildAccessContractIDsobject
Hide ParametersShow Parameters
contract_idsarray of string
typeenum
"CONTRACT_IDS"
Hide ParametersShow Parameters
"CONTRACT_IDS"
invoice_scheduleobject
optional

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_invoiceboolean
optional

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

recurring_scheduleobject
optional

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_distributionenum
"DIVIDED" OR "DIVIDED_ROUNDED" OR "EACH"
Hide ParametersShow Parameters
"DIVIDED"
"DIVIDED_ROUNDED"
"EACH"
ending_beforestring

RFC 3339 timestamp (exclusive).

formatdate-time
frequencyenum
"MONTHLY" OR "QUARTERLY" OR "SEMI_ANNUAL" OR "ANNUAL"
Hide ParametersShow Parameters
"MONTHLY"
"QUARTERLY"
"SEMI_ANNUAL"
"ANNUAL"
starting_atstring

RFC 3339 timestamp (inclusive).

formatdate-time
amountnumber
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.

quantitynumber
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_pricenumber
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 of object
optional

Either provide amount or provide both unit_price and quantity.

Hide ParametersShow Parameters
timestampstring

timestamp of the scheduled event

formatdate-time
amountnumber
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.

quantitynumber
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_pricenumber
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

optionally payment gate this commit

Hide ParametersShow Parameters
payment_gate_typeenum
"NONE" OR "STRIPE" OR "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

Only applicable if using PRECALCULATED as your tax type.

Hide ParametersShow Parameters
tax_amountnumber

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

Only applicable if using STRIPE as your payment gate type.

Hide ParametersShow Parameters
payment_typeenum
"INVOICE" OR "PAYMENT_INTENT"

If left blank, will default to INVOICE

Hide ParametersShow Parameters
"INVOICE"
"PAYMENT_INTENT"
invoice_metadatamap
optional

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

tax_typeenum
optional
"NONE" OR "STRIPE" OR "ANROK" OR "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"
prioritynumber
optional

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

rate_typeenum
optional
"COMMIT_RATE" OR "LIST_RATE"
Hide ParametersShow Parameters
"COMMIT_RATE"
"LIST_RATE"
rollover_fractionnumber
optional

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

specifiersarray of object
optional

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.

Hide ParametersShow Parameters
presentation_group_valuesmap
optional
pricing_group_valuesmap
optional
product_idstring
optional

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

formatuuid
product_tagsarray of string
optional

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.

creditsarray of object
optional
Hide ParametersShow Parameters
access_scheduleobject

Schedule for distributing the credit to the customer.

Hide ParametersShow Parameters
schedule_itemsarray of object
Hide ParametersShow Parameters
amountnumber
ending_beforestring

RFC 3339 timestamp (exclusive)

formatdate-time
starting_atstring

RFC 3339 timestamp (inclusive)

formatdate-time
credit_type_idstring
optional

Defaults to USD (cents) if not passed

formatuuid
product_idstring
formatuuid
applicable_product_idsarray of string
optional

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 of string
optional

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_fieldsmap
optional
descriptionstring
optional

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

hierarchy_configurationobject
optional

Optional configuration for credit hierarchy access control

Hide ParametersShow Parameters
child_accessunion
One of the following 3 object variants:
Hide ParametersShow Parameters
CommitHierarchyChildAccessAllobject
Hide ParametersShow Parameters
typeenum
"ALL"
Hide ParametersShow Parameters
"ALL"
CommitHierarchyChildAccessNoneobject
Hide ParametersShow Parameters
typeenum
"NONE"
Hide ParametersShow Parameters
"NONE"
CommitHierarchyChildAccessContractIDsobject
Hide ParametersShow Parameters
contract_idsarray of string
typeenum
"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.

prioritynumber
optional

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

rate_typeenum
optional
"COMMIT_RATE" OR "LIST_RATE"
Hide ParametersShow Parameters
"COMMIT_RATE"
"LIST_RATE"
specifiersarray of object
optional

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.

Hide ParametersShow Parameters
presentation_group_valuesmap
optional
pricing_group_valuesmap
optional
product_idstring
optional

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

formatuuid
product_tagsarray of string
optional

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

custom_fieldsmap
optional
discountsarray of object
optional

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

Hide ParametersShow Parameters
product_idstring
formatuuid
scheduleobject

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_invoiceboolean
optional

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

recurring_scheduleobject
optional

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_distributionenum
"DIVIDED" OR "DIVIDED_ROUNDED" OR "EACH"
Hide ParametersShow Parameters
"DIVIDED"
"DIVIDED_ROUNDED"
"EACH"
ending_beforestring

RFC 3339 timestamp (exclusive).

formatdate-time
frequencyenum
"MONTHLY" OR "QUARTERLY" OR "SEMI_ANNUAL" OR "ANNUAL"
Hide ParametersShow Parameters
"MONTHLY"
"QUARTERLY"
"SEMI_ANNUAL"
"ANNUAL"
starting_atstring

RFC 3339 timestamp (inclusive).

formatdate-time
amountnumber
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.

quantitynumber
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_pricenumber
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 of object
optional

Either provide amount or provide both unit_price and quantity.

Hide ParametersShow Parameters
timestampstring

timestamp of the scheduled event

formatdate-time
amountnumber
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.

quantitynumber
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_pricenumber
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_fieldsmap
optional
namestring
optional

displayed on invoices

minLength1
netsuite_sales_order_idstring
optional

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

netsuite_sales_order_idstring
optional

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

overridesarray of object
optional
Hide ParametersShow Parameters
starting_atstring

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

formatdate-time
applicable_product_tagsarray of string
optional

tags identifying products whose rates are being overridden. Cannot be used in conjunction with override_specifiers.

ending_beforestring
optional

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

formatdate-time
entitledboolean
optional
is_commit_specificboolean
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. if you do not specify commit_ids, then the override will apply when consuming any prepaid or postpaid commit.

multipliernumber
optional

Required for MULTIPLIER type. Must be >=0.

override_specifiersarray of object
optional

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_frequencyenum
optional
"MONTHLY" OR "QUARTERLY" OR "ANNUAL" OR "WEEKLY"
Hide ParametersShow Parameters
"MONTHLY"
"QUARTERLY"
"ANNUAL"
"WEEKLY"
commit_idsarray of string
optional

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 the specified commits. If not provided, the override will apply to all commits.

presentation_group_valuesmap
optional

A map of group names to values. The override will only apply to line items with the specified presentation group values.

pricing_group_valuesmap
optional

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 of string
optional

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

recurring_commit_idsarray of string
optional

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 of string
optional

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 credits created by the specified recurring credit ids.

overwrite_rateobject
optional

Required for OVERWRITE type.

Hide ParametersShow Parameters
rate_typeenum
"FLAT" OR "PERCENTAGE" OR "SUBSCRIPTION" OR 2 more
Hide ParametersShow Parameters
"FLAT"
"PERCENTAGE"
"SUBSCRIPTION"
"TIERED"
"CUSTOM"
credit_type_idstring
optional
formatuuid
custom_ratemap
optional

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

is_proratedboolean
optional

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

pricenumber
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.

quantitynumber
optional

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

tiersarray of pricenumbersizenumberTier
optional

Only set for TIERED rate_type.

prioritynumber
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. Cannot be used in conjunction with override_specifiers.

formatuuid
targetenum
optional
"COMMIT_RATE" OR "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 of object
optional

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

Hide ParametersShow Parameters
multipliernumber
sizenumber
optional
typeenum
optional
"OVERWRITE" OR "MULTIPLIER" OR "TIERED"

Overwrites are prioritized over multipliers and tiered overrides.

Hide ParametersShow Parameters
"OVERWRITE"
"MULTIPLIER"
"TIERED"
professional_servicesarray of object
optional

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

Hide ParametersShow Parameters
max_amountnumber

Maximum amount for the term.

product_idstring
formatuuid
quantitynumber

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

unit_pricenumber

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

custom_fieldsmap
optional
descriptionstring
optional
netsuite_sales_order_idstring
optional

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

reseller_royaltiesarray of object
optional

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

Hide ParametersShow Parameters
reseller_typeenum
"AWS" OR "AWS_PRO_SERVICE" OR "GCP" OR "GCP_PRO_SERVICE"
Hide ParametersShow Parameters
"AWS"
"AWS_PRO_SERVICE"
"GCP"
"GCP_PRO_SERVICE"
applicable_product_idsarray of string
optional

Must provide at least one of applicable_product_ids or applicable_product_tags.

applicable_product_tagsarray of string
optional

Must provide at least one of applicable_product_ids or applicable_product_tags.

aws_optionsobject
optional
Hide ParametersShow Parameters
aws_account_numberstring
optional
aws_offer_idstring
optional
aws_payer_reference_idstring
optional
ending_beforestring
optional

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

formatdate-time
fractionnumber
optional
gcp_optionsobject
optional
Hide ParametersShow Parameters
gcp_account_idstring
optional
gcp_offer_idstring
optional
netsuite_reseller_idstring
optional
reseller_contract_valuenumber
optional
starting_atstring
optional
formatdate-time
salesforce_opportunity_idstring
optional

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

scheduled_chargesarray of object
optional
Hide ParametersShow Parameters
product_idstring
formatuuid
scheduleobject

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_invoiceboolean
optional

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

recurring_scheduleobject
optional

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_distributionenum
"DIVIDED" OR "DIVIDED_ROUNDED" OR "EACH"
Hide ParametersShow Parameters
"DIVIDED"
"DIVIDED_ROUNDED"
"EACH"
ending_beforestring

RFC 3339 timestamp (exclusive).

formatdate-time
frequencyenum
"MONTHLY" OR "QUARTERLY" OR "SEMI_ANNUAL" OR "ANNUAL"
Hide ParametersShow Parameters
"MONTHLY"
"QUARTERLY"
"SEMI_ANNUAL"
"ANNUAL"
starting_atstring

RFC 3339 timestamp (inclusive).

formatdate-time
amountnumber
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.

quantitynumber
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_pricenumber
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 of object
optional

Either provide amount or provide both unit_price and quantity.

Hide ParametersShow Parameters
timestampstring

timestamp of the scheduled event

formatdate-time
amountnumber
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.

quantitynumber
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_pricenumber
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.

total_contract_valuenumber
optional

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

Returns
dataidstringID
curl https://api.metronome.com/v1/contracts/amend \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $METRONOME_BEARER_TOKEN" \
    -d '{
          "contract_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
          "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
          "starting_at": "2020-01-01T00:00:00.000Z"
        }'
200 Example
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  }
}