---
title: "Validate taxes on a billing schedule"
method: POST
path: "/billing-schedules/validate-taxes"
tags: ["Billing Schedules"]
---

# Validate taxes on a billing schedule

`POST /billing-schedules/validate-taxes`

Validate the tax strategy that will apply to the given billing schedule before it's created or updated.

## Headers

- `Authorization` string, required
- `sequence-version` '2024-07-30'

## Request body

- CreateBillingScheduleRequest
  - `customerId` string, required — Customer ID
  - `startDate` string, required — Start date
  - `endDate` string — End date. A null end date denotes an open-ended schedule.
  - `recurrenceDayOfMonth` integer — Recurrence day of month
  - `taxRates` ProductTaxRateRepresentation[], required — Tax Rate for each Product
    - `priceId` string, required — ID of the Price
    - `taxRateId` string, required — ID of the Tax Rate
  - `autoIssueInvoices` boolean, required — Auto-issue invoices for this billing schedule
  - `purchaseOrderNumber` string — Optional purchase order number to be added to invoices
  - `reference` string — Optional reference to be added to invoices
  - `label` string — Optional label
  - `paymentProvider` 'STRIPE' | 'GOCARDLESS' | 'NONE'
  - `isDraft` boolean, required — Create in draft status
  - `rollUpBilling` boolean, required — Toggles Roll-up billing
  - `phases` PhaseRequest[], required — Phases
    - `priceIds` string[], required — The price IDs included in this phase
    - `startDate` string, required — Phase start date
    - `endDate` string — Phase end date. A null end date denotes an open-ended phase. Only the last phase can be open-ended.
    - `discounts` unknown[] — Discounts applicable to this phase
      - unknown
    - `minimums` unknown[] — Minimums applicable to this phase
      - unknown
    - `creditGrants` EmbeddableCreditGrantRequest[] — Credit grants applicable to this phase. Omit this field on every phase to leave the schedule's existing grants untouched. Once any phase provides it, the grants across all phases are the schedule's full grant spec: grants without an ID are created, grants re-sent with their ID are kept, and grants left out are removed. Grants cannot be updated through this request, and a grant that has already been drawn down cannot be removed this way — delete it through the credit grant endpoint instead.
      - `id` string — ID of an existing credit grant on this billing schedule. Omit to create a new grant. When present, the grant is kept as-is — credit grants cannot be updated through a billing schedule edit.
      - `name` string, required — Name of the credit grant.
      - `creditUnitType` 'CURRENCY' | 'METRIC', required
      - `currency` 'AED' | 'ARS' | 'AUD' | 'BRL' | 'BGN' | 'CAD' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CZK' | 'DKK' | 'EGP' | 'EUR' | 'GBP' | 'HKD' | 'ILS' | 'INR' | 'ISK' | 'JPY' | 'KRW' | 'MXN' | 'NOK' | 'NZD' | 'PLN' | 'SAR' | 'SEK' | 'SGD' | 'THB' | 'USD' | 'UYU' | 'ZAR'
      - `amount` number, required — Amount of units granted.
      - `costOfCredit` number — Cost of credit grant.
      - `taxRateId` string — Tax rate ID for the credit grant.
      - `grantRefreshFrequency` 'NONE' | 'MONTHLY' | 'QUARTERLY' | 'YEARLY', required
      - `rolloverMode` 'NONE' | 'ON_GRANT_REFRESH' | 'ON_GRANT_REFRESH_AND_PHASE', required
      - `restrictToPrices` string[] — Price IDs the grant is consumed against. Omit or leave empty to apply to every price in the phase.
    - `listPriceIds` string[] — IDs of list prices from which to create prices for this phase
    - `recurrencePreference` 'CONTINUE_FROM_PREVIOUS_PHASE' | 'RESET'
    - `phasePriceMetadata` PhasePriceMetadata[] — Additional metadata for the relationship between this phase and each price
      - `priceId` string, required
      - `arrCalculation` 'INCLUDE' | 'EXCLUDE', required
    - `phaseListPriceMetadata` PhaseListPriceMetadata[] — Additional metadata for the relationship between this phase and each list price
      - `listPriceId` string, required
      - `arrCalculation` 'INCLUDE' | 'EXCLUDE', required
  - `attachmentAssetIds` string[] — IDs of assets that are attached to this schedule
  - `autoCharge` boolean — Automatically collect payments if payment details are available
  - `defaultDueDateDays` integer — Default number of days between invoice issue date and due date. Overrides any invoice level set default due date
  - `memo` string — Billing schedule memo. Overrides any invoice level set memo
  - `customFields` object — Custom key-value fields for this billing schedule

## Response `200`

OK

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/sequencehq/apis/sequence.md) · [All operations](https://skmtc.net/sequencehq/apis/sequence/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequencehq/sequence/versions/cae64b02699f/schema)
