zuora

package
v0.0.0-...-4b11243 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2017 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIClient

type APIClient struct {
	// contains filtered or unexported fields
}

func (*APIClient) CallAPI

func (c *APIClient) CallAPI(path string, method string,
	postBody interface{},
	headerParams map[string]string,
	queryParams url.Values,
	formParams map[string]string,
	fileName string,
	fileBytes []byte) (*resty.Response, error)

func (*APIClient) ParameterToString

func (c *APIClient) ParameterToString(obj interface{}, collectionFormat string) string

func (*APIClient) SelectHeaderAccept

func (c *APIClient) SelectHeaderAccept(accepts []string) string

func (*APIClient) SelectHeaderContentType

func (c *APIClient) SelectHeaderContentType(contentTypes []string) string

type APIResponse

type APIResponse struct {
	*http.Response `json:"-"`
	Message        string `json:"message,omitempty"`
	// Operation is the name of the swagger operation.
	Operation string `json:"operation,omitempty"`
	// RequestURL is the request URL. This value is always available, even if the
	// embedded *http.Response is nil.
	RequestURL string `json:"url,omitempty"`
	// Method is the HTTP method used for the request.  This value is always
	// available, even if the embedded *http.Response is nil.
	Method string `json:"method,omitempty"`
	// Payload holds the contents of the response body (which may be nil or empty).
	// This is provided here as the raw response.Body() reader will have already
	// been drained.
	Payload []byte `json:"-"`
}

func NewAPIResponse

func NewAPIResponse(r *http.Response) *APIResponse

func NewAPIResponseWithError

func NewAPIResponseWithError(errorMessage string) *APIResponse

type AccountingCodesApi

type AccountingCodesApi struct {
	Configuration *Configuration
}

func NewAccountingCodesApi

func NewAccountingCodesApi() *AccountingCodesApi

func NewAccountingCodesApiWithBasePath

func NewAccountingCodesApiWithBasePath(basePath string) *AccountingCodesApi

func (AccountingCodesApi) DELETEAccountingCode

func (a AccountingCodesApi) DELETEAccountingCode(acId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingCodesApi) GETAccountingCode

func (a AccountingCodesApi) GETAccountingCode(acId string, entityId string, entityName string) (*GetAccountingCodeItemType, *APIResponse, error)

*

func (AccountingCodesApi) GETAllAccountingCodes

func (a AccountingCodesApi) GETAllAccountingCodes(entityId string, entityName string, pageSize int32) (*GetAccountingCodesType, *APIResponse, error)

*

func (AccountingCodesApi) POSTAccountingCode

func (a AccountingCodesApi) POSTAccountingCode(request PostAccountingCodeType, entityId string, entityName string) (*PostAccountingCodeResponseType, *APIResponse, error)

*

func (AccountingCodesApi) PUTAccountingCode

func (a AccountingCodesApi) PUTAccountingCode(acId string, request PutAccountingCodeType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingCodesApi) PUTActivateAccountingCode

func (a AccountingCodesApi) PUTActivateAccountingCode(acId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingCodesApi) PUTDeactivateAccountingCode

func (a AccountingCodesApi) PUTDeactivateAccountingCode(acId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type AccountingPeriodsApi

type AccountingPeriodsApi struct {
	Configuration *Configuration
}

func NewAccountingPeriodsApi

func NewAccountingPeriodsApi() *AccountingPeriodsApi

func NewAccountingPeriodsApiWithBasePath

func NewAccountingPeriodsApiWithBasePath(basePath string) *AccountingPeriodsApi

func (AccountingPeriodsApi) DELETEAccountingPeriod

func (a AccountingPeriodsApi) DELETEAccountingPeriod(apId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingPeriodsApi) GETAccountingPeriod

func (a AccountingPeriodsApi) GETAccountingPeriod(apId string, entityId string, entityName string) (*GetAccountingPeriodType, *APIResponse, error)

*

func (AccountingPeriodsApi) GETAllAccountingPeriods

func (a AccountingPeriodsApi) GETAllAccountingPeriods(entityId string, entityName string, pageSize int32) (*GetAccountingPeriodsType, *APIResponse, error)

*

func (AccountingPeriodsApi) POSTAccountingPeriod

func (a AccountingPeriodsApi) POSTAccountingPeriod(request PostAccountingPeriodType, entityId string, entityName string) (*PostAccountingPeriodResponseType, *APIResponse, error)

*

func (AccountingPeriodsApi) PUTCloseAccountingPeriod

func (a AccountingPeriodsApi) PUTCloseAccountingPeriod(apId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingPeriodsApi) PUTPendingCloseAccountingPeriod

func (a AccountingPeriodsApi) PUTPendingCloseAccountingPeriod(apId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

  • Set accounting period to pending close
  • Sets an accounting period to pending close. Prerequisites ------------- * You must have Zuora Finance enabled on your tenant. * You must have the Manage Close Process and Run Trial Balance user permissions. Limitations ----------- * The accounting period cannot be closed or pending close. * The accounting period cannot be in the process of running a trial balance. * All earlier accounting periods must be closed. Notes ----- When you set an accounting period to pending close in Zuora, a trial balance is automatically run for that period. A response of `{ \"success\": true }` means only that the accounting period status is now pending close, but does not mean that the trial balance has successfully completed. You can use the Get Accounting Period REST API call to view details about the outcome of the trial balance. *
  • @param apId ID of the accounting period you want to set to pending close.
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *CommonResponseType

func (AccountingPeriodsApi) PUTReopenAccountingPeriod

func (a AccountingPeriodsApi) PUTReopenAccountingPeriod(apId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingPeriodsApi) PUTRunTrialBalance

func (a AccountingPeriodsApi) PUTRunTrialBalance(apId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AccountingPeriodsApi) PUTUpdateAccountingPeriod

func (a AccountingPeriodsApi) PUTUpdateAccountingPeriod(apId string, request PutAccountingPeriodType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type AccountsApi

type AccountsApi struct {
	Configuration *Configuration
}

func NewAccountsApi

func NewAccountsApi() *AccountsApi

func NewAccountsApiWithBasePath

func NewAccountsApiWithBasePath(basePath string) *AccountsApi

func (AccountsApi) GETAccount

func (a AccountsApi) GETAccount(accountKey string, entityId string, entityName string) (*GetAccountType, *APIResponse, error)

*

func (AccountsApi) GETAccountSummary

func (a AccountsApi) GETAccountSummary(accountKey string, entityId string, entityName string) (*GetAccountSummaryType, *APIResponse, error)

*

func (AccountsApi) ObjectDELETEAccount

func (a AccountsApi) ObjectDELETEAccount(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (AccountsApi) ObjectGETAccount

func (a AccountsApi) ObjectGETAccount(id string, entityId string, entityName string, fields string) (*ProxyGetAccount, *APIResponse, error)

*

func (AccountsApi) ObjectPOSTAccount

func (a AccountsApi) ObjectPOSTAccount(createRequest ProxyCreateAccount, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (AccountsApi) ObjectPUTAccount

func (a AccountsApi) ObjectPUTAccount(id string, modifyRequest ProxyModifyAccount, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (AccountsApi) POSTAccount

func (a AccountsApi) POSTAccount(request PostAccountType, entityId string, entityName string, zuoraVersion string) (*PostAccountResponseType, *APIResponse, error)

*

  • Create account
  • This REST API reference describes how to create a customer account with a credit-card payment method, a bill-to contact, and an optional sold-to contact. Request and response field descriptions and sample code are provided. Use this method to optionally create a subscription, invoice for that subscription, and collect payment through the default payment method. The transaction is atomic; if any part fails for any reason, the entire transaction is rolled back. This API call is CORS Enabled, so you can use client-side Javascript to invoke the call. ## Notes 1. The account is created in active status. 2. The request must provide either a **creditCard** structure or the **hpmCreditCardPaymentMethodId** field (but not both). The one provided becomes the default payment method for this account. If the credit card information is declined or can't be verified, then the account is not created. 3. Customer accounts created with this call are automatically be set to Auto Pay. 4. If either the **workEmail** or **personalEmail** are specified, then the account's email delivery preference is automatically set to `true`. (In that case, emails go to the **workEmail** address, if it exists, or else the **personalEmail**.) If neither field is specified, the email delivery preference is automatically set to `false`. ## Defaults for customerAcceptanceDate and serviceActivationDate Default values for **customerAcceptanceDate** and **serviceActivationDate** are set as follows. | | serviceActivationDate(SA) specified | serviceActivationDate (SA) NOT specified | | ------------- |:-------------:| -----:| | customerAcceptanceDate (CA) specified | SA uses value in the request call; CA uses value in the request call| CA uses value in the request call;SA uses CE as default | | customerAcceptanceDate (CA) NOT specified | SA uses value in the request call; CA uses SA as default | SA and CA use CE as default | *
  • @param request
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param zuoraVersion The minor version of the Zuora REST API. You only need to set this parameter if you use the following fields: * invoice * collect * runBilling * targetDate
  • @return *PostAccountResponseType

func (AccountsApi) PUTAccount

func (a AccountsApi) PUTAccount(accountKey string, request PutAccountType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

  • Update account
  • This REST API reference describes how to update a customer account by specifying the account-key. ## Notes 1. Only the fields to be changed should be specified. Any field that's not included in the request body will not be changed. 2. If an empty field is submitted with this call, the corresponding field in the account is emptied. 3. Email addresses: If no email addresses are specified, no change is made to the email addresses on file or to the email delivery preference. If either the **personalEmail** or **workEmail** is specified (or both), the system updates the corresponding email address(es) on file and the email delivery preference is set to `true`. (In that case, emails go to the **workEmail** address, if it exists, or else the **personalEmail**.) On the other hand, if as a result of this call both of the email addresses for the account are empty, the email delivery preference is set to `false`. 4. The bill-to and sold-to contacts are separate data entities; updating either one does not update the other. *
  • @param accountKey Account number or account ID.
  • @param request
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *CommonResponseType

type ActionsApi

type ActionsApi struct {
	Configuration *Configuration
}

func NewActionsApi

func NewActionsApi() *ActionsApi

func NewActionsApiWithBasePath

func NewActionsApiWithBasePath(basePath string) *ActionsApi

func (ActionsApi) ActionPOSTamend

func (a ActionsApi) ActionPOSTamend(amendRequest ProxyActionamendRequest, entityId string, entityName string) (*ProxyActionamendResponse, *APIResponse, error)

*

func (ActionsApi) ActionPOSTcreate

func (a ActionsApi) ActionPOSTcreate(createRequest ProxyActioncreateRequest, entityId string, entityName string) (*ProxyActioncreateResponse, *APIResponse, error)

*

  • Create
  • Use the create call to create one or more objects of a specific type. You can specify different types in different create calls, but each create call must apply to only one type of object. ## Limits ### Objects per Call 50 objects are supported in a single call. ## How to Use this Call You can call create on an array of one or more zObjects. It returns an array of SaveResults, indicating the success or failure of creating each object. The following information applies to this call: * You cannot pass in null zObjects. * You can pass in a maximum of 50 zObjects at a time. * All objects must be of the same type. ### Using Create and Subscribe Calls Both the create and subscribe calls will create a new account. However, there are differences between the calls. Use the create call to create an account independent of a subscription. Use the subscribe call to create the account with the subscription and the initial payment information. *
  • @param createRequest
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *ProxyActioncreateResponse

func (ActionsApi) ActionPOSTdelete

func (a ActionsApi) ActionPOSTdelete(deleteRequest ProxyActiondeleteRequest, entityId string, entityName string) (*ProxyActiondeleteResponse, *APIResponse, error)

*

func (ActionsApi) ActionPOSTexecute

func (a ActionsApi) ActionPOSTexecute(executeRequest ProxyActionexecuteRequest, entityId string, entityName string) (*ProxyActionexecuteResponse, *APIResponse, error)

*

func (ActionsApi) ActionPOSTgenerate

func (a ActionsApi) ActionPOSTgenerate(generateRequest ProxyActiongenerateRequest, entityId string, entityName string) (*ProxyActiongenerateResponse, *APIResponse, error)

*

func (ActionsApi) ActionPOSTquery

func (a ActionsApi) ActionPOSTquery(queryRequest ProxyActionqueryRequest, entityId string, entityName string) (*ProxyActionqueryResponse, *APIResponse, error)

*

func (ActionsApi) ActionPOSTqueryMore

func (a ActionsApi) ActionPOSTqueryMore(queryMoreRequest ProxyActionqueryMoreRequest, entityId string, entityName string) (*ProxyActionqueryMoreResponse, *APIResponse, error)

*

  • QueryMore
  • Use queryMore to request additional results from a previous query call. If your initial query call returns more than 2000 results, you can use queryMore to query for the additional results. Any `queryLocator` results greater than 2,000, will only be stored by Zuora for 5 days before it is deleted. This call sends a request for additional results from an initial query call. If the initial query call returns more than 2000 results, you can use the `queryLocator` returned from query to request the next set of results. **Note:** Zuora expires queryMore cursors after 15 minutes of activity. To use queryMore, you first construct a query call. By default, the query call will return up to 2000 results. If there are more than 2000 results, query will return a boolean `done`, which will be marked as `false`, and a `queryLocator`, which is a marker you will pass to queryMore to get the next set of results. *
  • @param queryMoreRequest
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *ProxyActionqueryMoreResponse

func (ActionsApi) ActionPOSTsubscribe

func (a ActionsApi) ActionPOSTsubscribe(subscribeRequest ProxyActionsubscribeRequest, entityId string, entityName string) (*ProxyActionsubscribeResponse, *APIResponse, error)

*

  • Subscribe
  • This call performs many actions. Use the subscribe call to bundle information required to create at least one new subscription. The call takes in an array of SubscribeRequests. Because it takes an array, you can submit a batch of subscription requests at once. You can create up to 50 different subscriptions in a single subscribe call. This is a combined call that you can use to perform all of the following tasks in a single call: * Create accounts * Create contacts * Create payment methods, including external payment options * Create an invoice for the subscription * Apply the first payment to a subscription ## Object Limits 50 objects are supported in a single call. ## Effective Date If the effective date is in the future, the invoices will not be generated, and there will be no invoice number. ## Subscription Name, Number, and ID ### Subscription Name and Number The subscription name is a unique identifier for the subscription. If you do not specify a value for the name, Zuora will create one automatically. The automatically generated value is known as the subscription number, such as `A-S00000080`. You cannot change the subscription name or number after creating the subscription. * **Subscription name**: The name that you set for the subscription. * **Subscription number**: The value generated by Zuora automatically if you do not specify a subscription name. Both the subscription name and number must be unique. If they are not, an error will occur. ### Subscription ID The subscription ID is a 32-digit ID in the format 4028xxxx. This is also the unique identifier for a subscription. This value is automatically generated by the system and cannot be edited or updated, but it can be queried. One subscription can have only one subscription name or number, but it can have multiple IDs: Each version of a subscription has a different ID. The Subscription object contains the fields `OriginalId` and `PreviousSubscriptionId`. `OriginalId` is the ID for the first version of a subscription. `PreviousSubscriptionId` is the ID of the version created immediately prior to the current version. ## Subscription Preview You can preview invoices that would be generated by the subscribe call. ## Invoice Subscriptions Separately If you have enabled the invoice subscriptions separately feature, a subscribe call will generate an invoice for each subscription for every subscription where the field `IsInvoiceSeparate` is set to `true`. If the invoice subscriptions separately feature is disabled, a subscribe call will generate a single invoice for all subscriptions. See [Invoicing Subscriptions Separately](https://knowledgecenter.zuora.com/BC_Subscription_Management/Subscriptions/B_Creating_Subscriptions/Invoicing_Subscriptions_Separately) for more information. ## Subscriptions and Draft Invoices If a draft invoice that includes charges exists in a customer account, using the subscribe call to create a new subscription and generate an invoice will cause the new subscription to be added to the existing draft invoice. Zuora will then post the invoice. ## When to Use Subscribe and Create Calls You can use either the subscribe call or the create call to create the objects associated with a subscription (accounts, contacts, and so on). There are differences between these calls, however, and some situations are better for one or the other. ### Use the Subscribe Call The subscribe call bundles up all the information you need for a subscription. Use the subscribe call to create new subscriptions when you have all the information you need. Subscribe calls cannot update BillTo, SoldTo, and Payment information objects cannot be updated if there is an existing account ID in the call. These objects are not supported in a subscribe call. ### Use the Create Call The create call is more useful when you want to develop in stages. For example, if you want to first create an account, then a contact, and so on. If you do not have all information available, use the create call. To create a subscription, you must activate the account from Draft status to Active by calling the subscribe call. *
  • @param subscribeRequest
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *ProxyActionsubscribeResponse

func (ActionsApi) ActionPOSTupdate

func (a ActionsApi) ActionPOSTupdate(updateRequest ProxyActionupdateRequest, entityId string, entityName string) (*ProxyActionupdateResponse, *APIResponse, error)

*

  • Update
  • Updates the information in one or more objects of the same type. You can specify different types of objects in different update calls, but each specific update call must apply to only one type of object. You can update an array of one or more zObjects. It returns an array of SaveResults, indicating the success or failure of updating each object. The following information applies to this call: * You cannot pass in null zObjects. * You can pass in a maximum of 50 zObjects at a time. * All objects must be of the same type. * For each field in each object, you must determine that object's ID. Then populate the fields that you want update with the new information. * Zuora ignores unrecognized fields in update calls. For example, if an optional field is spelled incorrectly or a field that does not exist is specified, Zuora ignores the field and continues to process the call. No error message is returned for unrecognized fields. ## Object Limits 50 objects are supported in a single call. *
  • @param updateRequest
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *ProxyActionupdateResponse

type AmendRequest

type AmendRequest struct {
	AmendOptions AmendRequestAmendOptions `json:"AmendOptions,omitempty"`

	// The `Amendment` object holds the changes that you want to make to the Subscription specified by the `SubscriptionId`,  including its `RatePlan`, `RatePlanCharge`, and `RatePlanChargeTier`.
	Amendments []Amendment `json:"Amendments,omitempty"`

	PreviewOptions AmendRequestPreviewOptions `json:"PreviewOptions,omitempty"`
}

type AmendRequestAmendOptions

type AmendRequestAmendOptions struct {

	//
	ApplyCreditBalance bool `json:"ApplyCreditBalance,omitempty"`

	ElectronicPaymentOptions ElectronicPaymentOptions `json:"ElectronicPaymentOptions,omitempty"`

	ExternalPaymentOptions ExternalPaymentOptions `json:"ExternalPaymentOptions,omitempty"`

	//
	GenerateInvoice bool `json:"GenerateInvoice,omitempty"`

	InvoiceProcessingOptions InvoiceProcessingOptions `json:"InvoiceProcessingOptions,omitempty"`

	//
	ProcessPayments bool `json:"ProcessPayments,omitempty"`
}

Use the `AmendOptions` container to specify billing options, such as invoice generation and when to process payments.

type AmendRequestPreviewOptions

type AmendRequestPreviewOptions struct {

	//  Determines whether to create an amendment or display a preview of the change.
	EnablePreviewMode bool `json:"EnablePreviewMode,omitempty"`

	//  Specifies whether to include draft invoice items in amendment previews.
	IncludeExistingDraftInvoiceItems bool `json:"IncludeExistingDraftInvoiceItems,omitempty"`

	//  Indicates the number of invoice periods to show in a preview.
	NumberOfPeriods int32 `json:"NumberOfPeriods,omitempty"`

	//  Request to preview the charge through the end of the subscription term.
	PreviewThroughTermEnd bool `json:"PreviewThroughTermEnd,omitempty"`

	//  The type of preview you will receive from a preview request.
	PreviewType string `json:"PreviewType,omitempty"`
}

Use the `PreviewOptions` container to preview an amendment before committing its changes to a subscription. You can use a preview to provide a quote of the new charges to a customer before the customer commits to the amended subscription. For example, make an Amend call with an Amendment object that removes an existing rate plan, another Amendment object that adds a new rate plan, and turn on the preview options.

type AmendResult

type AmendResult struct {

	//  The IDs of the associated Amendment object. There can be as many as three AmendmentId values.
	AmendmentIds string `json:"AmendmentIds,omitempty"`

	ChargeMetricsData ChargeMetricsData `json:"ChargeMetricsData,omitempty"`

	//
	Errors []ModelError `json:"Errors,omitempty"`

	//
	GatewayResponse string `json:"GatewayResponse,omitempty"`

	//
	GatewayResponseCode string `json:"GatewayResponseCode,omitempty"`

	//
	InvoiceDatas []InvoiceData `json:"InvoiceDatas,omitempty"`

	//
	InvoiceId string `json:"InvoiceId,omitempty"`

	//
	PaymentId string `json:"PaymentId,omitempty"`

	//
	PaymentTransactionNumber string `json:"PaymentTransactionNumber,omitempty"`

	//
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//
	Success bool `json:"Success,omitempty"`

	//
	TotalDeltaMrr float64 `json:"TotalDeltaMrr,omitempty"`

	//
	TotalDeltaTcv float64 `json:"TotalDeltaTcv,omitempty"`
}

type Amendment

type Amendment struct {

	//  Determines whether the subscription is automatically renewed, or whether it expires at the end of the term and needs to be manually renewed. **Required:** For amendment of type TermsAndConditions when changing the automatic renewal status of a subscription.   **Values**: true, false
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  A unique alphanumeric string that identifies the amendment.   **Character limit**: 50  **Values**: one of the following:  - `null` generates a value automatically - A string
	Code string `json:"Code,omitempty"`

	//  The date when the amendment's changes become effective for billing purposes.
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	//  The user ID of the person who created the amendment.   **Character limit**: 32  **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the amendment was created.   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The length of the period for the current subscription term. This field can be updated when Status is `Draft`.  **Required**: Only if the value of the Type field is set to `TermsAndConditions` and TermType is set to `TERMED`. This field is not required if `TermType` is set to `EVERGREEN`.   **Values**: a valid number
	CurrentTerm int64 `json:"CurrentTerm,omitempty"`

	//  The period type for the current subscription term.  **Values**:  - `Month` (default) - `Year` - `Day` - `Week`   **Note**:  - This field can be updated when Status is `Draft`. - This field is used with the CurrentTerm field to specify the current subscription term.
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	//  The date when the customer accepts the amendment's changes to the subscription. Use this field if [Zuora is configured to require customer acceptance in Z-Billing](https://knowledgecenter.zuora.com/CB_Billing/W_Billing_and_Payments_Settings/Define_Default_Subscription_Settings). **Required**: Only if the value of the Status field is set to PendingAcceptance.
	CustomerAcceptanceDate time.Time `json:"CustomerAcceptanceDate,omitempty"`

	//  A description of the amendment.   **Character limit**: 500  **Values**: maximum 500 characters
	Description string `json:"Description,omitempty"`

	//  The ID of the account that the subscription is being transferred to.   **Character limit**: 32  **Values**: a valid account ID
	DestinationAccountId string `json:"DestinationAccountId,omitempty"`

	//  The ID of the invoice that the subscription is being transferred to.   **Character limit**: 32  **Values**: a valid invoice ID
	DestinationInvoiceOwnerId string `json:"DestinationInvoiceOwnerId,omitempty"`

	//  The date when the amendment's changes take effective. This field validates that the amendment's changes are within valid ranges of products and product rate plans. **Required**: For the cancellation amendments. Optional for other types of amendments.
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//  The name of the amendment.   **Character limit**: 100  **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	RatePlanData AmendmentRatePlanData `json:"RatePlanData,omitempty"`

	//  Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. **Required**: If TermType is Termed  **Values**: RENEW_WITH_SPECIFIC_TERM (default), RENEW_TO_EVERGREEN
	RenewalSetting string `json:"RenewalSetting,omitempty"`

	//  The term of renewal for the amended subscription. This field can be updated when Status is `Draft`. **Required**: Only if the value of the `Type` field is set to `TermsAndConditions`.    **Values:** a valid number
	RenewalTerm int64 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. This field is used with the RenewalTerm field to specify the subscription renewal term.   **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when service is activated. Use this field if [Zuora is configured to require service activation in Z-Billing](https://knowledgecenter.zuora.com/CB_Billing/W_Billing_and_Payments_Settings/Define_Default_Subscription_Settings).  **Required**: Only if the value of the `Status` field is set to `PendingActivation`.
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	// The date when the UpdateProduct amendment takes effect. This field is only applicable if there is already a future-dated UpdateProduct amendment on the subscription.   **Required**: Only for the UpdateProduct amendments if there is already a future-dated UpdateProduct amendment on the subscription.
	SpecificUpdateDate time.Time `json:"SpecificUpdateDate,omitempty"`

	//  The status of the amendment. Type: string (enum)    **Values**: one of the following:  - Draft (default, if left null) - Pending Activation - Pending Acceptance - Completed
	Status string `json:"Status,omitempty"`

	//  The ID of the subscription that the amendment changes.   **Character limit**: 32  **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The date when the new terms and conditions take effect. **Required**: Only if the value of the Type field is set to TermsAndConditions.
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  Indicates if the subscription isTERMED or EVERGREEN.  - A TERMED subscription has an expiration date, and must be manually renewed. - An EVERGREEN subscription doesn't have an expiration date, and must be manually ended.  **Required**: Only when as part of an amendment of type TermsAndConditions to change the term type of a subscription. Type: string  **Character limit**: 9  **Values**: TERMED, EVERGREEN
	TermType string `json:"TermType,omitempty"`

	//  The type of amendment.   **Character limit**: 18    **Values**: one of the following:  - Cancellation - NewProduct - OwnerTransfer - RemoveProduct - Renewal - UpdateProduct - TermsAndConditions - SuspendSubscription (This value is in **Limited Availability**.) - ResumeSubscription (This value is in **Limited Availability**.)
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the amendment.   **Character limit**: 32  **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the amendment was last updated.   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type AmendmentRatePlanData

type AmendmentRatePlanData struct {
	RatePlan RatePlan `json:"RatePlan,omitempty"`

	//
	RatePlanChargeData []RatePlanChargeDataInRatePlanData `json:"RatePlanChargeData,omitempty"`

	SubscriptionProductFeatureList SubscriptionProductFeatureList `json:"SubscriptionProductFeatureList,omitempty"`
}

A container for one `RatePlanData`.

type AmendmentsApi

type AmendmentsApi struct {
	Configuration *Configuration
}

func NewAmendmentsApi

func NewAmendmentsApi() *AmendmentsApi

func NewAmendmentsApiWithBasePath

func NewAmendmentsApiWithBasePath(basePath string) *AmendmentsApi

func (AmendmentsApi) GETAmendmentsByKey

func (a AmendmentsApi) GETAmendmentsByKey(amendmentKey string, entityId string, entityName string) (*GetAmendmentType, *APIResponse, error)

*

func (AmendmentsApi) GETAmendmentsBySubscriptionID

func (a AmendmentsApi) GETAmendmentsBySubscriptionID(subscriptionId string, entityId string, entityName string) (*GetAmendmentType, *APIResponse, error)

*

func (AmendmentsApi) ObjectDELETEAmendment

func (a AmendmentsApi) ObjectDELETEAmendment(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (AmendmentsApi) ObjectGETAmendment

func (a AmendmentsApi) ObjectGETAmendment(id string, entityId string, entityName string, fields string) (*ProxyGetAmendment, *APIResponse, error)

*

func (AmendmentsApi) ObjectPOSTAmendment

func (a AmendmentsApi) ObjectPOSTAmendment(createRequest ProxyCreateAmendment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (AmendmentsApi) ObjectPUTAmendment

func (a AmendmentsApi) ObjectPUTAmendment(id string, modifyRequest ProxyModifyAmendment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type ApplyCreditMemoType

type ApplyCreditMemoType struct {

	// Container for debit memos that the credit memo is applied to.
	DebitMemos []CreditMemoApplyDebitMemoRequestType `json:"debitMemos,omitempty"`

	// The date when the credit memo is applied.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Container for invoices that the credit memo is applied to.
	Invoices []CreditMemoApplyInvoiceRequestType `json:"invoices,omitempty"`
}

type ApplyPaymentType

type ApplyPaymentType struct {

	// Container for debit memos.
	DebitMemos []PaymentDebitMemoApplicationApplyRequestType `json:"debitMemos,omitempty"`

	// The date when the payment application takes effect, in `yyyy-mm-dd` format.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Container for invoices.
	Invoices []PaymentInvoiceApplicationApplyRequestType `json:"invoices,omitempty"`
}

type AttachmentsApi

type AttachmentsApi struct {
	Configuration *Configuration
}

func NewAttachmentsApi

func NewAttachmentsApi() *AttachmentsApi

func NewAttachmentsApiWithBasePath

func NewAttachmentsApiWithBasePath(basePath string) *AttachmentsApi

func (AttachmentsApi) DELETEAttachments

func (a AttachmentsApi) DELETEAttachments(attachmentId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (AttachmentsApi) GETAttachments

func (a AttachmentsApi) GETAttachments(attachmentId string, entityId string, entityName string) (*GetAttachmentResponseType, *APIResponse, error)

*

func (AttachmentsApi) GETAttachmentsList

func (a AttachmentsApi) GETAttachmentsList(objectType string, objectKey string, entityId string, entityName string, pageSize int32) (*GetAttachmentsResponseType, *APIResponse, error)

*

func (AttachmentsApi) POSTAttachments

func (a AttachmentsApi) POSTAttachments(associatedObjectType string, associatedObjectKey string, request PostAttachmentType, entityId string, entityName string, description string) (*PostAttachmentResponseType, *APIResponse, error)

*

func (AttachmentsApi) PUTAttachments

func (a AttachmentsApi) PUTAttachments(attachmentId string, entityId string, entityName string, request PutAttachmentType) (*CommonResponseType, *APIResponse, error)

*

type BillRunApi

type BillRunApi struct {
	Configuration *Configuration
}

func NewBillRunApi

func NewBillRunApi() *BillRunApi

func NewBillRunApiWithBasePath

func NewBillRunApiWithBasePath(basePath string) *BillRunApi

func (BillRunApi) ObjectDELETEBillRun

func (a BillRunApi) ObjectDELETEBillRun(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (BillRunApi) ObjectGETBillRun

func (a BillRunApi) ObjectGETBillRun(id string, entityId string, entityName string, fields string) (*ProxyGetBillRun, *APIResponse, error)

*

func (BillRunApi) ObjectPOSTBillRun

func (a BillRunApi) ObjectPOSTBillRun(createRequest ProxyCreateBillRun, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (BillRunApi) ObjectPUTBillRun

func (a BillRunApi) ObjectPUTBillRun(id string, modifyRequest ProxyModifyBillRun, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

  • CRUD: Post or Cancel Bill Run
  • **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com). ## Post a Bill Run Posting a bill run is an asynchronous operation. To post a bill run, the current bill run must have a status of `Completed`. When a bill run is posted, its status is changed to `PostInProgress`. Once all invoices for this bill run are posted then its status is changed to `Posted`. When you post a bill run and query the status of a bill run, you will get one of the following results `PostInProgress`, `Completed`, or `Posted`. If all invoices in the bill run are posted, then the status of the bill run is `Posted`. If one or more invoices fail to post, the status will change back to `Completed` and you will need to post the bill run again. ## Cancel a Bill Run Canceling a bill run is an asynchronous operation. When canceling a bill run, the logic is the same as when using the UI to cancel a bill run. You need to provide the `BillRunId`, and set the Status to `Canceled`. When canceling a bill run, consider the following: * Canceling a bill run with a `Completed` status. * Only the current bill run will be canceled. * Canceling a bill run with a `Pending` status. * When canceling an Ad-hoc bill run, only the current bill run will be canceled. * When canceling a scheduled bill, all scheduled bill runs will be canceled. The Cancel operation may not be successful. Its success depends on its current business validation. Only a bill run that has no posted invoices can be canceled. If any posted invoices belong to the bill run then an invalid value exception will be thrown with the message, \"The Bill Run cannot be Cancelled, There are Posted invoices.\" *
  • @param id Object id
  • @param modifyRequest
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *ProxyCreateOrModifyResponse

func (BillRunApi) POSTEmailBillingDocumentsfromBillRun

func (a BillRunApi) POSTEmailBillingDocumentsfromBillRun(billRunId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type BillingDocumentsApi

type BillingDocumentsApi struct {
	Configuration *Configuration
}

func NewBillingDocumentsApi

func NewBillingDocumentsApi() *BillingDocumentsApi

func NewBillingDocumentsApiWithBasePath

func NewBillingDocumentsApiWithBasePath(basePath string) *BillingDocumentsApi

func (BillingDocumentsApi) POSTGenerateBillingDocuments

func (a BillingDocumentsApi) POSTGenerateBillingDocuments(body PostGenerateBillingDocumentType, id string, entityId string, entityName string) (*GenerateBillingDocumentResponseType, *APIResponse, error)

*

type BillingPreviewResult

type BillingPreviewResult struct {

	// ID of the customer account to which the billing preview applies.
	AccountId string `json:"accountId,omitempty"`

	// An array of credit memo items returned as the result of the billing preivew request.  **Note:** The credit memo items are only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	CreditMemoItems []PostBillingPreviewCreditMemoItem `json:"creditMemoItems,omitempty"`

	// An array of invoice items returned as the result of the billing preview request.
	InvoiceItems []PostBillingPreviewInvoiceItem `json:"invoiceItems,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type BillingPreviewRunApi

type BillingPreviewRunApi struct {
	Configuration *Configuration
}

func NewBillingPreviewRunApi

func NewBillingPreviewRunApi() *BillingPreviewRunApi

func NewBillingPreviewRunApiWithBasePath

func NewBillingPreviewRunApiWithBasePath(basePath string) *BillingPreviewRunApi

func (BillingPreviewRunApi) GETBillingPreviewRun

func (a BillingPreviewRunApi) GETBillingPreviewRun(billingPreviewRunId string, entityId string, entityName string) (*GetBillingPreviewRunResponse, *APIResponse, error)

*

func (BillingPreviewRunApi) POSTBillingPreviewRun

func (a BillingPreviewRunApi) POSTBillingPreviewRun(request PostBillingPreviewRunParam, entityId string, entityName string) (*InlineResponse200, *APIResponse, error)

*

type CatalogApi

type CatalogApi struct {
	Configuration *Configuration
}

func NewCatalogApi

func NewCatalogApi() *CatalogApi

func NewCatalogApiWithBasePath

func NewCatalogApiWithBasePath(basePath string) *CatalogApi

func (CatalogApi) GETCatalog

func (a CatalogApi) GETCatalog(entityId string, entityName string, pageSize int32) (*GetCatalogType, *APIResponse, error)

*

func (CatalogApi) PUTCatalog

func (a CatalogApi) PUTCatalog(productId string, request PutCatalogType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type ChargeMetricsData

type ChargeMetricsData struct {

	//
	ChargeMetrics []NewChargeMetrics `json:"ChargeMetrics,omitempty"`
}

type ChargeRevenueSummariesApi

type ChargeRevenueSummariesApi struct {
	Configuration *Configuration
}

func NewChargeRevenueSummariesApi

func NewChargeRevenueSummariesApi() *ChargeRevenueSummariesApi

func NewChargeRevenueSummariesApiWithBasePath

func NewChargeRevenueSummariesApiWithBasePath(basePath string) *ChargeRevenueSummariesApi

func (ChargeRevenueSummariesApi) GETCRSByCRSNumber

func (a ChargeRevenueSummariesApi) GETCRSByCRSNumber(crsNumber string, entityId string, entityName string) (*GetChargeRsDetailType, *APIResponse, error)

*

func (ChargeRevenueSummariesApi) GETCRSByChargeID

func (a ChargeRevenueSummariesApi) GETCRSByChargeID(chargeKey string, entityId string, entityName string) (*GetChargeRsDetailType, *APIResponse, error)

*

type CommonResponseType

type CommonResponseType struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type CommunicationProfilesApi

type CommunicationProfilesApi struct {
	Configuration *Configuration
}

func NewCommunicationProfilesApi

func NewCommunicationProfilesApi() *CommunicationProfilesApi

func NewCommunicationProfilesApiWithBasePath

func NewCommunicationProfilesApiWithBasePath(basePath string) *CommunicationProfilesApi

func (CommunicationProfilesApi) ObjectGETCommunicationProfile

func (a CommunicationProfilesApi) ObjectGETCommunicationProfile(id string, entityId string, entityName string, fields string) (*ProxyGetCommunicationProfile, *APIResponse, error)

*

type Configuration

type Configuration struct {
	Username      string            `json:"userName,omitempty"`
	Password      string            `json:"password,omitempty"`
	APIKeyPrefix  map[string]string `json:"APIKeyPrefix,omitempty"`
	APIKey        map[string]string `json:"APIKey,omitempty"`
	Debug         bool              `json:"debug,omitempty"`
	DebugFile     string            `json:"debugFile,omitempty"`
	OAuthToken    string            `json:"oAuthToken,omitempty"`
	BasePath      string            `json:"basePath,omitempty"`
	Host          string            `json:"host,omitempty"`
	Scheme        string            `json:"scheme,omitempty"`
	AccessToken   string            `json:"accessToken,omitempty"`
	DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
	UserAgent     string            `json:"userAgent,omitempty"`
	APIClient     *APIClient
	Transport     *http.Transport
	Timeout       *time.Duration `json:"timeout,omitempty"`
}

func NewConfiguration

func NewConfiguration() *Configuration

func (*Configuration) AddDefaultHeader

func (c *Configuration) AddDefaultHeader(key string, value string)

func (*Configuration) GetAPIKeyWithPrefix

func (c *Configuration) GetAPIKeyWithPrefix(APIKeyIdentifier string) string

func (*Configuration) GetBasicAuthEncodedString

func (c *Configuration) GetBasicAuthEncodedString() string

type ConnectionsApi

type ConnectionsApi struct {
	Configuration *Configuration
}

func NewConnectionsApi

func NewConnectionsApi() *ConnectionsApi

func NewConnectionsApiWithBasePath

func NewConnectionsApiWithBasePath(basePath string) *ConnectionsApi

func (ConnectionsApi) POSTConnections

func (a ConnectionsApi) POSTConnections(apiAccessKeyId string, apiSecretAccessKey string, contentType string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type ContactsApi

type ContactsApi struct {
	Configuration *Configuration
}

func NewContactsApi

func NewContactsApi() *ContactsApi

func NewContactsApiWithBasePath

func NewContactsApiWithBasePath(basePath string) *ContactsApi

func (ContactsApi) ObjectDELETEContact

func (a ContactsApi) ObjectDELETEContact(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (ContactsApi) ObjectGETContact

func (a ContactsApi) ObjectGETContact(id string, entityId string, entityName string, fields string) (*ProxyGetContact, *APIResponse, error)

*

func (ContactsApi) ObjectPOSTContact

func (a ContactsApi) ObjectPOSTContact(createRequest ProxyCreateContact, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (ContactsApi) ObjectPUTContact

func (a ContactsApi) ObjectPUTContact(id string, modifyRequest ProxyModifyContact, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type CreateEntityResponseType

type CreateEntityResponseType struct {

	// The display name of the entity that is shown in the Zuora UI and APIs.
	DisplayName string `json:"displayName,omitempty"`

	// The entity Id.
	Id string `json:"id,omitempty"`

	// The locale that is used in this entity.
	Locale string `json:"locale,omitempty"`

	// The name of the entity.
	Name string `json:"name,omitempty"`

	// The Id of the parent entity.
	ParentId string `json:"parentId,omitempty"`

	// The status of the entity.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`

	// The Id of the tenant that the entity belongs to.
	TenantId string `json:"tenantId,omitempty"`

	// The time zone that is used in this entity.
	Timezone string `json:"timezone,omitempty"`
}

type CreateEntityType

type CreateEntityType struct {

	// The display name of the entity that is shown in the Zuora UI and APIs  **Note:** If you do not specify the display name in the request, the entity name is used as the display name.
	DisplayName string `json:"displayName,omitempty"`

	// The locale that is used in this entity.
	Locale string `json:"locale"`

	// The name of the entity that is the entity identifier and is unique across all entities in a multi-entity hierarchy.  **Note:** Only alphanumeric characters (letters A–Z and a–z, and digits 0–9), space, period, and hyphen are allowed to be used in entity names.
	Name string `json:"name"`

	// The Id of the entity under which you want to create an entity. You can get the parent entity Id by using the GET Entities call.
	ParentId string `json:"parentId"`

	// The time zone that is used in this entity.
	Timezone string `json:"timezone"`
}

type CreatePaymentType

type CreatePaymentType struct {

	// The ID of the customer account that the payment is created for.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the payment.
	Amount float64 `json:"amount"`

	// Additional information related to the payment.
	Comment string `json:"comment,omitempty"`

	// A currency defined in the web-based UI administrative settings.
	Currency string `json:"currency"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Container for debit memos.
	DebitMemos []PaymentDebitMemoApplicationCreateRequestType `json:"debitMemos,omitempty"`

	// The date when the payment takes effect, in `yyyy-mm-dd` format.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	FinanceInformation CreatePaymentTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the payment. When creating a payment, the ID must be a valid gateway instance name and this gateway must support the specific payment method. If not specified, the default gateway on the Account will be used.
	GatewayId string `json:"gatewayId,omitempty"`

	// Container for invoices.
	Invoices []PaymentInvoiceApplicationCreateRequestType `json:"invoices,omitempty"`

	// The unique ID of the payment method that the customer used to make the payment.
	PaymentMethodId string `json:"paymentMethodId"`

	// The transaction ID returned by the payment gateway. Use this field to reconcile payments between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The type of the payment.
	Type_ string `json:"type"`
}

type CreatePaymentTypeFinanceInformation

type CreatePaymentTypeFinanceInformation struct {

	// The accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCode string `json:"bankAccountAccountingCode,omitempty"`

	// Whether the payment was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The accounting code for the unapplied payment.
	UnappliedPaymentAccountingCode string `json:"unappliedPaymentAccountingCode,omitempty"`
}

Container for the finance information related to the payment.

type CreditBalanceAdjustmentsApi

type CreditBalanceAdjustmentsApi struct {
	Configuration *Configuration
}

func NewCreditBalanceAdjustmentsApi

func NewCreditBalanceAdjustmentsApi() *CreditBalanceAdjustmentsApi

func NewCreditBalanceAdjustmentsApiWithBasePath

func NewCreditBalanceAdjustmentsApiWithBasePath(basePath string) *CreditBalanceAdjustmentsApi

func (CreditBalanceAdjustmentsApi) ObjectGETCreditBalanceAdjustment

func (a CreditBalanceAdjustmentsApi) ObjectGETCreditBalanceAdjustment(id string, entityId string, entityName string, fields string) (*ProxyGetCreditBalanceAdjustment, *APIResponse, error)

*

type CreditMemoApplyDebitMemoItemRequestType

type CreditMemoApplyDebitMemoItemRequestType struct {

	// The amount that is applied to the specific item.
	Amount float64 `json:"amount"`

	// The ID of the credit memo item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the debit memo item that the credit memo item is applied to.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the debit memo taxation item that the credit memo taxation item is applied to.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type CreditMemoApplyDebitMemoRequestType

type CreditMemoApplyDebitMemoRequestType struct {

	// The credit memo amount to be applied to the debit memo.
	Amount float64 `json:"amount"`

	// The unique ID of the debit memo that the credit memo is applied to.
	DebitMemoId string `json:"debitMemoId"`

	// Container for items.
	Items []CreditMemoApplyDebitMemoItemRequestType `json:"items,omitempty"`
}

type CreditMemoApplyInvoiceItemRequestType

type CreditMemoApplyInvoiceItemRequestType struct {

	// The amount that is applied to the specific item.
	Amount float64 `json:"amount"`

	// The ID of the credit memo item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the invoice item that the credit memo item is applied to.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the invoice taxation item that the credit memo taxation item is applied to.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type CreditMemoApplyInvoiceRequestType

type CreditMemoApplyInvoiceRequestType struct {

	// The credit memo amount to be applied to the invoice.
	Amount float64 `json:"amount"`

	// The unique ID of the invoice that the credit memo is applied to.
	InvoiceId string `json:"invoiceId"`

	// Container for items.
	Items []CreditMemoApplyInvoiceItemRequestType `json:"items,omitempty"`
}

type CreditMemoFromChargeDetailType

type CreditMemoFromChargeDetailType struct {

	// The ID of the product rate plan charge that the credit memo is created from.
	ChargeId string `json:"chargeId"`

	// Comments about the product rate plan charge.
	Comment string `json:"comment,omitempty"`

	FinanceInformation CreditMemoFromChargeDetailTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The amount of the credit memo item.
	MemoItemAmount float64 `json:"memoItemAmount,omitempty"`
}

type CreditMemoFromChargeDetailTypeFinanceInformation

type CreditMemoFromChargeDetailTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`
}

Container for the finance information related to the product rate plan charge associated with the credit memo.

type CreditMemoFromChargeType

type CreditMemoFromChargeType struct {

	// The ID of the account associated with the credit memo.
	AccountId string `json:"accountId"`

	// Container for product rate plan charges.
	Charges []CreditMemoFromChargeDetailType `json:"charges,omitempty"`

	// Comments about the credit memo.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the credit memo takes effect.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`
}

type CreditMemoFromInvoiceType

type CreditMemoFromInvoiceType struct {

	// Whether the credit memo automatically applies to the invoice upon posting.
	AutoApplyToInvoiceUponPosting bool `json:"autoApplyToInvoiceUponPosting,omitempty"`

	// Comments about the credit memo.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the credit memo takes effect.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Whether the credit memo is excluded from the rule of automatically applying credit memos to invoices.
	ExcludeFromAutoApplyRules bool `json:"excludeFromAutoApplyRules,omitempty"`

	// The ID of the invoice that the credit memo is created from.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Container for items.
	Items []CreditMemoItemFromInvoiceItemType `json:"items,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`
}

type CreditMemoItemFromInvoiceItemType

type CreditMemoItemFromInvoiceItemType struct {

	// The amount of the invoice item.
	Amount float64 `json:"amount"`

	// Comments about the invoice item.
	Comment string `json:"comment,omitempty"`

	FinanceInformation CreditMemoItemFromInvoiceItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the invoice item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The service end date of the invoice item.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The service start date of the invoice item.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName"`

	// Container for taxation items.
	TaxItems []CreditMemoTaxItemFromInvoiceTaxItemType `json:"taxItems,omitempty"`

	// The definable unit that you measure when determining charges.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type CreditMemoItemFromInvoiceItemTypeFinanceInformation

type CreditMemoItemFromInvoiceItemTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`
}

Container for the finance information related to the invoice item.

type CreditMemoQueryType

type CreditMemoQueryType struct {

	// The ID of the account associated with the credit memo.
	AccountId string `json:"accountId"`
}

type CreditMemoResponseType

type CreditMemoResponseType struct {

	// The ID of the generated credit memo.
	Id string `json:"id,omitempty"`
}

type CreditMemoTaxItemFromInvoiceTaxItemType

type CreditMemoTaxItemFromInvoiceTaxItemType struct {

	// The amount of the credit memo taxation item.
	Amount float64 `json:"amount,omitempty"`

	FinanceInformation CreditMemoTaxItemFromInvoiceTaxItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The ID of the source taxation item.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date that the tax is applied to the credit memo, in `yyyy-mm-dd` format.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	TaxExemptAmount float64 `json:"taxExemptAmount,omitempty"`

	// The name of taxation.
	TaxName string `json:"taxName,omitempty"`

	// The tax rate applied to the credit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the credit memo.
	TaxRateType string `json:"taxRateType,omitempty"`
}

type CreditMemoTaxItemFromInvoiceTaxItemTypeFinanceInformation

type CreditMemoTaxItemFromInvoiceTaxItemTypeFinanceInformation struct {

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`
}

Container for the finance information related to the source taxation item.

type CreditMemoUnapplyDebitMemoItemRequestType

type CreditMemoUnapplyDebitMemoItemRequestType struct {

	// The amount that is unapplied from the specific item.
	Amount float64 `json:"amount"`

	// The ID of the credit memo item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the debit memo item that the credit memo item is unapplied from.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the debit memo taxation item that the credit memo taxation item is unapplied from.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type CreditMemoUnapplyDebitMemoRequestType

type CreditMemoUnapplyDebitMemoRequestType struct {

	// The credit memo amount to be unapplied from the debit memo.
	Amount float64 `json:"amount"`

	// The unique ID of the debit memo that the credit memo is unapplied from.
	DebitMemoId string `json:"debitMemoId"`

	// Container for items.
	Items []CreditMemoUnapplyDebitMemoItemRequestType `json:"items,omitempty"`
}

type CreditMemoUnapplyInvoiceItemRequestType

type CreditMemoUnapplyInvoiceItemRequestType struct {

	// The amount that is unapplied from the specific item.
	Amount float64 `json:"amount"`

	// The ID of the credit memo item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the invoice item that the credit memo item is unapplied from.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the invoice taxation item that the credit memo taxation item is unapplied from.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type CreditMemoUnapplyInvoiceRequestType

type CreditMemoUnapplyInvoiceRequestType struct {

	// The credit memo amount to be unapplied from the invoice.
	Amount float64 `json:"amount"`

	// The unique ID of the invoice that the credit memo is unapplied from.
	InvoiceId string `json:"invoiceId"`

	// Container for items.
	Items []CreditMemoUnapplyInvoiceItemRequestType `json:"items,omitempty"`
}

type CreditMemosApi

type CreditMemosApi struct {
	Configuration *Configuration
}

func NewCreditMemosApi

func NewCreditMemosApi() *CreditMemosApi

func NewCreditMemosApiWithBasePath

func NewCreditMemosApiWithBasePath(basePath string) *CreditMemosApi

func (CreditMemosApi) DELETECreditMemo

func (a CreditMemosApi) DELETECreditMemo(creditMemoId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemo

func (a CreditMemosApi) GETCreditMemo(creditMemoId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemoItem

func (a CreditMemosApi) GETCreditMemoItem(cmitemid string, creditMemoId string, entityId string, entityName string) (*GetCreditMemoItemType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemoItemPart

func (a CreditMemosApi) GETCreditMemoItemPart(partid string, itempartid string, creditMemoId string, entityId string, entityName string) (*GetCreditMemoItemPartType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemoItemParts

func (a CreditMemosApi) GETCreditMemoItemParts(partid string, creditMemoId string, entityId string, entityName string, pageSize int32) (*GetCreditMemoItemPartsCollectionType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemoItems

func (a CreditMemosApi) GETCreditMemoItems(creditMemoId string, entityId string, entityName string, pageSize int32, fieldsFilterable string, sort string) (*GetCreditMemoItemsListType, *APIResponse, error)

*

  • Get credit memo items
  • **Note:** The Advanced AR Settlement feature is in **Limited Availability**. This feature includes Unapplied Payments, Credit and Debit Memo, and Invoice Item Settlement. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the information about all items of a credit memo. A credit memo item is a single line item in a credit memo. *
  • @param creditMemoId The unique ID of a credit memo. For example, 8a8082e65b27f6c3015ba45ff82c7172.
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param fieldsFilterable This parameter restricts the data returned in the response. You can use this parameter to supply a dimension you want to filter on. A single filter uses the following form: *fieldsFilterable* `=` *field_value* Filters can be combined by using `&`. For example: *fieldsFilterable* `=` *field_value* `&` *fieldsFilterable* `=` *field_value* *fieldsFilterable* indicates the name of a supported field that you can use to filter the response data. The supported filterable fields of this operation are as below: - id - amount - appliedAmount - refundAmount - sku - skuName - serviceStartDate - serviceEndDate - sourceItemId - createdDate - createdById - updatedDate - updatedById - subscriptionId *field_value* indicates a valid value of the filterable field. If the type of the field value is string, you can set the field to `null` value for filtering. Then, you can get the response data with this field value being 'null'. For more information about these fields, see the field descriptions in the **Responses** section. Examples: - /creditmemos/402890245c7ca371015c7cb40ac30015/items?amount=100 - /creditmemos/402890245c7ca371015c7cb40ac30015/items?amount=100&sort=createdDate
  • @param sort This parameter restricts the order of the data returned in the response. You can use this parameter to supply a dimension you want to sort on. A sortable field uses the following form: *operator* *field_name* You can use at most two sortable fields in one URL path. Use a comma to separate sortable fields. For example: *operator* *field_name*, *operator* *field_name* *operator* is used to mark the order of sequencing. The operator is optional. If you only specify the sortable field without any operator, the response data is sorted in descending order by this field. - The `-` operator indicates an ascending order. - The `+` operator indicates a descending order. By default, the response data is displayed in descending order by updated date. *field_name* indicates the name of a sortable field. The supported sortable fields of this operation are as below: - id - amount - appliedAmount - refundAmount - sku - skuName - serviceStartDate - serviceEndDate - sourceItemId - createdDate - createdById - updatedDate - updatedById - subscriptionId Examples: - /creditmemos/402890245c7ca371015c7cb40ac30015/items?sort=createdDate - /creditmemos/402890245c7ca371015c7cb40ac30015/items?amount=100&sort=createdDate
  • @return *GetCreditMemoItemsListType

func (CreditMemosApi) GETCreditMemoPart

func (a CreditMemosApi) GETCreditMemoPart(partid string, creditMemoId string, entityId string, entityName string) (*GetCreditMemoPartType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemoParts

func (a CreditMemosApi) GETCreditMemoParts(creditMemoId string, entityId string, entityName string, pageSize int32) (*GetCreditMemoPartsCollectionType, *APIResponse, error)

*

func (CreditMemosApi) GETCreditMemos

func (a CreditMemosApi) GETCreditMemos(entityId string, entityName string, pageSize int32, fieldsFilterable string, sort string) (*GetCreditMemoCollectionType, *APIResponse, error)

*

  • Get credit memos
  • **Note:** The Advanced AR Settlement feature is in **Limited Availability**. This feature includes Unapplied Payments, Credit and Debit Memo, and Invoice Item Settlement. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the information about all credit memos. *
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param fieldsFilterable This parameter restricts the data returned in the response. You can use this parameter to supply a dimension you want to filter on. A single filter uses the following form: *fieldsFilterable* `=` *field_value* Filters can be combined by using `&`. For example: *fieldsFilterable* `=` *field_value* `&` *fieldsFilterable* `=` *field_value* *fieldsFilterable* indicates the name of a supported field that you can use to filter the response data. The supported filterable fields of this operation are as below: - number - accountID - currency - creditMemoDate - targetDate - status - amount - taxAmount - totalTaxExemptAmount - unappliedAmount - refundAmount - appliedAmount - referredInvoiceId - transferredToAccounting - createdDate - createdById - updatedDate - updatedById - autoApplyUponPosting - excludeFromAutoApplyRules *field_value* indicates a valid value of the filterable field. If the type of the field value is string, you can set the field to `null` value for filtering. Then, you can get the response data with this field value being 'null'. For more information about these fields, see the field descriptions in the **Responses** section. Examples: - /creditmemos?status=Processed - /creditmemos?referredInvoiceId=null&status=Draft - /creditmemos?status=Processed&type=External&sort=+number
  • @param sort This parameter restricts the order of the data returned in the response. You can use this parameter to supply a dimension you want to sort on. A sortable field uses the following form: *operator* *field_name* You can use at most two sortable fields in one URL path. Use a comma to separate sortable fields. For example: *operator* *field_name*, *operator* *field_name* *operator* is used to mark the order of sequencing. The operator is optional. If you only specify the sortable field without any operator, the response data is sorted in descending order by this field. - The `-` operator indicates an ascending order. - The `+` operator indicates a descending order. By default, the response data is displayed in descending order by credit memo number. *field_name* indicates the name of a sortable field. The supported sortable fields of this operation are as below: - number - accountID - creditMemoDate - targetDate - status - amount - taxAmount - totalTaxExemptAmount - unappliedAmount - refundAmount - appliedAmount - referredInvoiceId - transferredToAccounting - createdDate - createdById - updatedDate Examples: - /creditmemos?sort=+number - /creditmemos?status=Processed&sort=-number,+amount
  • @return *GetCreditMemoCollectionType

func (CreditMemosApi) POSTApplyCreditMemo

func (a CreditMemosApi) POSTApplyCreditMemo(body ApplyCreditMemoType, creditMemoId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) POSTCancelCreditMemo

func (a CreditMemosApi) POSTCancelCreditMemo(creditMemoId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) POSTCreditMemoFromInvoice

func (a CreditMemosApi) POSTCreditMemoFromInvoice(body CreditMemoFromInvoiceType, invoiceId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) POSTCreditMemoFromPrpc

func (a CreditMemosApi) POSTCreditMemoFromPrpc(body CreditMemoFromChargeType, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) POSTCreditMemoPDF

func (a CreditMemosApi) POSTCreditMemoPDF(creditMemoId string, entityId string, entityName string) (*PostMemoPdfResponse, *APIResponse, error)

*

func (CreditMemosApi) POSTEmailCreidtMemo

func (a CreditMemosApi) POSTEmailCreidtMemo(request PostCreditMemoEmailRequestType, creditMemoId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (CreditMemosApi) POSTPostCreditMemo

func (a CreditMemosApi) POSTPostCreditMemo(creditMemoId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) POSTQueryCreditMemos

func (a CreditMemosApi) POSTQueryCreditMemos(body CreditMemoQueryType, entityId string, entityName string, pageSize int32) (*GetCreditMemoCollectionType, *APIResponse, error)

*

func (CreditMemosApi) POSTRefundCreditMemo

func (a CreditMemosApi) POSTRefundCreditMemo(body PostNonRefRefundType, creditmemoId string, entityId string, entityName string) (*GetRefundCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) POSTUnapplyCreditMemo

func (a CreditMemosApi) POSTUnapplyCreditMemo(body UnapplyCreditMemoType, creditMemoId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

func (CreditMemosApi) PUTUpdateCreditMemo

func (a CreditMemosApi) PUTUpdateCreditMemo(body PutCreditMemoType, creditMemoId string, entityId string, entityName string) (*GetCreditMemoType, *APIResponse, error)

*

type CustomExchangeRatesApi

type CustomExchangeRatesApi struct {
	Configuration *Configuration
}

func NewCustomExchangeRatesApi

func NewCustomExchangeRatesApi() *CustomExchangeRatesApi

func NewCustomExchangeRatesApiWithBasePath

func NewCustomExchangeRatesApiWithBasePath(basePath string) *CustomExchangeRatesApi

func (CustomExchangeRatesApi) GETCustomExchangeRates

func (a CustomExchangeRatesApi) GETCustomExchangeRates(currency string, startDate string, endDate string, entityId string, entityName string) (*GetCustomExchangeRatesType, *APIResponse, error)

*

type DebitMemoFromChargeDetailType

type DebitMemoFromChargeDetailType struct {

	// The ID of the product rate plan charge that the debit memo is created from.
	ChargeId string `json:"chargeId"`

	// Comments about the product rate plan charge.
	Comment string `json:"comment,omitempty"`

	FinanceInformation DebitMemoFromChargeDetailTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The amount of the debit memo item.
	MemoItemAmount float64 `json:"memoItemAmount,omitempty"`
}

type DebitMemoFromChargeDetailTypeFinanceInformation

type DebitMemoFromChargeDetailTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`
}

Container for the finance information related to the product rate plan charge associated with the debit memo.

type DebitMemoFromChargeType

type DebitMemoFromChargeType struct {

	// The ID of the account associated with the debit memo.
	AccountId string `json:"accountId"`

	// Container for product rate plan charges.
	Charges []DebitMemoFromChargeDetailType `json:"charges,omitempty"`

	// Comments about the debit memo.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the debit memo takes effect.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`
}

type DebitMemoFromInvoiceType

type DebitMemoFromInvoiceType struct {

	// Comments about the debit memo.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the debit memo takes effect.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// The ID of the invoice that the debit memo is created from.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Container for items.
	Items []DebitMemoItemFromInvoiceItemType `json:"items,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`
}

type DebitMemoItemFromInvoiceItemType

type DebitMemoItemFromInvoiceItemType struct {

	// The amount of the invoice item.
	Amount float64 `json:"amount"`

	// Comments about the invoice item.
	Comment string `json:"comment,omitempty"`

	FinanceInformation DebitMemoItemFromInvoiceItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the invoice item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The service end date of the debit memo item.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The service start date of the debit memo item.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName"`

	// Container for taxation items.
	TaxItems []DebitMemoTaxItemFromInvoiceTaxItemType `json:"taxItems,omitempty"`

	// The definable unit that you measure when determining charges.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type DebitMemoItemFromInvoiceItemTypeFinanceInformation

type DebitMemoItemFromInvoiceItemTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`
}

Container for the finance information related to the invoice item.

type DebitMemoTaxItemFromInvoiceTaxItemType

type DebitMemoTaxItemFromInvoiceTaxItemType struct {

	// The amount of the debit memo taxation item.
	Amount float64 `json:"amount,omitempty"`

	FinanceInformation DebitMemoTaxItemFromInvoiceTaxItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The ID of the source taxation item.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date that the tax is applied to the debit memo, in `yyyy-mm-dd` format.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	TaxExemptAmount float64 `json:"taxExemptAmount,omitempty"`

	// The name of taxation.
	TaxName string `json:"taxName,omitempty"`

	// The tax rate applied to the debit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the debit memo.
	TaxRateType string `json:"taxRateType,omitempty"`
}

type DebitMemoTaxItemFromInvoiceTaxItemTypeFinanceInformation

type DebitMemoTaxItemFromInvoiceTaxItemTypeFinanceInformation struct {

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`
}

Container for the finance information related to the source taxation item.

type DebitMemosApi

type DebitMemosApi struct {
	Configuration *Configuration
}

func NewDebitMemosApi

func NewDebitMemosApi() *DebitMemosApi

func NewDebitMemosApiWithBasePath

func NewDebitMemosApiWithBasePath(basePath string) *DebitMemosApi

func (DebitMemosApi) DELETEDebitMemo

func (a DebitMemosApi) DELETEDebitMemo(debitMemoId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (DebitMemosApi) GETDebitMemo

func (a DebitMemosApi) GETDebitMemo(debitMemoId string, entityId string, entityName string) (*GetDebitMemoType, *APIResponse, error)

*

func (DebitMemosApi) GETDebitMemoItem

func (a DebitMemosApi) GETDebitMemoItem(dmitemid string, debitMemoId string, entityId string, entityName string) (*GetDebitMemoItemType, *APIResponse, error)

*

func (DebitMemosApi) GETDebitMemoItems

func (a DebitMemosApi) GETDebitMemoItems(debitMemoId string, entityId string, entityName string, pageSize int32, fieldsFilterable string, sort string) (*GetDebitMemoItemCollectionType, *APIResponse, error)

*

  • Get debit memo items
  • **Note:** The Advanced AR Settlement feature is in **Limited Availability**. This feature includes Unapplied Payments, Credit and Debit Memo, and Invoice Item Settlement. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the information about all items of a debit memo. A debit memo item is a single line item in a debit memo. *
  • @param debitMemoId The unique ID of a debit memo. For example, 8a8082e65b27f6c3015ba419f3c2644e.
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param fieldsFilterable This parameter restricts the data returned in the response. You can use this parameter to supply a dimension you want to filter on. A single filter uses the following form: *fieldsFilterable* `=` *field_value* Filters can be combined by using `&`. For example: *fieldsFilterable* `=` *field_value* `&` *fieldsFilterable* `=` *field_value* *fieldsFilterable* indicates the name of a supported field that you can use to filter the response data. The supported filterable fields of this operation are as below: - id - amount - beAppliedAmount - sku - skuName - serviceStartDate - serviceEndDate - sourceItemId - createdDate - createdById - updatedDate - updatedById - subscriptionId *field_value* indicates a valid value of the filterable field. If the type of the field value is string, you can set the field to `null` value for filtering. Then, you can get the response data with this field value being 'null'. For more information about these fields, see the field descriptions in the **Responses** section. Examples: - /debitmemos/402890245c7ca371015c7cb40b28001f/items?amount=100 - /debitmemos/402890245c7ca371015c7cb40b28001f/items?amount=100&sort=createdDate
  • @param sort This parameter restricts the order of the data returned in the response. You can use this parameter to supply a dimension you want to sort on. A sortable field uses the following form: *operator* *field_name* You can use at most two sortable fields in one URL path. Use a comma to separate sortable fields. For example: *operator* *field_name*, *operator* *field_name* *operator* is used to mark the order of sequencing. The operator is optional. If you only specify the sortable field without any operator, the response data is sorted in descending order by this field. - The `-` operator indicates an ascending order. - The `+` operator indicates a descending order. By default, the response data is displayed in descending order by updated date. *field_name* indicates the name of a sortable field. The supported sortable fields of this operation are as below: - id - amount - beAppliedAmount - sku - skuName - serviceStartDate - serviceEndDate - sourceItemId - createdDate - createdById - updatedDate - updatedById - subscriptionId Examples: - /debitmemos/402890245c7ca371015c7cb40b28001f/items?sort=createdDate - /debitmemos/402890245c7ca371015c7cb40b28001f/items?amount=100&sort=createdDate
  • @return *GetDebitMemoItemCollectionType

func (DebitMemosApi) GETDebitMemos

func (a DebitMemosApi) GETDebitMemos(entityId string, entityName string, pageSize int32, fieldsFilterable string, sort string) (*GetDebitMemoCollectionType, *APIResponse, error)

*

  • Get debit memos
  • **Note:** The Advanced AR Settlement feature is in **Limited Availability**. This feature includes Unapplied Payments, Credit and Debit Memo, and Invoice Item Settlement. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the information about all debit memos associated with all customer accounts. *
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param fieldsFilterable This parameter restricts the data returned in the response. You can use this parameter to supply a dimension you want to filter on. A single filter uses the following form: *fieldsFilterable* `=` *field_value* Filters can be combined by using `&`. For example: *fieldsFilterable* `=` *field_value* `&` *fieldsFilterable* `=` *field_value* *fieldsFilterable* indicates the name of a supported field that you can use to filter the response data. The supported filterable fields of this operation are as below: - number - accountID - debitMemoDate - targetDate - dueDate - currency - status - amount - taxAmount - totalTaxExemptAmount - balance - beAppliedAmount - referredInvoiceId - createdDate - createdById - updatedDate - updatedById *field_value* indicates a valid value of the filterable field. If the type of the field value is string, you can set the field to `null` value for filtering. Then, you can get the response data with this field value being 'null'. For more information about these fields, see the field descriptions in the **Responses** section. Examples: - /debitmemos?status=Processed - /debitmemos?referredInvoiceId=null&status=Draft - /debitmemos?status=Processed&type=External&sort=+number
  • @param sort This parameter restricts the order of the data returned in the response. You can use this parameter to supply a dimension you want to sort on. A sortable field uses the following form: *operator* *field_name* You can use at most two sortable fields in one URL path. Use a comma to separate sortable fields. For example: *operator* *field_name*, *operator* *field_name* *operator* is used to mark the order of sequencing. The operator is optional. If you only specify the sortable field without any operator, the response data is sorted in descending order by this field. - The `-` operator indicates an ascending order. - The `+` operator indicates a descending order. By default, the response data is displayed in descending order by debit memo number. *field_name* indicates the name of a sortable field. The supported sortable fields of this operation are as below: - number - accountID - debitMemoDate - targetDate - dueDate - amount - taxAmount - totalTaxExemptAmount - balance - beAppliedAmount - referredInvoiceId - createdDate - createdById - updatedDate - updatedById Examples: - /debitmemos?sort=+number - /debitmemos?status=Processed&sort=-number,+amount
  • @return *GetDebitMemoCollectionType

func (DebitMemosApi) POSTCancelDebitMemo

func (a DebitMemosApi) POSTCancelDebitMemo(debitMemoId string, entityId string, entityName string) (*GetDebitMemoType, *APIResponse, error)

*

func (DebitMemosApi) POSTDebitMemoFromInvoice

func (a DebitMemosApi) POSTDebitMemoFromInvoice(invoiceId string, body DebitMemoFromInvoiceType, entityId string, entityName string) (*GetDebitMemoType, *APIResponse, error)

*

func (DebitMemosApi) POSTDebitMemoFromPrpc

func (a DebitMemosApi) POSTDebitMemoFromPrpc(body DebitMemoFromChargeType, entityId string, entityName string) (*GetDebitMemoType, *APIResponse, error)

*

func (DebitMemosApi) POSTDebitMemoPDF

func (a DebitMemosApi) POSTDebitMemoPDF(debitMemoId string, entityId string, entityName string) (*PostMemoPdfResponse, *APIResponse, error)

*

func (DebitMemosApi) POSTEmailDebitMemo

func (a DebitMemosApi) POSTEmailDebitMemo(request PostDebitMemoEmailType, debitMemoId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (DebitMemosApi) POSTPostDebitMemo

func (a DebitMemosApi) POSTPostDebitMemo(debitMemoId string, entityId string, entityName string) (*GetDebitMemoType, *APIResponse, error)

*

func (DebitMemosApi) PUTDebitMemo

func (a DebitMemosApi) PUTDebitMemo(body PutDebitMemoType, debitMemoId string, entityId string, entityName string) (*GetDebitMemoType, *APIResponse, error)

*

type DeletEntityResponseType

type DeletEntityResponseType struct {

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type DeleteResult

type DeleteResult struct {

	// If the delete failed, this contains an array of Error objects.
	Errors []ModelError `json:"errors,omitempty"`

	// ID of the deleted object.
	Id string `json:"id,omitempty"`

	// A boolean field indicating the success of the delete operation. If the delete was successful, it is `true`. Otherwise, `false`.
	Success bool `json:"success,omitempty"`
}

type DescribeApi

type DescribeApi struct {
	Configuration *Configuration
}

func NewDescribeApi

func NewDescribeApi() *DescribeApi

func NewDescribeApiWithBasePath

func NewDescribeApiWithBasePath(basePath string) *DescribeApi

func (DescribeApi) GETDescribe

func (a DescribeApi) GETDescribe(object string, entityId string, entityName string) (*APIResponse, error)

*

type ElectronicPaymentOptions

type ElectronicPaymentOptions struct {

	//
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`
}

type EntitiesApi

type EntitiesApi struct {
	Configuration *Configuration
}

func NewEntitiesApi

func NewEntitiesApi() *EntitiesApi

func NewEntitiesApiWithBasePath

func NewEntitiesApiWithBasePath(basePath string) *EntitiesApi

func (EntitiesApi) DELETEEntities

func (a EntitiesApi) DELETEEntities(id string, entityId string, entityName string) (*DeletEntityResponseType, *APIResponse, error)

*

func (EntitiesApi) GETEntities

func (a EntitiesApi) GETEntities(entityId string, entityName string, provisioned string) (*GetEntitiesResponseType, *APIResponse, error)

*

func (EntitiesApi) GETEntityById

func (a EntitiesApi) GETEntityById(id string, entityId string, entityName string) (*GetEntitiesResponseTypeWithId, *APIResponse, error)

*

func (EntitiesApi) POSTEntities

func (a EntitiesApi) POSTEntities(request CreateEntityType, entityId string, entityName string) (*CreateEntityResponseType, *APIResponse, error)

*

func (EntitiesApi) PUTEntities

func (a EntitiesApi) PUTEntities(id string, request UpdateEntityType, entityId string, entityName string) (*UpdateEntityResponseType, *APIResponse, error)

*

func (EntitiesApi) PUTProvisionEntity

func (a EntitiesApi) PUTProvisionEntity(id string, entityId string, entityName string) (*ProvisionEntityResponseType, *APIResponse, error)

*

type EntityConnectionsApi

type EntityConnectionsApi struct {
	Configuration *Configuration
}

func NewEntityConnectionsApi

func NewEntityConnectionsApi() *EntityConnectionsApi

func NewEntityConnectionsApiWithBasePath

func NewEntityConnectionsApiWithBasePath(basePath string) *EntityConnectionsApi

func (EntityConnectionsApi) GETEntityConnections

func (a EntityConnectionsApi) GETEntityConnections(entityId string, entityName string, pageSize int32, type_ string) (*GetEntityConnectionsResponseType, *APIResponse, error)

*

func (EntityConnectionsApi) POSTEntityConnections

func (a EntityConnectionsApi) POSTEntityConnections(entityId string, entityName string, request PostEntityConnectionsType) (*PostEntityConnectionsResponseType, *APIResponse, error)

*

func (EntityConnectionsApi) PUTEntityConnectionsAccept

func (a EntityConnectionsApi) PUTEntityConnectionsAccept(connectionId string, entityId string, entityName string) (*PutEntityConnectionsAcceptResponseType, *APIResponse, error)

*

func (EntityConnectionsApi) PUTEntityConnectionsDeny

func (a EntityConnectionsApi) PUTEntityConnectionsDeny(connectionId string, entityId string, entityName string) (*PutEntityConnectionsDenyResponseType, *APIResponse, error)

*

func (EntityConnectionsApi) PUTEntityConnectionsDisconnect

func (a EntityConnectionsApi) PUTEntityConnectionsDisconnect(connectionId string, entityId string, entityName string) (*PutEntityConnectionsDisconnectResponseType, *APIResponse, error)

*

type EventRevenueItemType

type EventRevenueItemType struct {

	// Name of the accounting period. The open-ended accounting period is named `Open-Ended`.
	AccountingPeriodName string `json:"accountingPeriodName"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`
}

type ExecuteResult

type ExecuteResult struct {

	//
	Errors []ModelError `json:"Errors,omitempty"`

	// The ID of the object in the call. The value is the same as the value you provide in the `ids` field for the request.
	Id string `json:"Id,omitempty"`

	// Returns `true` if the call was processed successfully, otherwise `false`.
	Success bool `json:"Success,omitempty"`
}

type ExportsApi

type ExportsApi struct {
	Configuration *Configuration
}

func NewExportsApi

func NewExportsApi() *ExportsApi

func NewExportsApiWithBasePath

func NewExportsApiWithBasePath(basePath string) *ExportsApi

func (ExportsApi) ObjectGETExport

func (a ExportsApi) ObjectGETExport(id string, entityId string, entityName string, fields string) (*ProxyGetExport, *APIResponse, error)

*

func (ExportsApi) ObjectPOSTExport

func (a ExportsApi) ObjectPOSTExport(createRequest ProxyCreateExport, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type ExternalPaymentOptions

type ExternalPaymentOptions struct {

	//
	Amount float64 `json:"Amount,omitempty"`

	//
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//
	GatewayOrderId string `json:"GatewayOrderId,omitempty"`

	//
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//
	ReferenceId string `json:"ReferenceId,omitempty"`
}

type FeaturesApi

type FeaturesApi struct {
	Configuration *Configuration
}

func NewFeaturesApi

func NewFeaturesApi() *FeaturesApi

func NewFeaturesApiWithBasePath

func NewFeaturesApiWithBasePath(basePath string) *FeaturesApi

func (FeaturesApi) ObjectDELETEFeature

func (a FeaturesApi) ObjectDELETEFeature(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (FeaturesApi) ObjectGETFeature

func (a FeaturesApi) ObjectGETFeature(id string, entityId string, entityName string, fields string) (*ProxyGetFeature, *APIResponse, error)

*

type FinanceInformation

type FinanceInformation struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The accounting code for deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The type associated with the deferred revenue accounting code, such as Deferred Revenue.
	DeferredRevenueAccountingCodeType string `json:"deferredRevenueAccountingCodeType,omitempty"`

	// The accounting code for recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The type associated with the recognized revenue accounting code, such as Sales Revenue or Sales Discount.
	RecognizedRevenueAccountingCodeType string `json:"recognizedRevenueAccountingCodeType,omitempty"`
}

Container for finance information of a rate plan charge.

type GatewayOption

type GatewayOption struct {

	//
	Name string `json:"name,omitempty"`

	//
	Value string `json:"value,omitempty"`
}

type GenerateBillingDocumentResponseType

type GenerateBillingDocumentResponseType struct {

	// Container for generated credit memos.  **Note:** This container is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	CreditMemos []CreditMemoResponseType `json:"creditMemos,omitempty"`

	// Container for generated invoics.
	Invoices []InvoiceResponseType `json:"invoices,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetAccountSummaryInvoiceType

type GetAccountSummaryInvoiceType struct {

	// Invoice amount before adjustments, discounts, and similar items.
	Amount string `json:"amount,omitempty"`

	// Balance due on the invoice.
	Balance string `json:"balance,omitempty"`

	// Due date as `yyyy-mm-dd`.
	DueDate time.Time `json:"dueDate,omitempty"`

	// Invoice ID.
	Id string `json:"id,omitempty"`

	// Invoice date as `yyyy-mm-dd`.
	InvoiceDate time.Time `json:"invoiceDate,omitempty"`

	// Invoice number.
	InvoiceNumber string `json:"invoiceNumber,omitempty"`

	// Invoice status - not the payment status of the invoice, just the status of the invoice itself. Possible values are: `Posted`, `Draft`, `Canceled`, `Error`.
	Status string `json:"status,omitempty"`
}

type GetAccountSummaryPaymentInvoiceType

type GetAccountSummaryPaymentInvoiceType struct {

	// Amount of payment applied to the invoice.
	AppliedPaymentAmount string `json:"appliedPaymentAmount,omitempty"`

	// Invoice ID.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Invoice number.
	InvoiceNumber string `json:"invoiceNumber,omitempty"`
}

type GetAccountSummaryPaymentType

type GetAccountSummaryPaymentType struct {

	// Effective date as `yyyy-mm-dd`.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Payment ID.
	Id string `json:"id,omitempty"`

	// Container for paid invoices for this subscription.
	PaidInvoices []GetAccountSummaryPaymentInvoiceType `json:"paidInvoices,omitempty"`

	// Payment number.
	PaymentNumber string `json:"paymentNumber,omitempty"`

	// Payment type; possible values are: `External`, `Electronic`.
	PaymentType string `json:"paymentType,omitempty"`

	// Payment status. Possible values are: `Draft`, `Processing`, `Processed`, `Error`, `Voided`, `Canceled`, `Posted`.
	Status string `json:"status,omitempty"`
}

type GetAccountSummarySubscriptionRatePlanType

type GetAccountSummarySubscriptionRatePlanType struct {

	// Product ID.
	ProductId string `json:"productId,omitempty"`

	// Product name.
	ProductName string `json:"productName,omitempty"`

	// Product Rate Plan ID.
	ProductRatePlanId string `json:"productRatePlanId,omitempty"`

	//
	ProductSku string `json:"productSku,omitempty"`

	// Rate plan name.
	RatePlanName string `json:"ratePlanName,omitempty"`
}

type GetAccountSummarySubscriptionType

type GetAccountSummarySubscriptionType struct {

	//
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	//
	OpportunityCloseDateQT string `json:"OpportunityCloseDate__QT,omitempty"`

	//
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	//
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	//
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	//
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	// If `true`, auto-renew is enabled. If `false`, auto-renew is disabled.
	AutoRenew bool `json:"autoRenew,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Subscription ID.
	Id string `json:"id,omitempty"`

	// Duration of the initial subscription term in whole months.
	InitialTerm string `json:"initialTerm,omitempty"`

	// Container for rate plans for this subscription.
	RatePlans []GetAccountSummarySubscriptionRatePlanType `json:"ratePlans,omitempty"`

	// Duration of the renewal term in whole months.
	RenewalTerm string `json:"renewalTerm,omitempty"`

	// Subscription status; possible values are: `Draft`, `PendingActivation`, `PendingAcceptance`, `Active`, `Cancelled`, `Expired`.
	Status string `json:"status,omitempty"`

	// Subscription Number.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Subscription start date.
	SubscriptionStartDate time.Time `json:"subscriptionStartDate,omitempty"`

	// End date of the subscription term. If the subscription is evergreen, this is either null or equal to the cancellation date, as appropriate.
	TermEndDate time.Time `json:"termEndDate,omitempty"`

	// Start date of the subscription term. If this is a renewal subscription, this date is different than the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType,omitempty"`
}

type GetAccountSummaryType

type GetAccountSummaryType struct {
	BasicInfo GetAccountSummaryTypeBasicInfo `json:"basicInfo,omitempty"`

	BillToContact GetAccountSummaryTypeBillToContact `json:"billToContact,omitempty"`

	// Container for invoices. Only returns the last 6 invoices.
	Invoices []GetAccountSummaryInvoiceType `json:"invoices,omitempty"`

	// Container for payments. Only returns the last 6 payments.
	Payments []GetAccountSummaryPaymentType `json:"payments,omitempty"`

	SoldToContact GetAccountSummaryTypeSoldToContact `json:"soldToContact,omitempty"`

	// Container for subscriptions.
	Subscriptions []GetAccountSummarySubscriptionType `json:"subscriptions,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	TaxInfo GetAccountSummaryTypeTaxInfo `json:"taxInfo,omitempty"`

	// Container for usage data. Only returns the last 6 months of usage.
	Usage []GetAccountSummaryUsageType `json:"usage,omitempty"`
}

type GetAccountSummaryTypeBasicInfo

type GetAccountSummaryTypeBasicInfo struct {

	// Account number.
	AccountNumber string `json:"accountNumber,omitempty"`

	// A list of additional email addresses to receive emailed invoices.
	AdditionalEmailAddresses []string `json:"additionalEmailAddresses,omitempty"`

	// Current outstanding balance.
	Balance string `json:"balance,omitempty"`

	// The alias name given to a batch. A string of 50 characters or less.
	Batch string `json:"batch,omitempty"`

	// Billing cycle day (BCD), the day of the month when a bill run generates invoices for the account.
	BillCycleDay string `json:"billCycleDay,omitempty"`

	// A currency value.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	DefaultPaymentMethod GetAccountSummaryTypeBasicInfoDefaultPaymentMethod `json:"defaultPaymentMethod,omitempty"`

	// Account ID.
	Id string `json:"id,omitempty"`

	// Whether the customer wants to receive invoices through email.
	InvoiceDeliveryPrefsEmail bool `json:"invoiceDeliveryPrefsEmail,omitempty"`

	// Whether the customer wants to receive printed invoices, such as through postal mail.
	InvoiceDeliveryPrefsPrint bool `json:"invoiceDeliveryPrefsPrint,omitempty"`

	// Date of the most recent invoice for the account; null if no invoice has ever been generated.
	LastInvoiceDate time.Time `json:"lastInvoiceDate,omitempty"`

	// Amount of the most recent payment collected for the account; null if no payment has ever been collected.
	LastPaymentAmount string `json:"lastPaymentAmount,omitempty"`

	// Date of the most recent payment collected for the account. Null if no payment has ever been collected.
	LastPaymentDate time.Time `json:"lastPaymentDate,omitempty"`

	// Account name.
	Name string `json:"name,omitempty"`

	// Account status; possible values are: `Active`, `Draft`, `Canceled`.
	Status string `json:"status,omitempty"`

	//
	Tags string `json:"tags,omitempty"`
}

Container for basic information about the account.

type GetAccountSummaryTypeBasicInfoDefaultPaymentMethod

type GetAccountSummaryTypeBasicInfoDefaultPaymentMethod struct {

	// Two-digit numeric card expiration month as `mm`.
	CreditCardExpirationMonth string `json:"creditCardExpirationMonth,omitempty"`

	// Four-digit card expiration year as `yyyy`.
	CreditCardExpirationYear string `json:"creditCardExpirationYear,omitempty"`

	// Credit card number, 16 characters or less, displayed in masked format (e.g., ************1234).
	CreditCardNumber string `json:"creditCardNumber,omitempty"`

	// Possible values are: `Visa`, `MasterCard`, `AmericanExpress`, `Discover`.
	CreditCardType string `json:"creditCardType,omitempty"`

	// The ID of the credit card payment method associated with this account.
	Id string `json:"id,omitempty"`

	//
	PaymentMethodType string `json:"paymentMethodType,omitempty"`
}

type GetAccountSummaryTypeBillToContact

type GetAccountSummaryTypeBillToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// A valid country name or abbreviation.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. Zuora Tax uses this information to calculate county taxation.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName,omitempty"`

	// Contact ID.
	Id string `json:"id,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName,omitempty"`

	// State name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// A region string, defined in your Zuora tax rules.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for bill-to contact information.

type GetAccountSummaryTypeSoldToContact

type GetAccountSummaryTypeSoldToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// A valid country name or abbreviation
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. Zuora Tax uses this information to calculate county taxation.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName,omitempty"`

	// Contact ID.
	Id string `json:"id,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName,omitempty"`

	// State name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// A region string, defined in your Zuora tax rules.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for sold-to contact information; uses the same structure as `billToContact`.

type GetAccountSummaryTypeTaxInfo

type GetAccountSummaryTypeTaxInfo struct {

	// EU Value Added Tax ID.
	VATId string `json:"VATId,omitempty"`

	// Unique code that identifies a company account in Avalara.
	CompanyCode string `json:"companyCode,omitempty"`

	// ID of the customer tax exemption certificate.
	ExemptCertificateId string `json:"exemptCertificateId,omitempty"`

	// Type of tax exemption certificate that the customer holds.
	ExemptCertificateType string `json:"exemptCertificateType,omitempty"`

	// Description of the tax exemption certificate that the customer holds.
	ExemptDescription string `json:"exemptDescription,omitempty"`

	// Date when the customer tax exemption starts.
	ExemptEffectiveDate time.Time `json:"exemptEffectiveDate,omitempty"`

	// Date when the customer tax exemption expires.
	ExemptExpirationDate time.Time `json:"exemptExpirationDate,omitempty"`

	// Jurisdiction in which the customer tax exemption certificate was issued.
	ExemptIssuingJurisdiction string `json:"exemptIssuingJurisdiction,omitempty"`

	// Status of the account tax exemption.
	ExemptStatus string `json:"exemptStatus,omitempty"`
}

Container for tax exempt information, used to establish the tax exempt status of a customer account.

type GetAccountSummaryUsageType

type GetAccountSummaryUsageType struct {

	// Number of units used.
	Quantity string `json:"quantity,omitempty"`

	// The start date of a usage period as `yyyy-mm`. Zuora uses this field value to determine the usage date.
	StartDate time.Time `json:"startDate,omitempty"`

	// Unit by which consumption is measured, as configured in the Billing Settings section of the web-based UI.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type GetAccountType

type GetAccountType struct {
	BasicInfo GetAccountTypeBasicInfo `json:"basicInfo,omitempty"`

	BillToContact GetAccountTypeBillToContact `json:"billToContact,omitempty"`

	BillingAndPayment GetAccountTypeBillingAndPayment `json:"billingAndPayment,omitempty"`

	Metrics GetAccountTypeMetrics `json:"metrics,omitempty"`

	SoldToContact GetAccountTypeSoldToContact `json:"soldToContact,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	TaxInfo GetAccountSummaryTypeTaxInfo `json:"taxInfo,omitempty"`
}

type GetAccountTypeBasicInfo

type GetAccountTypeBasicInfo struct {

	// Account number.
	AccountNumber string `json:"accountNumber,omitempty"`

	// The alias name given to a batch. A string of 50 characters or less.
	Batch string `json:"batch,omitempty"`

	// ID of a communication profile.
	CommunicationProfileId string `json:"communicationProfileId,omitempty"`

	// CRM account ID for the account, 100 characters or less.
	CrmId string `json:"crmId,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Account ID.
	Id string `json:"id,omitempty"`

	// Invoice template ID, configured in Billing Settings in the Zuora UI.
	InvoiceTemplateId string `json:"invoiceTemplateId,omitempty"`

	// Account name.
	Name string `json:"name,omitempty"`

	// Notes associated with the account, up to 65,535 characters.
	Notes string `json:"notes,omitempty"`

	// Account status; possible values are: `Active`, `Draft`, `Canceled`.
	Status string `json:"status,omitempty"`

	//
	Tags string `json:"tags,omitempty"`
}

Container for basic information about the account.

type GetAccountTypeBillToContact

type GetAccountTypeBillToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country name or abbreviation.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. Zuora Tax uses this information to calculate county taxation.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName,omitempty"`

	// Home phone number, 40 characters or less.
	HomePhone string `json:"homePhone,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName,omitempty"`

	// Mobile phone number, 40 characters or less.
	MobilePhone string `json:"mobilePhone,omitempty"`

	// Nickname for this contact.
	Nickname string `json:"nickname,omitempty"`

	// Other phone number, 40 characters or less.
	OtherPhone string `json:"otherPhone,omitempty"`

	// Possible values are: `Work`, `Mobile`, `Home`, `Other`.
	OtherPhoneType string `json:"otherPhoneType,omitempty"`

	// Personal email address, 80 characters or less.
	PersonalEmail string `json:"personalEmail,omitempty"`

	// State name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// A region string, defined in your Zuora tax rules.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for bill-to contact information.

type GetAccountTypeBillingAndPayment

type GetAccountTypeBillingAndPayment struct {

	// A list of additional email addresses to receive emailed invoices.
	AdditionalEmailAddresses []string `json:"additionalEmailAddresses,omitempty"`

	// Billing cycle day (BCD), the day of the month when a bill run generates invoices for the account.
	BillCycleDay string `json:"billCycleDay,omitempty"`

	// A currency defined in the web-based UI administrative settings.
	Currency string `json:"currency,omitempty"`

	// Whether the customer wants to receive invoices through email.
	InvoiceDeliveryPrefsEmail bool `json:"invoiceDeliveryPrefsEmail,omitempty"`

	// Whether the customer wants to receive printed invoices, such as through postal mail.
	InvoiceDeliveryPrefsPrint bool `json:"invoiceDeliveryPrefsPrint,omitempty"`

	// The name of the payment gateway instance. If null or left unassigned, the Account will use the Default Gateway.
	PaymentGateway string `json:"paymentGateway,omitempty"`

	// A payment-terms indicator defined in the web-based UI administrative settings, e.g., \"Net 30\".
	PaymentTerm string `json:"paymentTerm,omitempty"`
}

Container for billing and payment information for the account.

type GetAccountTypeMetrics

type GetAccountTypeMetrics struct {

	// The customer's total invoice balance minus credit balance.
	Balance string `json:"balance,omitempty"`

	// Future expected MRR that accounts for future upgrades, downgrades, upsells and cancellations.
	ContractedMrr string `json:"contractedMrr,omitempty"`

	// Current credit balance.
	CreditBalance string `json:"creditBalance,omitempty"`

	// Total of all open invoices.
	TotalInvoiceBalance string `json:"totalInvoiceBalance,omitempty"`
}

Container for account metrics.

type GetAccountTypeSoldToContact

type GetAccountTypeSoldToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country name or abbreviation.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. Zuora tax uses this information to calculate county taxation.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName,omitempty"`

	// Home phone number, 40 characters or less.
	HomePhone string `json:"homePhone,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName,omitempty"`

	// Mobile phone number, 40 characters or less.
	MobilePhone string `json:"mobilePhone,omitempty"`

	// Nickname for this contact.
	Nickname string `json:"nickname,omitempty"`

	// Other phone number, 40 characters or less.
	OtherPhone string `json:"otherPhone,omitempty"`

	// Possible values are: `Work`, `Mobile`, `Home`, `Other`.
	OtherPhoneType string `json:"otherPhoneType,omitempty"`

	// Personal email address, 80 characters or less.
	PersonalEmail string `json:"personalEmail,omitempty"`

	// State name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// A region string, defined in your Zuora tax rules.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for sold-to contact information. Uses the same field structure as billToContact.

type GetAccountingCodeItemType

type GetAccountingCodeItemType struct {

	// The category associated with the accounting code.
	Category string `json:"category,omitempty"`

	// The ID of the user who created the accounting code.
	CreatedBy string `json:"createdBy,omitempty"`

	// Date and time when the accounting code was created.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Name of the account in your general ledger.  Field only available if you have Zuora Finance enabled.
	GlAccountName string `json:"glAccountName,omitempty"`

	// Account number in your general ledger.  Field only available if you have Zuora Finance enabled.
	GlAccountNumber string `json:"glAccountNumber,omitempty"`

	// ID of the accounting code.
	Id string `json:"id,omitempty"`

	// Name of the accounting code.
	Name string `json:"name,omitempty"`

	// Any optional notes for the accounting code.
	Notes string `json:"notes,omitempty"`

	// The accounting code status.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Accounting code type.   Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	Type_ string `json:"type,omitempty"`

	// The ID of the user who last updated the accounting code.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// Date and time when the accounting code was last updated.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetAccountingCodeItemWithoutSuccessType

type GetAccountingCodeItemWithoutSuccessType struct {

	// The category associated with the accounting code.
	Category string `json:"category,omitempty"`

	// The ID of the user who created the accounting code.
	CreatedBy string `json:"createdBy,omitempty"`

	// Date and time when the accounting code was created.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Name of the account in your general ledger.  Field only available if you have Zuora Finance enabled.
	GlAccountName string `json:"glAccountName,omitempty"`

	// Account number in your general ledger.  Field only available if you have Zuora Finance enabled.
	GlAccountNumber string `json:"glAccountNumber,omitempty"`

	// ID of the accounting code.
	Id string `json:"id,omitempty"`

	// Name of the accounting code.
	Name string `json:"name,omitempty"`

	// Any optional notes for the accounting code.
	Notes string `json:"notes,omitempty"`

	// The accounting code status.
	Status string `json:"status,omitempty"`

	// Accounting code type.   Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	Type_ string `json:"type,omitempty"`

	// The ID of the user who last updated the accounting code.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// Date and time when the accounting code was last updated.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetAccountingCodesType

type GetAccountingCodesType struct {

	// An array of all the accounting codes in your chart of accounts. Each accounting code has the following fields.
	AccountingCodes []GetAccountingCodeItemWithoutSuccessType `json:"accountingCodes,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetAccountingPeriodFileIdsType

type GetAccountingPeriodFileIdsType struct {

	// File ID of the Accounts Receivable Aging Account Detail report.
	AccountsReceivableAccountAgingDetailExportFileId string `json:"accountsReceivableAccountAgingDetailExportFileId,omitempty"`

	// File ID of the Accounts Receivable Aging Invoice Detail report.
	AccountsReceivableInvoiceAgingDetailExportFileId string `json:"accountsReceivableInvoiceAgingDetailExportFileId,omitempty"`

	// File ID of the Accounts Receivable Detail report.
	ArRollForwardDetailExportFileId string `json:"arRollForwardDetailExportFileId,omitempty"`

	// File ID of the Realized Gain and Loss Detail report.  Returned only if you have Foreign Currency Conversion enabled.
	FxRealizedGainAndLossDetailExportFileId string `json:"fxRealizedGainAndLossDetailExportFileId,omitempty"`

	// File ID of the Unrealized Gain and Loss Detail report.  Returned only if you have Foreign Currency Conversion enabled
	FxUnrealizedGainAndLossDetailExportFileId string `json:"fxUnrealizedGainAndLossDetailExportFileId,omitempty"`

	// File ID of the Revenue Detail report in CSV format.
	RevenueDetailCsvFileId string `json:"revenueDetailCsvFileId,omitempty"`

	// File ID of the Revenue Detail report in XLSX format.
	RevenueDetailExcelFileId string `json:"revenueDetailExcelFileId,omitempty"`

	// File ID of a report containing all unprocessed charges for the accounting period.
	UnprocessedChargesFileId string `json:"unprocessedChargesFileId,omitempty"`
}

type GetAccountingPeriodType

type GetAccountingPeriodType struct {

	// ID of the user who created the accounting period.
	CreatedBy string `json:"createdBy,omitempty"`

	// Date and time when the accounting period was created.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The end date of the accounting period.
	EndDate time.Time `json:"endDate,omitempty"`

	// File IDs of the reports available for the accounting period. You can retrieve the reports by specifying the file ID in a [Get Files](https://knowledgecenter.zuora.com/DC_Developers/REST_API/B_REST_API_reference/Get_Files) REST API call.
	FileIds []GetAccountingPeriodFileIdsType `json:"fileIds,omitempty"`

	// Fiscal year of the accounting period.
	FiscalYear string `json:"fiscalYear,omitempty"`

	//
	FiscalQuarter int64 `json:"fiscal_quarter,omitempty"`

	// ID of the accounting period.
	Id string `json:"id,omitempty"`

	// Name of the accounting period.
	Name string `json:"name,omitempty"`

	// Any optional notes about the accounting period.
	Notes string `json:"notes,omitempty"`

	// Date and time that the trial balance was completed. If the trial balance status is `Pending`, `Processing`, or `Error`, this field is `null`.
	RunTrialBalanceEnd time.Time `json:"runTrialBalanceEnd,omitempty"`

	// If trial balance status is Error, an error message is returned in this field.
	RunTrialBalanceErrorMessage string `json:"runTrialBalanceErrorMessage,omitempty"`

	// Date and time that the trial balance was run. If the trial balance status is Pending, this field is null.
	RunTrialBalanceStart time.Time `json:"runTrialBalanceStart,omitempty"`

	// Status of the trial balance for the accounting period. Possible values:  * `Pending` * `Processing` * `Completed` * `Error`
	RunTrialBalanceStatus string `json:"runTrialBalanceStatus,omitempty"`

	// The start date of the accounting period.
	StartDate time.Time `json:"startDate,omitempty"`

	// Status of the accounting period. Possible values: * `Open` * `PendingClose` * `Closed`
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// ID of the user who last updated the accounting period.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// Date and time when the accounting period was last updated.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetAccountingPeriodWithoutSuccessType

type GetAccountingPeriodWithoutSuccessType struct {

	// ID of the user who created the accounting period.
	CreatedBy string `json:"createdBy,omitempty"`

	// Date and time when the accounting period was created.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The end date of the accounting period.
	EndDate time.Time `json:"endDate,omitempty"`

	// File IDs of the reports available for the accounting period. You can retrieve the reports by specifying the file ID in a [Get Files](https://knowledgecenter.zuora.com/DC_Developers/REST_API/B_REST_API_reference/Get_Files) REST API call.
	FileIds []GetAccountingPeriodFileIdsType `json:"fileIds,omitempty"`

	// Fiscal year of the accounting period.
	FiscalYear string `json:"fiscalYear,omitempty"`

	//
	FiscalQuarter int64 `json:"fiscal_quarter,omitempty"`

	// ID of the accounting period.
	Id string `json:"id,omitempty"`

	// Name of the accounting period.
	Name string `json:"name,omitempty"`

	// Any optional notes about the accounting period.
	Notes string `json:"notes,omitempty"`

	// Date and time that the trial balance was completed. If the trial balance status is `Pending`, `Processing`, or `Error`, this field is `null`.
	RunTrialBalanceEnd time.Time `json:"runTrialBalanceEnd,omitempty"`

	// If trial balance status is Error, an error message is returned in this field.
	RunTrialBalanceErrorMessage string `json:"runTrialBalanceErrorMessage,omitempty"`

	// Date and time that the trial balance was run. If the trial balance status is `Pending`, this field is `null`.
	RunTrialBalanceStart time.Time `json:"runTrialBalanceStart,omitempty"`

	// Status of the trial balance for the accounting period. Possible values:  * `Pending` * `Processing` * `Completed` * `Error`
	RunTrialBalanceStatus string `json:"runTrialBalanceStatus,omitempty"`

	// The start date of the accounting period.
	StartDate time.Time `json:"startDate,omitempty"`

	// Status of the accounting period. Possible values:  * `Open` * `PendingClose` * `Closed`
	Status string `json:"status,omitempty"`

	// D of the user who last updated the accounting period.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// Date and time when the accounting period was last updated.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetAccountingPeriodsType

type GetAccountingPeriodsType struct {

	// An array of all accounting periods on your tenant. The accounting periods are returned in ascending order of start date; that is, the latest period is returned first.
	AccountingPeriods []GetAccountingPeriodWithoutSuccessType `json:"accountingPeriods,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetAmendmentType

type GetAmendmentType struct {

	// Determines whether the subscription is automatically renewed, or whether it expires at the end of the term and needs to be manually renewed.
	AutoRenew bool `json:"autoRenew,omitempty"`

	// The rate plan ID on which changes are made. Only the Update or Remove amendment returns a base rate plan ID.
	BaseRatePlanId string `json:"baseRatePlanId,omitempty"`

	// The ID of the subscription based on which the amendment is created.
	BaseSubscriptionId string `json:"baseSubscriptionId,omitempty"`

	// The amendment code.
	Code string `json:"code,omitempty"`

	// The date when the amendment becomes effective for billing purposes, as `yyyy-mm-dd`.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate,omitempty"`

	// The length of the period for the current subscription term.
	CurrentTerm int64 `json:"currentTerm,omitempty"`

	// The period type for the current subscription term. Possible values are:  - Month - Year - Day - Week
	CurrentTermPeriodType string `json:"currentTermPeriodType,omitempty"`

	// The date when the customer accepts the amendment changes to the subscription, as `yyyy-mm-dd`.
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// Description of the amendment.
	Description string `json:"description,omitempty"`

	// The ID of the account that the subscription is being transferred to.
	DestinationAccountId string `json:"destinationAccountId,omitempty"`

	// The ID of the invoice that the subscription is being transferred to.
	DestinationInvoiceOwnerId string `json:"destinationInvoiceOwnerId,omitempty"`

	// The date when the amendment changes take effective.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// The amendment ID.
	Id string `json:"id,omitempty"`

	// The name of the amendment.
	Name string `json:"name,omitempty"`

	// The ID of the rate plan charge on which amendment is made. Only the Add or Update amendment returns a new rate plan ID.
	NewRatePlanId string `json:"newRatePlanId,omitempty"`

	// The ID of the subscription that the amendment changes.
	NewSubscriptionId string `json:"newSubscriptionId,omitempty"`

	// Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. Possible values are:  - RENEW_WITH_SPECIFIC_TERM - RENEW_TO_EVERGREEN
	RenewalSetting string `json:"renewalSetting,omitempty"`

	// The term of renewal for the amended subscription.
	RenewalTerm int64 `json:"renewalTerm,omitempty"`

	// The period type for the subscription renewal term. Possible values are:  - Month - Year - Day - Week
	RenewalTermPeriodType string `json:"renewalTermPeriodType,omitempty"`

	// The date when the subscription resumption takes effect, as `yyyy-mm-dd`.  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	ResumeDate time.Time `json:"resumeDate,omitempty"`

	// The date when service is activated, as `yyyy-mm-dd`.
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// The date when the Update Product amendment takes effect.  Only for the Update Product amendments if there is already a future-dated Update Product amendment on the subscription.
	SpecificUpdateDate time.Time `json:"specificUpdateDate,omitempty"`

	// The status of the amendment. Possible values are:  - Draft  - Pending Activation - Pending Acceptance - Completed
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The date when the subscription suspension takes effect, as `yyyy-mm-dd`.  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	SuspendDate time.Time `json:"suspendDate,omitempty"`

	// The date when the new terms and conditions take effect.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Indicates if the subscription is `TERMED` or `EVERGREEN`.
	TermType string `json:"termType,omitempty"`

	// Type of the amendment. Possible values are:  - Cancellation - NewProduct - OwnerTransfer - RemoveProduct - Renewal - UpdateProduct - TermsAndConditions
	Type_ string `json:"type,omitempty"`
}

type GetAttachmentResponseType

type GetAttachmentResponseType struct {

	// Zuora user id who added this attachment to the object.
	CreatedBy string `json:"createdBy,omitempty"`

	// Date and time when the attachment was added to the object.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// Description of the attachment.
	Description string `json:"description,omitempty"`

	// File type.
	FileContentType string `json:"fileContentType,omitempty"`

	// File id of the attached file.
	FileId string `json:"fileId,omitempty"`

	// Attachment file name.
	FileName string `json:"fileName,omitempty"`

	// Id of this attachment.
	Id string `json:"id,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Zuora user id who last updated the attachment.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// Date and time when the attachment was last updated.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetAttachmentResponseWithoutSuccessType

type GetAttachmentResponseWithoutSuccessType struct {

	// Zuora user id of who added this attachment to the object.
	CreatedBy string `json:"createdBy,omitempty"`

	// Date and time when the attachment was added to the object.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// Description of the attachment.
	Description string `json:"description,omitempty"`

	// Attachment file type.
	FileContentType string `json:"fileContentType,omitempty"`

	// File id of the attached file.
	FileId string `json:"fileId,omitempty"`

	// Attachment file name.
	FileName string `json:"fileName,omitempty"`

	// Zuora id of this attachement.
	Id string `json:"id,omitempty"`

	// Zuora user id who last updated the attachment.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// Date and time when the attachment was last updated.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetAttachmentsResponseType

type GetAttachmentsResponseType struct {

	// Container for one or more attachments.
	Attachments []GetAttachmentResponseWithoutSuccessType `json:"attachments,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetBillingPreviewRunResponse

type GetBillingPreviewRunResponse struct {

	//
	AssumeRenewal string `json:"assumeRenewal,omitempty"`

	// The customer batch included in the billing preview run.
	Batch string `json:"batch,omitempty"`

	// The charge types excluded from the forecast run.
	ChargeTypeToExclude string `json:"chargeTypeToExclude,omitempty"`

	// The ID of the user who created the billing preview run.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the billing preview run was created.
	CreatedDate string `json:"createdDate,omitempty"`

	// The date and time when the billing preview run completes.
	EndDate string `json:"endDate,omitempty"`

	// The error message generated by a failed billing preview run.
	ErrorMessage string `json:"errorMessage,omitempty"`

	// Indicates if evergreen subscriptions are included in the billing preview run.
	IncludingEvergreenSubscription bool `json:"includingEvergreenSubscription,omitempty"`

	// The URL of the zipped CSV result file generated by the billing preview run. This file contains the preview invoice item data and credit memo item data for the specified customers.  **Note:** The credit memo item data is only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	ResultFileUrl string `json:"resultFileUrl,omitempty"`

	// The run number of the billing preview run.
	RunNumber string `json:"runNumber,omitempty"`

	// The date and time when the billing preview run starts.
	StartDate string `json:"startDate,omitempty"`

	// The status of the >billing preview run.  **Possible values:**   * 0: Pending * 1: Processing * 2: Completed * 3: Error * 4: Canceled
	Status string `json:"status,omitempty"`

	// The number of accounts for which preview invoice item data and credit memo item data was successfully generated during the billing preview run.  **Note:** The credit memo item data is only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	SucceededAccounts int32 `json:"succeededAccounts,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The target date for the billing preview run.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The total number of accounts in the billing preview run.
	TotalAccounts int32 `json:"totalAccounts,omitempty"`

	// The ID of the user who last updated the billing preview run.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the billing preview run was last updated.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

get billingPreviewRun response

type GetCalloutHistoryVOsType

type GetCalloutHistoryVOsType struct {

	// A container for callout histories.
	CalloutHistories []GetCalloutHistoryVoType `json:"calloutHistories,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetCalloutHistoryVoType

type GetCalloutHistoryVoType struct {

	// The number of times the callout was retried.
	AttemptedNum string `json:"attemptedNum,omitempty"`

	// The time that the calloutHistory record was made.
	CreateTime string `json:"createTime,omitempty"`

	// The event category for the callout.
	EventCategory string `json:"eventCategory,omitempty"`

	// The context of the callout event.
	EventContext string `json:"eventContext,omitempty"`

	// The name of the notification.
	Notification string `json:"notification,omitempty"`

	// The request method set in notifications settings.
	RequestMethod string `json:"requestMethod,omitempty"`

	// The base url set in notifications settings.
	RequestUrl string `json:"requestUrl,omitempty"`

	// The responseCode of the request.
	ResponseCode string `json:"responseCode,omitempty"`

	//
	ResponseContent string `json:"responseContent,omitempty"`
}

type GetCatalogType

type GetCatalogType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Container for one or more products:
	Products []GetProductType `json:"products,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetChargeRsDetailType

type GetChargeRsDetailType struct {

	// An account ID.
	AccountId string `json:"accountId,omitempty"`

	// The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as *JPY 30* or USD *30.15*. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned:  *\"Allocation amount with wrong decimal places.\"*
	Amount string `json:"amount,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The charge revenue summary number.
	Number string `json:"number,omitempty"`

	// The name of the recognition rule.
	RecognitionRuleName string `json:"recognitionRuleName,omitempty"`

	// The revenue that was distributed in a closed accounting period.
	RecognizedRevenue string `json:"recognizedRevenue,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRevenueItemType `json:"revenueItems,omitempty"`

	// The original subscription charge ID.
	SubscriptionChargeId string `json:"subscriptionChargeId,omitempty"`

	// The original subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Revenue in the open-ended accounting period.
	UndistributedUnrecognizedRevenue string `json:"undistributedUnrecognizedRevenue,omitempty"`

	// Revenue distributed in all open accounting periods, which includes the open-ended accounting period.
	UnrecognizedRevenue string `json:"unrecognizedRevenue,omitempty"`
}

type GetCreditMemoCollectionType

type GetCreditMemoCollectionType struct {

	// Container for credit memos.
	Creditmemos []GetCreditMemoTypewithSuccess `json:"creditmemos,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetCreditMemoItemPartType

type GetCreditMemoItemPartType struct {

	// The amount of the credit memo part item.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the credit memo part item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo part item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo item associated with the credit memo part item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the debit memo item associated with the credit memo part item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the credit memo part item.
	Id string `json:"id,omitempty"`

	// The ID of the invoice item associated with the credit memo part item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The ID of the invoice or debit memo taxation item associated with the credit memo taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`

	// The ID of the Zuora user who last updated the credit memo part item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo part item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoItemPartTypewithSuccess

type GetCreditMemoItemPartTypewithSuccess struct {

	// The amount of the credit memo part item.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the credit memo part item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo part item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo item associated with the credit memo part item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the debit memo item associated with the credit memo part item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the credit memo part item.
	Id string `json:"id,omitempty"`

	// The ID of the invoice item associated with the credit memo part item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the invoice or debit memo taxation item associated with the credit memo taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`

	// The ID of the Zuora user who last updated the credit memo part item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo part item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoItemPartsCollectionType

type GetCreditMemoItemPartsCollectionType struct {

	// Container for credit memo part items.
	ItemParts []GetCreditMemoItemPartTypewithSuccess `json:"itemParts,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetCreditMemoItemType

type GetCreditMemoItemType struct {

	// The total amount of the credit memo item.
	Amount float64 `json:"amount,omitempty"`

	// The applied amount of the credit memo item.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// Comments about the credit memo item.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the credit memo item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// Container for credit memo taxation items.
	CreditTaxItems []GetcmTaxItemType `json:"creditTaxItems,omitempty"`

	FinanceInformation GetCreditMemoItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the credit memo item.
	Id string `json:"id,omitempty"`

	// The amount of the refund on the credit memo item.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The service end date of the credit memo item.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The service start date of the credit memo item. If the associated charge is a one-time fee, this date is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The SKU for the product associated with the credit memo item.
	Sku string `json:"sku,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName,omitempty"`

	// The ID of the source item.
	SourceItemId string `json:"sourceItemId,omitempty"`

	// The type of the source item.
	SourceItemType string `json:"sourceItemType,omitempty"`

	// The ID of the subscription associated with the credit memo item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The unapplied amount of the credit memo item.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`

	// The ID of the Zuora user who last updated the credit memo item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoItemTypeFinanceInformation

type GetCreditMemoItemTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The type of the deferred revenue accounting code, such as Deferred Revenue.'
	DeferredRevenueAccountingCodeType string `json:"deferredRevenueAccountingCodeType,omitempty"`

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The type of the accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCodeType string `json:"onAccountAccountingCodeType,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The type of the recognized revenue accounting code, such as Sales Revenue or Sales Discount.
	RecognizedRevenueAccountingCodeType string `json:"recognizedRevenueAccountingCodeType,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`

	// Revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, RS-00000001.
	RevenueScheduleNumber string `json:"revenueScheduleNumber,omitempty"`
}

Container for the finance information related to the credit memo item.

type GetCreditMemoItemTypewithSuccess

type GetCreditMemoItemTypewithSuccess struct {

	// The total amount of the credit memo item.
	Amount float64 `json:"amount,omitempty"`

	// The applied amount of the credit memo item.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// Comments about the credit memo item.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the credit memo item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// Container for credit memo taxation items.
	CreditTaxItems []GetcmTaxItemType `json:"creditTaxItems,omitempty"`

	FinanceInformation GetCreditMemoItemTypewithSuccessFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the credit memo item.
	Id string `json:"id,omitempty"`

	// The amount of the refund on the credit memo item.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The service end date of the credit memo item.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The service start date of the credit memo item.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The SKU for the product associated with the credit memo item.
	Sku string `json:"sku,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName,omitempty"`

	// The ID of the source item.
	SourceItemId string `json:"sourceItemId,omitempty"`

	// The type of the source item.
	SourceItemType string `json:"sourceItemType,omitempty"`

	// The ID of the subscription associated with the credit memo item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// The unapplied amount of the credit memo item.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`

	// The ID of the Zuora user who last updated the credit memo item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoItemTypewithSuccessFinanceInformation

type GetCreditMemoItemTypewithSuccessFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The type of the deferred revenue accounting code, such as Deferred Revenue.
	DeferredRevenueAccountingCodeType string `json:"deferredRevenueAccountingCodeType,omitempty"`

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The type of the accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCodeType string `json:"onAccountAccountingCodeType,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The type of the recognized revenue accounting code, such as Sales Revenue or Sales Discount.
	RecognizedRevenueAccountingCodeType string `json:"recognizedRevenueAccountingCodeType,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`

	// Revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, RS-00000001.
	RevenueScheduleNumber string `json:"revenueScheduleNumber,omitempty"`
}

Container for the finance information related to the credit memo item.

type GetCreditMemoItemsListType

type GetCreditMemoItemsListType struct {

	// Container for credit memo items.
	Items []GetCreditMemoItemTypewithSuccess `json:"items,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetCreditMemoPartType

type GetCreditMemoPartType struct {

	// The amount of the credit memo part.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the credit memo part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo part was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the debit memo associated with the credit memo part.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// The ID of the credit memo part.
	Id string `json:"id,omitempty"`

	// The ID of the invoice associated with the credit memo part.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The ID of the Zuora user who last updated the credit memo part.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo part was last upated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoPartTypewithSuccess

type GetCreditMemoPartTypewithSuccess struct {

	// The amount of the credit memo part.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the credit memo part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo part was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the debit memo associated with the credit memo part.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// The ID of the credit memo part.
	Id string `json:"id,omitempty"`

	// The ID of the invoice associated with the credit memo part.
	InvoiceId string `json:"invoiceId,omitempty"`

	// The ID of the Zuora user who last updated the credit memo part.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo part was last upated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoPartsCollectionType

type GetCreditMemoPartsCollectionType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Container for credit memo parts.
	Parts []GetCreditMemoPartTypewithSuccess `json:"parts,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetCreditMemoType

type GetCreditMemoType struct {

	// The ID of the customer account associated with the credit memo.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the credit memo.
	Amount float64 `json:"amount,omitempty"`

	// The applied amount of the credit memo.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// Whether the credit memo automatically applies to the invoice upon posting.
	AutoApplyUponPosting bool `json:"autoApplyUponPosting,omitempty"`

	// Comments about the credit memo.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the credit memo.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The date when the credit memo takes effect, in `yyyy-mm-dd` format. For example, 2017-05-20.
	CreditMemoDate time.Time `json:"creditMemoDate,omitempty"`

	// A currency defined in the web-based UI administrative settings.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Whether the credit memo is excluded from the rule of automatically applying credit memos to invoices.
	ExcludeFromAutoApplyRules bool `json:"excludeFromAutoApplyRules,omitempty"`

	// The unique ID of the credit memo.
	Id string `json:"id,omitempty"`

	// The ID of the latest PDF file generated for the credit memo.
	LatestPDFFileId string `json:"latestPDFFileId,omitempty"`

	// The unique identification number of the credit memo.
	Number string `json:"number,omitempty"`

	// The ID of the Zuora user who posted the credit memo.
	PostedById string `json:"postedById,omitempty"`

	// The date and time when the credit memo was posted, in `yyyy-mm-dd hh:mm:ss` format.
	PostedOn time.Time `json:"postedOn,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The ID of a referred invoice.
	ReferredInvoiceId string `json:"referredInvoiceId,omitempty"`

	// The amount of the refund on the credit memo.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The status of the credit memo.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The target date for the credit memo, in `yyyy-mm-dd` format. For example, 2017-07-20.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The amount of taxation.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The total amount of taxes or VAT for which the customer has an exemption.
	TotalTaxExemptAmount float64 `json:"totalTaxExemptAmount,omitempty"`

	// Whether the credit memo was transferred to an external accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The unapplied amount of the credit memo.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`

	// The ID of the Zuora user who last updated the credit memo.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCreditMemoTypewithSuccess

type GetCreditMemoTypewithSuccess struct {

	// The ID of the customer account associated with the credit memo.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the credit memo.
	Amount float64 `json:"amount,omitempty"`

	// The applied amount of the credit memo.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// Whether the credit memo automatically applies to the invoice upon posting.
	AutoApplyUponPosting bool `json:"autoApplyUponPosting,omitempty"`

	// Comments about the credit memo.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the credit memo.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the credit memo was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The date when the credit memo takes effect, in `yyyy-mm-dd` format. For example, 2017-05-20.
	CreditMemoDate time.Time `json:"creditMemoDate,omitempty"`

	// A currency defined in the web-based UI administrative settings.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Whether the credit memo is excluded from the rule of automatically applying credit memos to invoices.
	ExcludeFromAutoApplyRules bool `json:"excludeFromAutoApplyRules,omitempty"`

	// The unique ID of the credit memo.
	Id string `json:"id,omitempty"`

	// The ID of the latest PDF file generated for the credit memo.
	LatestPDFFileId string `json:"latestPDFFileId,omitempty"`

	// The unique identification number of the credit memo.
	Number string `json:"number,omitempty"`

	// The ID of the Zuora user who posted the credit memo.
	PostedById string `json:"postedById,omitempty"`

	// The date and time when the credit memo was posted, in `yyyy-mm-dd hh:mm:ss` format.
	PostedOn time.Time `json:"postedOn,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The ID of a referred invoice.
	ReferredInvoiceId string `json:"referredInvoiceId,omitempty"`

	// The amount of the refund on the credit memo.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The status of the credit memo.
	Status string `json:"status,omitempty"`

	// The target date for the credit memo, in `yyyy-mm-dd` format. For example, 2017-07-20.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The amount of taxation.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The total amount of taxes or VAT for which the customer has an exemption.
	TotalTaxExemptAmount float64 `json:"totalTaxExemptAmount,omitempty"`

	// Whether the credit memo was transferred to an external accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The unapplied amount of the credit memo.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`

	// The ID of the Zuora user who last updated the credit memo.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the credit memo was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetCustomExchangeRatesDataType

type GetCustomExchangeRatesDataType struct {
	DATE ListOfExchangeRates `json:"DATE,omitempty"`
}

type GetCustomExchangeRatesType

type GetCustomExchangeRatesType struct {

	// - If `true`, the exchange rate in the response is an inverse exchange rate. - If `false`, the exchange rate in the response is not an inverse exchange rate. The value is determined by the **Use inverse rate** checkbox in your Zuora Finance Manage Currency Conversion settings.
	Inverse bool `json:"inverse,omitempty"`

	// Container for exchange rate data. Contains a set of fields that provide exchange rate data for each day between the specified `startDate` and `endDate` (inclusive).
	Rates []GetCustomExchangeRatesDataType `json:"rates,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetDebitMemoCollectionType

type GetDebitMemoCollectionType struct {

	// Container for debit memos.
	Debitmemos []GetDebitMemoTypewithSuccess `json:"debitmemos,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetDebitMemoItemCollectionType

type GetDebitMemoItemCollectionType struct {

	// Container for debit memo items.
	Items []GetDebitMemoItemTypewithSuccess `json:"items,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetDebitMemoItemType

type GetDebitMemoItemType struct {

	// The amount of the debit memo item.
	Amount float64 `json:"amount,omitempty"`

	// The balance of the debit memo item.
	Balance float64 `json:"balance,omitempty"`

	// The applied amount of the debit memo item.
	BeAppliedAmount float64 `json:"beAppliedAmount,omitempty"`

	// Comments about the debit memo item.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the debit memo item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the debit memo item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	FinanceInformation GetDebitMemoItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the debit memo item.
	Id string `json:"id,omitempty"`

	// The end date of the service period associated with this debit memo item. Service ends one second before the date specified in this field.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The start date of the service period associated with this debit memo item. If the associated charge is a one-time fee, this date is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The SKU for the product associated with the debit memo item.
	Sku string `json:"sku,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName,omitempty"`

	// The ID of the source item.
	SourceItemId string `json:"sourceItemId,omitempty"`

	// The type of the source item.
	SourceItemType string `json:"sourceItemType,omitempty"`

	// The ID of the subscription associated with the debit memo item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Container for debit memo taxation items.
	TaxItems []GetdmTaxItemType `json:"taxItems,omitempty"`

	// The ID of the Zuora user who last updated the debit memo item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the debit memo item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetDebitMemoItemTypeFinanceInformation

type GetDebitMemoItemTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The type of the deferred revenue accounting code, such as Deferred Revenue.
	DeferredRevenueAccountingCodeType string `json:"deferredRevenueAccountingCodeType,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The type of the recognized revenue accounting code, such as Sales Revenue or Sales Discount.
	RecognizedRevenueAccountingCodeType string `json:"recognizedRevenueAccountingCodeType,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`

	// The revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, RS-00000001.
	RevenueScheduleNumber string `json:"revenueScheduleNumber,omitempty"`
}

Container for the finance information related to the debit memo item.

type GetDebitMemoItemTypewithSuccess

type GetDebitMemoItemTypewithSuccess struct {

	// The amount of the debit memo item.
	Amount float64 `json:"amount,omitempty"`

	// The balance of the debit memo item.
	Balance float64 `json:"balance,omitempty"`

	// The applied amount of the debit memo item.
	BeAppliedAmount float64 `json:"beAppliedAmount,omitempty"`

	// Comments about the debit memo item.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the debit memo item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the debit memo item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	FinanceInformation GetDebitMemoItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the debit memo item.
	Id string `json:"id,omitempty"`

	// The end date of the service period associated with this debit memo item. Service ends one second before the date specified in this field.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The start date of the service period associated with this debit memo item. If the associated charge is a one-time fee, this date is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The SKU for the product associated with the debit memo item.
	Sku string `json:"sku,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName,omitempty"`

	// The ID of the source item.
	SourceItemId string `json:"sourceItemId,omitempty"`

	// The type of the source item.
	SourceItemType string `json:"sourceItemType,omitempty"`

	// The ID of the subscription associated with the debit memo item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Container for debit memo taxation items.
	TaxItems []GetdmTaxItemType `json:"taxItems,omitempty"`

	// The ID of the Zuora user who last updated the debit memo item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the debit memo item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetDebitMemoType

type GetDebitMemoType struct {

	// The ID of the customer account associated with the debit memo.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the debit memo.
	Amount float64 `json:"amount,omitempty"`

	// The balance of the debit memo.
	Balance float64 `json:"balance,omitempty"`

	// The amount that is applied to the debit memo.
	BeAppliedAmount float64 `json:"beAppliedAmount,omitempty"`

	// Comments about the debit memo.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the debit memo.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the debit memo was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the debit memo takes effect, in `yyyy-mm-dd` format. For example, 2017-05-20.
	DebitMemoDate time.Time `json:"debitMemoDate,omitempty"`

	// The date by which the payment for the debit memo is due, in `yyyy-mm-dd` format.
	DueDate time.Time `json:"dueDate,omitempty"`

	// The unique ID of the debit memo.
	Id string `json:"id,omitempty"`

	// The ID of the latest PDF file generated for the debit memo.
	LatestPDFFileId string `json:"latestPDFFileId,omitempty"`

	// The unique identification number of the debit memo.
	Number string `json:"number,omitempty"`

	// The ID of the Zuora user who posted the debit memo.
	PostedById string `json:"postedById,omitempty"`

	// The date and time when the debit memo was posted, in `yyyy-mm-dd hh:mm:ss` format.
	PostedOn time.Time `json:"postedOn,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The ID of a referred invoice.
	ReferredInvoiceId string `json:"referredInvoiceId,omitempty"`

	// The status of the debit memo.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The target date for the debit memo, in `yyyy-mm-dd` format. For example, 2017-07-20.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The amount of taxation.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The total amount of taxes or VAT for which the customer has an exemption.
	TotalTaxExemptAmount float64 `json:"totalTaxExemptAmount,omitempty"`

	// Whether the debit memo was transferred to an external accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The ID of the Zuora user who last updated the debit memo.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the debit memo was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetDebitMemoTypewithSuccess

type GetDebitMemoTypewithSuccess struct {

	// The ID of the customer account associated with the debit memo.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the debit memo.
	Amount float64 `json:"amount,omitempty"`

	// The balance of the debit memo.
	Balance float64 `json:"balance,omitempty"`

	// The applied amount of the debit memo.
	BeAppliedAmount float64 `json:"beAppliedAmount,omitempty"`

	// Comments about the debit memo.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the debit memo.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the debit memo was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the debit memo takes effect, in `yyyy-mm-dd` format. For example, 2017-05-20.
	DebitMemoDate time.Time `json:"debitMemoDate,omitempty"`

	// The date by which the payment for the debit memo is due, in `yyyy-mm-dd` format.
	DueDate time.Time `json:"dueDate,omitempty"`

	// The unique ID of the debit memo.
	Id string `json:"id,omitempty"`

	// The ID of the latest PDF file generated for the debit memo.
	LatestPDFFileId string `json:"latestPDFFileId,omitempty"`

	// The unique identification number of the debit memo.
	Number string `json:"number,omitempty"`

	// The ID of the Zuora user who posted the debit memo.
	PostedById string `json:"postedById,omitempty"`

	// The date and time when the debit memo was posted, in `yyyy-mm-dd hh:mm:ss` format.
	PostedOn time.Time `json:"postedOn,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The ID of a referred invoice.
	ReferredInvoiceId string `json:"referredInvoiceId,omitempty"`

	// The status of the debit memo.
	Status string `json:"status,omitempty"`

	// The target date for the debit memo, in `yyyy-mm-dd` format. For example, 2017-07-20.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The amount of taxation.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The total amount of taxes or VAT for which the customer has an exemption.
	TotalTaxExemptAmount float64 `json:"totalTaxExemptAmount,omitempty"`

	// Whether the debit memo was transferred to an external accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The ID of the Zuora user who last updated the debit memo.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the debit memo was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:31:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetDiscountApplyDetailsType

type GetDiscountApplyDetailsType struct {

	// The ID of the product rate plan charge that the discount rate plan charge applies to.
	AppliedProductRatePlanChargeId string `json:"appliedProductRatePlanChargeId,omitempty"`

	// The ID of the product rate plan that the discount rate plan charge applies to.
	AppliedProductRatePlanId string `json:"appliedProductRatePlanId,omitempty"`
}

type GetEmailHistoryVOsType

type GetEmailHistoryVOsType struct {

	// A container for email histories.
	EmailHistories []GetEmailHistoryVoType `json:"emailHistories,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetEmailHistoryVoType

type GetEmailHistoryVoType struct {

	// Blind carbon copy recipients of the email.
	Bcc string `json:"bcc,omitempty"`

	// Carbon Copy recipients of the email.
	Cc string `json:"cc,omitempty"`

	// null if the content of result is \"OK\". A description of the error if the content of result is not \"OK\".
	ErrorMessage string `json:"errorMessage,omitempty"`

	// The event category of the email.
	EventCategory string `json:"eventCategory,omitempty"`

	// The sender of the email.
	FromEmail string `json:"fromEmail,omitempty"`

	// The name of the notification.
	Notification string `json:"notification,omitempty"`

	// The reply-to address as configured in the email template.
	ReplyTo string `json:"replyTo,omitempty"`

	// The result from the mail server of sending the email.
	Result string `json:"result,omitempty"`

	// The date and time the email was sent.
	SendTime string `json:"sendTime,omitempty"`

	// The subject of the email.
	Subject string `json:"subject,omitempty"`

	// The intended recipient of the email.
	ToEmail string `json:"toEmail,omitempty"`
}

type GetEntitiesResponseType

type GetEntitiesResponseType struct {

	// Container for one or more entities in a multi-entity hierarchy.
	Entities []GetEntitiesType `json:"entities,omitempty"`

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type GetEntitiesResponseTypeWithId

type GetEntitiesResponseTypeWithId struct {

	// The display name of the entity that is shown in the Zuora UI and APIs.
	DisplayName string `json:"displayName,omitempty"`

	// The entity Id.
	Id string `json:"id,omitempty"`

	// The locale that is used in this entity.
	Locale string `json:"locale,omitempty"`

	// The name of the entity.
	Name string `json:"name,omitempty"`

	// The Id of the parent entity.
	ParentId string `json:"parentId,omitempty"`

	// The status of the entity.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`

	// The Id of the tenant that the entity belongs to.
	TenantId string `json:"tenantId,omitempty"`

	// The time zone that is used in this entity.
	Timezone string `json:"timezone,omitempty"`
}

type GetEntitiesType

type GetEntitiesType struct {

	// The display name of the entity that is shown in the Zuora UI and APIs.
	DisplayName string `json:"displayName,omitempty"`

	// The entity Id.
	Id string `json:"id,omitempty"`

	// The locale that is used in this entity.
	Locale string `json:"locale,omitempty"`

	// The name of the entity.
	Name string `json:"name,omitempty"`

	// The Id of the parent entity.
	ParentId string `json:"parentId,omitempty"`

	// The status of the entity.
	Status string `json:"status,omitempty"`

	// The Id of the tenant that the entity belongs to.
	TenantId string `json:"tenantId,omitempty"`

	// The time zone that is used in this entity.
	Timezone string `json:"timezone,omitempty"`
}

type GetEntitiesUserAccessibleResponseType

type GetEntitiesUserAccessibleResponseType struct {

	// Container for one or more entities in a multi-entity hierarchy.
	Entities []GetEntitiesType `json:"entities,omitempty"`

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type GetEntityConnectionsArrayItemsType

type GetEntityConnectionsArrayItemsType struct {

	// The ID of the connection.
	Id string `json:"id,omitempty"`

	// The ID of the source entity in the connection.
	SourceEntityId string `json:"sourceEntityId,omitempty"`

	// Status of the connection.   Possible values:  - `Connected`  - `Pending`  - `Disconnected`
	Status string `json:"status,omitempty"`

	// The ID of the target entity in the connection.
	TargetEntityId string `json:"targetEntityId,omitempty"`
}

type GetEntityConnectionsResponseType

type GetEntityConnectionsResponseType struct {

	// Container for one or more connections that are related to the entity.
	EntityConnections []GetEntityConnectionsArrayItemsType `json:"entityConnections,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetFilesApi

type GetFilesApi struct {
	Configuration *Configuration
}

func NewGetFilesApi

func NewGetFilesApi() *GetFilesApi

func NewGetFilesApiWithBasePath

func NewGetFilesApiWithBasePath(basePath string) *GetFilesApi

func (GetFilesApi) GETFiles

func (a GetFilesApi) GETFiles(fileId string, entityId string, entityName string) (*APIResponse, error)

*

type GetHostedPageType

type GetHostedPageType struct {

	// Page ID of the Payment Page that Zuora assigns when it is created.
	PageId string `json:"pageId,omitempty"`

	// Name of the Payment Page that specified during the page configuration.
	PageName string `json:"pageName,omitempty"`

	// Payment method type of this Payment Page, e.g. 'Credit Card', 'ACH', or 'Bank Transfer'.
	PageType string `json:"pageType,omitempty"`

	// Version of the Payment Page. 1 for Payment Pages 1.0 or 2 for Payment Pages 2.0.
	PageVersion string `json:"pageVersion,omitempty"`
}

type GetHostedPagesType

type GetHostedPagesType struct {

	// Container for the hosted page information.
	Hostedpages []GetHostedPageType `json:"hostedpages,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetInvoiceFileType

type GetInvoiceFileType struct {

	// ID of the invoice PDF file. This is the ID for the file object and different from the file handle id in the pdfFileUrl field. To open a file, you need to use the file handle ID.
	Id string `json:"id,omitempty"`

	// REST URL for the invoice PDF file. Click the URL to open the invoice PDF file.
	PdfFileUrl string `json:"pdfFileUrl,omitempty"`

	// Version number of the invoice PDF file
	VersionNumber int64 `json:"versionNumber,omitempty"`
}

type GetInvoiceFileWrapper

type GetInvoiceFileWrapper struct {

	// Contains information about one or more invoices:
	Invoices []GetInvoiceType `json:"invoices,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetInvoiceType

type GetInvoiceType struct {

	// Customer account ID.
	AccountId string `json:"accountId,omitempty"`

	// Customer account name.
	AccountName string `json:"accountName,omitempty"`

	// Customer account number.
	AccountNumber string `json:"accountNumber,omitempty"`

	// Amount of the invoice before adjustments, discounts, and similar items.
	Amount string `json:"amount,omitempty"`

	// Balance remaining due on the invoice (after adjustments, discounts, etc.)
	Balance string `json:"balance,omitempty"`

	// The REST URL of the invoice PDF file.
	Body string `json:"body,omitempty"`

	// User ID of the person who created the invoice. If a bill run generated the invoice, then this is the user ID of person who created the bill run.
	CreatedBy string `json:"createdBy,omitempty"`

	//
	CreditBalanceAdjustmentAmount string `json:"creditBalanceAdjustmentAmount,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Payment due date as _yyyy-mm-dd_.
	DueDate time.Time `json:"dueDate,omitempty"`

	// Invoice ID.
	Id string `json:"id,omitempty"`

	// Invoice date as _yyyy-mm-dd_
	InvoiceDate time.Time `json:"invoiceDate,omitempty"`

	// Information about the invoice PDF file:
	InvoiceFiles []GetInvoiceFileType `json:"invoiceFiles,omitempty"`

	// Information on one or more items on this invoice:
	InvoiceItems []GetInvoicesInvoiceItemType `json:"invoiceItems,omitempty"`

	// Unique invoice ID, returned as a string.
	InvoiceNumber string `json:"invoiceNumber,omitempty"`

	// Date through which charges on this invoice are calculated, as _yyyy-mm-dd_.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// Status of the invoice in the system - not the payment status, but the status of the invoice itself. Possible values are: `Posted`, `Draft`, `Canceled`, `Error`.
	Status string `json:"status,omitempty"`
}

type GetInvoicesInvoiceItemType

type GetInvoicesInvoiceItemType struct {

	// The amount of the charge. This amount doesn't include taxes regardless if the charge's tax mode is inclusive or exclusive.
	ChargeAmount string `json:"chargeAmount,omitempty"`

	// Description of the charge.
	ChargeDescription string `json:"chargeDescription,omitempty"`

	// ID of the charge.
	ChargeId string `json:"chargeId,omitempty"`

	// Name of the charge.
	ChargeName string `json:"chargeName,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Item ID.
	Id string `json:"id,omitempty"`

	// Name of the product associated with this item.
	ProductName string `json:"productName,omitempty"`

	// Quantity of this item, in the configured unit of measure for the charge.
	Quantity string `json:"quantity,omitempty"`

	// End date of the service period for this item, i.e., the last day of the service period, as _yyyy-mm-dd_.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// Start date of the service period for this item, as _yyyy-mm-dd_. For a one-time fee item, the date of the charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// ID of the subscription for this item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Name of the subscription for this item.
	SubscriptionName string `json:"subscriptionName,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Tax applied to the charge.
	TaxAmount string `json:"taxAmount,omitempty"`

	// Unit used to measure consumption.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type GetJournalEntriesInJournalRunType

type GetJournalEntriesInJournalRunType struct {

	// Key name that represents the list of journal entries.
	JournalEntries []GetJournalEntryDetailTypeWithoutSuccess `json:"journalEntries,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetJournalEntryDetailType

type GetJournalEntryDetailType struct {

	// Name of the accounting period that the journal entry belongs to.
	AccountingPeriodName string `json:"accountingPeriodName,omitempty"`

	// Returns true if the journal entry is aggregating currencies. That is, if the journal entry was created when the `Aggregate transactions with different currencies during a Journal Run` setting was configured to `Yes`. Otherwise, returns `false`.
	AggregateCurrency bool `json:"aggregateCurrency,omitempty"`

	// Currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Home currency used.
	HomeCurrency string `json:"homeCurrency,omitempty"`

	// Date of the journal entry.
	JournalEntryDate time.Time `json:"journalEntryDate,omitempty"`

	// Key name that represents the list of journal entry items.
	JournalEntryItems []GetJournalEntryItemType `json:"journalEntryItems,omitempty"`

	//  Additional information about this record. Character limit: 2,000
	Notes string `json:"notes,omitempty"`

	// Journal entry number in the format JE-00000001.
	Number string `json:"number,omitempty"`

	// List of segments that apply to the summary journal entry.
	Segments []GetJournalEntrySegmentType `json:"segments,omitempty"`

	// Status of journal entry.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// End date of time period included in the journal entry.
	TimePeriodEnd time.Time `json:"timePeriodEnd,omitempty"`

	// Start date of time period included in the journal entry.
	TimePeriodStart time.Time `json:"timePeriodStart,omitempty"`

	// Transaction type of the transactions included in the summary journal entry.
	TransactionType string `json:"transactionType,omitempty"`

	// Date and time that transferredToAccounting was changed to `Yes`. This field is returned only when transferredToAccounting is `Yes`. Otherwise, this field is `null`.
	TransferDateTime time.Time `json:"transferDateTime,omitempty"`

	// User ID of the person who changed transferredToAccounting to `Yes`. This field is returned only when transferredToAccounting is `Yes`. Otherwise, this field is `null`.
	TransferredBy string `json:"transferredBy,omitempty"`

	// Status shows whether the journal entry has been transferred to an accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`
}

type GetJournalEntryDetailTypeWithoutSuccess

type GetJournalEntryDetailTypeWithoutSuccess struct {

	// Name of the accounting period that the journal entry belongs to.
	AccountingPeriodName string `json:"accountingPeriodName,omitempty"`

	// Returns true if the journal entry is aggregating currencies. That is, if the journal entry was created when the `Aggregate transactions with different currencies during a JournalRun` setting was configured to \"Yes\". Otherwise, returns `false`.
	AggregateCurrency bool `json:"aggregateCurrency,omitempty"`

	// Currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Home currency used.
	HomeCurrency string `json:"homeCurrency,omitempty"`

	// Date of the journal entry.
	JournalEntryDate time.Time `json:"journalEntryDate,omitempty"`

	// Key name that represents the list of journal entry items.
	JournalEntryItems []GetJournalEntryItemType `json:"journalEntryItems,omitempty"`

	// Additional information about this record. Character limit: 2,000
	Notes string `json:"notes,omitempty"`

	// Journal entry number in the format JE-00000001.
	Number string `json:"number,omitempty"`

	// List of segments that apply to the summary journal entry.
	Segments []GetJournalEntrySegmentType `json:"segments,omitempty"`

	// Status of journal entry.
	Status string `json:"status,omitempty"`

	// End date of time period included in the journal entry.
	TimePeriodEnd time.Time `json:"timePeriodEnd,omitempty"`

	// Start date of time period included in the journal entry.
	TimePeriodStart time.Time `json:"timePeriodStart,omitempty"`

	// Transaction type of the transactions included in the summary journal entry.
	TransactionType string `json:"transactionType,omitempty"`

	// Date and time that transferredToAccounting was changed to `Yes`. This field is returned only when transferredToAccounting is `Yes`. Otherwise, this field is `null`.
	TransferDateTime time.Time `json:"transferDateTime,omitempty"`

	// User ID of the person who changed transferredToAccounting to `Yes`. This field is returned only when transferredToAccounting is `Yes`. Otherwise, this field is `null`.
	TransferredBy string `json:"transferredBy,omitempty"`

	// Status shows whether the journal entry has been transferred to an accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`
}

type GetJournalEntryItemType

type GetJournalEntryItemType struct {

	// Name of the accounting code.
	AccountingCodeName string `json:"accountingCodeName,omitempty"`

	// Accounting code type.  Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	AccountingCodeType string `json:"accountingCodeType,omitempty"`

	// Journal entry item amount in transaction currency.
	Amount string `json:"amount,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The account number in the general ledger (GL) that corresponds to the accounting code.
	GlAccountName string `json:"glAccountName,omitempty"`

	// The account name in the general ledger (GL) that corresponds to the accounting code.
	GlAccountNumber string `json:"glAccountNumber,omitempty"`

	// Journal entry item amount in home currency.
	HomeCurrencyAmount string `json:"homeCurrencyAmount,omitempty"`

	// Type of journal entry item.
	Type_ string `json:"type,omitempty"`
}

type GetJournalEntrySegmentType

type GetJournalEntrySegmentType struct {

	// Name of segment.
	SegmentName string `json:"segmentName,omitempty"`

	// Value of segment in this summary journal entry.
	SegmentValue string `json:"segmentValue,omitempty"`
}

type GetJournalRunTransactionType

type GetJournalRunTransactionType struct {

	// Transaction type. Invoice Adjustment is deprecated on Production. Zuora recommends that you use the Invoice Item Adjustment instead.  If you enable the Advanced AR Settlement feature, Debit Memo Item, Credit Memo Item, and Credit Memo Application Item are available, Payment and Refund will be replaced by Payment Application and Refund Application.   If you enable both the Advanced AR Settlement feature and the Invoice Item Settlement feature, Payment and Refund will be replaced by Payment Application Item and Refund Application Item.
	Type_ string `json:"type,omitempty"`
}

type GetJournalRunType

type GetJournalRunType struct {

	//
	AggregateCurrency bool `json:"aggregateCurrency,omitempty"`

	// Date and time the journal run was executed.
	ExecutedOn time.Time `json:"executedOn,omitempty"`

	// Date of the journal entry.
	JournalEntryDate time.Time `json:"journalEntryDate,omitempty"`

	// Journal run number.
	Number string `json:"number,omitempty"`

	// Name of GL segmentation rule used in the journal run.
	SegmentationRuleName string `json:"segmentationRuleName,omitempty"`

	// Status of the journal run.
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The target end date of the journal run.
	TargetEndDate time.Time `json:"targetEndDate,omitempty"`

	// The target start date of the journal run.
	TargetStartDate time.Time `json:"targetStartDate,omitempty"`

	// Total number of journal entries in the journal run.
	TotalJournalEntryCount int64 `json:"totalJournalEntryCount,omitempty"`

	// Transaction types included in the journal run.
	TransactionTypes []GetJournalRunTransactionType `json:"transactionTypes,omitempty"`
}

type GetMassUpdateType

type GetMassUpdateType struct {

	// Type of mass action.
	ActionType string `json:"actionType,omitempty"`

	// Date and time that the mass action was completed. The format is `yyyy-MM-dd hh:mm:ss`.
	EndedOn time.Time `json:"endedOn,omitempty"`

	// Total number of failed records.  This field is updated in real time. When the mass action **status** is Processing, this field returns the number of records that have failed so far. When the mass action **status** is Pending, this field is null.
	ErrorCount string `json:"errorCount,omitempty"`

	// Size of the input file in bytes.
	InputSize int64 `json:"inputSize,omitempty"`

	// Size of the response file in bytes.
	OutputSize int64 `json:"outputSize,omitempty"`

	// Type of output for the response file. The following table describes the output type.  | Output Type    | Description                         | |----------------|-------------------------------------| | (url:.csv.zip) | URL pointing to a zipped .csv file. |
	OutputType string `json:"outputType,omitempty"`

	// URL to download the response file. The response file is a zipped .csv file.  The response file is identical to the file you uploaded to perform the mass action, with additional columns providing information about the outcome of each record.  This field only returns a value when the mass action **status** is Completed or Stopped. Otherwise, this field is null.
	OutputURL string `json:"outputURL,omitempty"`

	// Total number of processed records. This field is equal to the sum of `errorCount` and `successCount`.  This field is updated in real time. When the mass action **status** is Processing, this field returns the number of records that have been processed so far. When the mass action **status** is Pending, this field is null.
	ProcessedCount string `json:"processedCount,omitempty"`

	// Date and time that Zuora started processing the mass action. The format is `yyyy-MM-dd hh:mm:ss`.
	StartedOn time.Time `json:"startedOn,omitempty"`

	// Status of the mass action. The following table describes the mass action statuses.  | Status     | Description                                                                | |------------|----------------------------------------------------------------------------| | Pending    | Mass action has not yet started being processed.                           | | Processing | Mass action is in progress.                                                | | Stopping   | Mass action is in the process of stopping, but has not yet stopped.        | | Stopped    | Mass action has stopped.                                                   | | Completed  | Mass action was successfully completed. There may still be failed records. | | Failed     | Mass action failed. No records are processed. No response file is created. |
	Status string `json:"status,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Total number of successful records. This field is updated in real time. When the mass action **status** is Processing, this field returns the number of records that have succeeded so far. When the mass action **status** is Pending, this field is null.
	SuccessCount string `json:"successCount,omitempty"`

	// Total number of records in the uploaded mass action file. When the mass action **status** is Pending, this field is null.
	TotalCount string `json:"totalCount,omitempty"`

	// Email of the person who uploaded the mass action file.
	UploadedBy string `json:"uploadedBy,omitempty"`

	// Date and time that the mass action file was uploaded. The format is `yyyy-MM-dd hh:mm:ss`.
	UploadedOn time.Time `json:"uploadedOn,omitempty"`
}

type GetPaidInvoicesType

type GetPaidInvoicesType struct {

	// Amount of the payment applied to this invoice.
	AppliedPaymentAmount string `json:"appliedPaymentAmount,omitempty"`

	// Invoice ID.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Invoice number.
	InvoiceNumber string `json:"invoiceNumber,omitempty"`
}

type GetPaymentGatwaysResponse

type GetPaymentGatwaysResponse struct {

	//
	Paymentgateways []GetaPaymentGatwayResponse `json:"paymentgateways,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetPaymentItemPartCollectionType

type GetPaymentItemPartCollectionType struct {

	// Container for payment part items.
	ItemParts []GetPaymentItemPartTypewithSuccess `json:"itemParts,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetPaymentItemPartType

type GetPaymentItemPartType struct {

	// The amount of the payment part item.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the payment part item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the payment part item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the debit memo item associated with the payment part item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the payment part item.
	Id string `json:"id,omitempty"`

	// The ID of the invoice item associated with the payment part item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The ID of the taxation item associated with the payment part item.
	TaxItemId string `json:"taxItemId,omitempty"`

	// The ID of the Zuora user who last updated the payment part item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the payment part item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetPaymentItemPartTypewithSuccess

type GetPaymentItemPartTypewithSuccess struct {

	// The amount of the payment part item.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the payment part item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the payment part item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the debit memo item associated with the payment part item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the payment part item.
	Id string `json:"id,omitempty"`

	// The ID of the invoice item associated with the payment part item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the taxation item associated with the payment part item.
	TaxItemId string `json:"taxItemId,omitempty"`

	// The ID of the Zuora user who last updated the payment part item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the payment part item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetPaymentMethodType

type GetPaymentMethodType struct {
	CardHolderInfo GetPaymentMethodTypeCardHolderInfo `json:"cardHolderInfo,omitempty"`

	// Credit or debit card number, 16 characters or less, masked for security purposes.
	CardNumber string `json:"cardNumber,omitempty"`

	// The type of credit card or debit card being billed.  Possible values are: `Visa`, `MasterCard`, `AmericanExpress`, `Discover`.
	CardType string `json:"cardType,omitempty"`

	// Contains true if this is the default payment method for this customer, otherwise false.
	DefaultPaymentMethod bool `json:"defaultPaymentMethod,omitempty"`

	// Two-digit expiration month (01 - 12).
	ExpirationMonth string `json:"expirationMonth,omitempty"`

	// Four-digit expiration year.
	ExpirationYear string `json:"expirationYear,omitempty"`

	// Unique ID generated by Zuora when this payment method was created.
	Id string `json:"id,omitempty"`
}

type GetPaymentMethodTypeCardHolderInfo

type GetPaymentMethodTypeCardHolderInfo struct {

	// First address line, 255 characters or less.
	AddressLine1 string `json:"addressLine1,omitempty"`

	// Second address line, 255 characters or less.
	AddressLine2 string `json:"addressLine2,omitempty"`

	// The full name as it appears on the card, e.g., \"John J Smith\", 50 characters or less.
	CardHolderName string `json:"cardHolderName,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country, must be a valid country name or abbreviation.
	Country string `json:"country,omitempty"`

	// Card holder's email address, 80 characters or less.
	Email string `json:"email,omitempty"`

	// Phone number, 40 characters or less.
	Phone string `json:"phone,omitempty"`

	// State, must be a valid state name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for the name and billing address for the card holder.

type GetPaymentMethodsType

type GetPaymentMethodsType struct {

	// Container for one or more credit or debit card records:
	CreditCards []GetPaymentMethodType `json:"creditCards,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetPaymentPartType

type GetPaymentPartType struct {

	// The amount of the payment part.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the payment part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the payment part was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the debit memo associated with the payment part.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// The ID of the payment part.
	Id string `json:"id,omitempty"`

	// The ID of the invoice associated with the payment part.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The ID of the Zuora user who last updated the payment part.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the payment part was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetPaymentPartTypewithSuccess

type GetPaymentPartTypewithSuccess struct {

	// The amount of the payment part.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the payment part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the payment part was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the debit memo associated with the payment part.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// The ID of the payment part.
	Id string `json:"id,omitempty"`

	// The ID of the invoice associated with the payment part.
	InvoiceId string `json:"invoiceId,omitempty"`

	// The ID of the Zuora user who last updated the payment part.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the payment part was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetPaymentPartsCollectionType

type GetPaymentPartsCollectionType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Container for payment parts.
	Parts []GetPaymentPartTypewithSuccess `json:"parts,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetPaymentType

type GetPaymentType struct {

	// Customer account ID.
	AccountID string `json:"accountID,omitempty"`

	// Customer account name.
	AccountName string `json:"accountName,omitempty"`

	// Customer account number.
	AccountNumber string `json:"accountNumber,omitempty"`

	// Payment amount.
	Amount string `json:"amount,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Effective payment date as _yyyy-mm-dd_.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Transaction ID from payment gateway.
	GatewayTransactionNumber string `json:"gatewayTransactionNumber,omitempty"`

	// PaymentID.
	Id string `json:"id,omitempty"`

	// Information about one or more invoices to which this payment was applied:
	PaidInvoices []GetPaidInvoicesType `json:"paidInvoices,omitempty"`

	// Payment method.
	PaymentMethodID string `json:"paymentMethodID,omitempty"`

	// Unique payment number.
	PaymentNumber string `json:"paymentNumber,omitempty"`

	// Possible values are: `Draft`, `Processing`, `Processed`, `Error`, `Voided`, `Canceled`, `Posted.
	Status string `json:"status,omitempty"`

	// Possible values are: `External`, `Electronic`.
	Type_ string `json:"type,omitempty"`
}

type GetPaymentsType

type GetPaymentsType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Information about one or more payments:
	Payments []GetPaymentType `json:"payments,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetProductDiscountApplyDetailsType

type GetProductDiscountApplyDetailsType struct {

	// The ID of the product rate plan charge that the discount product rate plan charge applies to.
	AppliedProductRatePlanChargeId string `json:"appliedProductRatePlanChargeId,omitempty"`

	// The ID of the product rate plan that the discount product rate plan charge applies to.
	AppliedProductRatePlanId string `json:"appliedProductRatePlanId,omitempty"`
}

type GetProductFeatureType

type GetProductFeatureType struct {

	// Feature code, up to 255 characters long.
	Code string `json:"code,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Feature description.
	Description string `json:"description,omitempty"`

	// Feature ID.
	Id string `json:"id,omitempty"`

	// Feature name, up to 255 characters long.
	Name string `json:"name,omitempty"`

	//
	Status string `json:"status,omitempty"`
}

type GetProductRatePlanChargePricingTierType

type GetProductRatePlanChargePricingTierType struct {

	// Decimal defining end of tier range.
	EndingUnit string `json:"endingUnit,omitempty"`

	// The decimal value of the tiered charge model. If the charge model is not a tiered type then this price field will be null and the price field directly under the productRatePlanCharges applies.
	Price string `json:"price,omitempty"`

	// Tier price format.  Allowed values: - flat fee  - per unit
	PriceFormat string `json:"priceFormat,omitempty"`

	// Decimal defining start of tier range.
	StartingUnit string `json:"startingUnit,omitempty"`

	// Unique number of the tier.
	Tier int64 `json:"tier,omitempty"`
}

type GetProductRatePlanChargePricingType

type GetProductRatePlanChargePricingType struct {

	// Currency used by the charge model. For example: USD or EUR
	Currency string `json:"currency,omitempty"`

	// Value subtracted from price in currency specified. Used only when the charge model is DiscountFixedAmount.
	DiscountAmount string `json:"discountAmount,omitempty"`

	// Percent discount applied to the price. Used only when the charge model is DiscountPercentage.
	DiscountPercentage string `json:"discountPercentage,omitempty"`

	// Specifies the number of units in the base set of units when the charge model is Overage.
	IncludedUnits string `json:"includedUnits,omitempty"`

	// Price per unit when base set of units is exceeded. Used only when charge model is Overage or Tiered with Overage.
	OveragePrice string `json:"overagePrice,omitempty"`

	// The decimal value that applies when the charge model is not tiered
	Price string `json:"price,omitempty"`

	// Container for one or many defined tier ranges with distinct pricing.  Applies when model is `Tiered`, `TieredWithOverage`, or `Volume`
	Tiers []GetProductRatePlanChargePricingTierType `json:"tiers,omitempty"`
}

type GetProductRatePlanChargeType

type GetProductRatePlanChargeType struct {

	// Specifies where (to what charge type) the discount will be applied. These field values are case-sensitive.  Permissible values: - RECURRING - USAGE - ONETIMERECURRING - ONETIMEUSAGE - RECURRINGUSAGE - ONETIMERECURRINGUSAGE
	ApplyDiscountTo string `json:"applyDiscountTo,omitempty"`

	// The bill cycle day (BCD) for the charge. The BCD determines which day of the month or week the customer is billed. The BCD value in the account can override the BCD in this object.
	BillingDay string `json:"billingDay,omitempty"`

	// The billing period for the charge. The start day of the billing period is also called the bill cycle day (BCD).  Values: - Month - Quarter - Annual - Semi-Annual - Specific Months - Week - Specific_Weeks
	BillingPeriod string `json:"billingPeriod,omitempty"`

	// Aligns charges within the same subscription if multiple charges begin on different dates.  Possible values: - AlignToCharge - AlignToSubscriptionStart - AlignToTermStart
	BillingPeriodAlignment string `json:"billingPeriodAlignment,omitempty"`

	// The billing timing for the charge. You can choose to bill for charges in advance or in arrears.  Values: - In Advance - In Arrears  **Note:** This feature is in Limited Availability. If you wish to have access to the feature, submit a request at [Zuora Global Support](https://support.zuora.com).
	BillingTiming string `json:"billingTiming,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The default quantity of units.  This field is required if you use a per-unit charge model.
	DefaultQuantity string `json:"defaultQuantity,omitempty"`

	// Usually a brief line item summary of the Rate Plan Charge.
	Description string `json:"description,omitempty"`

	// The class that the discount belongs to. The discount class defines the order in which discount product rate plan charges are applied.  For more information, see [Manage Discount Classes](https://knowledgecenter.zuora.com/BC_Subscription_Management/Product_Catalog/B_Charge_Models/Manage_Discount_Classes).
	DiscountClass string `json:"discountClass,omitempty"`

	// The level of the discount.   Values: - RatePlan - Subscription - Account
	DiscountLevel string `json:"discountLevel,omitempty"`

	// Defines when the charge ends after the charge trigger date. If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.  Values: - Subscription_End - Fixed_Period
	EndDateCondition string `json:"endDateCondition,omitempty"`

	FinanceInformation FinanceInformation `json:"financeInformation,omitempty"`

	// Unique product rate-plan charge ID.
	Id string `json:"id,omitempty"`

	// Specifies the number of units in the base set of units when the charge model is Overage.
	IncludedUnits string `json:"includedUnits,omitempty"`

	// The list price base for the product rate plan charge.  Values: - Month - Billing Period - Per_Week
	ListPriceBase string `json:"listPriceBase,omitempty"`

	// Specifies the maximum number of units for this charge. Use this field and the `minQuantity` field to create a range of units allowed in a product rate plan charge.
	MaxQuantity string `json:"maxQuantity,omitempty"`

	// Specifies the minimum number of units for this charge. Use this field and the `maxQuantity` field to create a range of units allowed in a product rate plan charge.
	MinQuantity string `json:"minQuantity,omitempty"`

	// Charge model which determines how charges are calculated.  Charge models must be individually activated in Zuora Billing administration.   Possible values are: - FlatFee - PerUnit - Overage - Volume - Tiered - TieredWithOverage - DiscountFixedAmount - DiscountPercentage The Pricing Summaries section below details these charge models and their associated pricingSummary values.
	Model string `json:"model,omitempty"`

	// Name of the product rate-plan charge. (Not required to be unique.)
	Name string `json:"name,omitempty"`

	// Value specifies the number of periods used in the smoothing model calculations Used when overage smoothing model is `RollingWindow` or `Rollover`.
	NumberOfPeriods int64 `json:"numberOfPeriods,omitempty"`

	// Value specifies when to calculate overage charges.  Values: - EndOfSmoothingPeriod - PerBillingPeriod
	OverageCalculationOption string `json:"overageCalculationOption,omitempty"`

	// Determines whether to credit the customer with unused units of usage.  Values: - NoCredit - CreditBySpecificRate
	OverageUnusedUnitsCreditOption string `json:"overageUnusedUnitsCreditOption,omitempty"`

	// The number of periods to which prepayment is set.   **Note:** This field is only available if you already have the prepayment feature enabled. The prepayment feature is deprecated and available only for backward compatibility. Zuora does not support enabling this feature anymore.
	PrepayPeriods int64 `json:"prepayPeriods,omitempty"`

	// Applies an automatic price change when a termed subscription is renewed and the following applies:  1. AutomatedPriceChange setting is on 2. Charge type is not one-time 3. Charge model is not discount fixed amount  Values: - NoChange (default) - SpecificPercentageValue - UseLatestProductCatalogPricing
	PriceChangeOption string `json:"priceChangeOption,omitempty"`

	// Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Use this field if you set the `PriceChangeOption` value to `SpecificPercentageValue`.  1. AutomatedPriceChange setting is on 2. Charge type is not one-time 3. Charge model is not discount fixed amount  Values: a decimal between -100 and 100
	PriceIncreasePercentage string `json:"priceIncreasePercentage,omitempty"`

	// One or more price charge models with attributes that further describe the model.  Some attributes show as null values when not applicable.
	Pricing []GetProductRatePlanChargePricingType `json:"pricing,omitempty"`

	// A concise description of the charge model and pricing that is suitable to show to your customers.
	PricingSummary []string `json:"pricingSummary,omitempty"`

	// Container for the application details about a discount product rate plan charge.   Only discount product rate plan charges have values in this field.
	ProductDiscountApplyDetails []GetProductDiscountApplyDetailsType `json:"productDiscountApplyDetails,omitempty"`

	// Specifies a rating group based on which usage records are rated.   **Note:** This feature is in Limited Availability. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	RatingGroup string `json:"ratingGroup,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`

	// Specifies the smoothing model for an overage smoothing charge model or an tiered with overage model, which is an advanced type of a usage model that avoids spikes in usage charges. If a customer's usage spikes in a single period, then an overage smoothing model eases overage charges by considering usage and multiple periods.  One of the following values shows which smoothing model will be applied to the charge when `Overage` or `Tiered with Overage` is used:  - `RollingWindow` considers a number of periods to smooth usage. The rolling window starts and increments forward based on billing frequency. When allowed usage is met, then period resets and a new window begins. - `Rollover` considers a fixed number of periods before calculating usage. The net balance at the end of a period is unused usage, which is carried over to the next period's balance.
	SmoothingModel string `json:"smoothingModel,omitempty"`

	// When the billing period is set to `Specific` Months then this positive integer reflects the number of months for billing period charges.
	SpecificBillingPeriod int64 `json:"specificBillingPeriod,omitempty"`

	// Specifies the tax code for taxation rules; used by Zuora Tax.
	TaxCode string `json:"taxCode,omitempty"`

	// Specifies how to define taxation for the charge; used by Zuora Tax. Possible values are: `TaxExclusive`, `TaxInclusive`.
	TaxMode string `json:"taxMode,omitempty"`

	// Specifies whether the charge is taxable; used by Zuora Tax. Possible values are:`true`, `false`.
	Taxable bool `json:"taxable,omitempty"`

	// Specifies when to start billing the customer for the charge.  Values: one of the following: - `ContractEffective` is the date when the subscription's contract goes into effect and the charge is ready to be billed. - `ServiceActivation` is the date when the services or products for a subscription have been activated and the customers have access. - `CustomerAcceptance` is when the customer accepts the services or products for a subscription.  - `SpecificDate` is the date specified.
	TriggerEvent string `json:"triggerEvent,omitempty"`

	// The type of charge. Possible values are: `OneTime`, `Recurring`, `Usage`.
	Type_ string `json:"type,omitempty"`

	// Describes the Units of Measure (uom) configured in **Settings > Billing** for the productRatePlanCharges.  Values: `Each`, `License`, `Seat`, or `null`
	Uom string `json:"uom,omitempty"`

	// Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends. If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods int64 `json:"upToPeriods,omitempty"`

	// The period type used to define when the charge ends.  Values: - Billing_Periods - Days - Weeks - Months - Years
	UpToPeriodsType string `json:"upToPeriodsType,omitempty"`

	// Determines how Zuora processes usage records for per-unit usage charges.
	UsageRecordRatingOption string `json:"usageRecordRatingOption,omitempty"`

	// Determines whether to define a new accounting code for the new discount charge. Values: `true`, `false`
	UseDiscountSpecificAccountingCode bool `json:"useDiscountSpecificAccountingCode,omitempty"`

	// Shows the tenant-level percentage uplift value for an automatic price change to a termed subscription's renewal. You set the tenant uplift value in the web-based UI: **Settings > Billing > Define Default Subscription Settings**.  Values: `true`, `false`
	UseTenantDefaultForPriceChange bool `json:"useTenantDefaultForPriceChange,omitempty"`
}

type GetProductRatePlanType

type GetProductRatePlanType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Rate plan description.
	Description string `json:"description,omitempty"`

	// Final date the rate plan is active, as `yyyy-mm-dd`. After this date, the rate plan status is `Expired`.
	EffectiveEndDate time.Time `json:"effectiveEndDate,omitempty"`

	// First date the rate plan is active (i.e., available to be subscribed to), as `yyyy-mm-dd`.  Before this date, the status is `NotStarted`.
	EffectiveStartDate time.Time `json:"effectiveStartDate,omitempty"`

	// Unique product rate-plan charge ID.
	Id string `json:"id,omitempty"`

	// Name of the product rate-plan charge. (Not required to be unique.)
	Name string `json:"name,omitempty"`

	// Field attributes describing the product rate plan charges:
	ProductRatePlanCharges []GetProductRatePlanChargeType `json:"productRatePlanCharges,omitempty"`

	// Possible vales are: `Active`, `Expired`, `NotStarted`.
	Status string `json:"status,omitempty"`
}

type GetProductType

type GetProductType struct {

	// Category of the product. Used by Zuora Quotes Guided Product Selector.  Possible values are:   - Base Products   - Add On Services   - Miscellaneous Products
	Category string `json:"category,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Optional product description.
	Description string `json:"description,omitempty"`

	// The date when the product expires and cannot be subscribed to anymore, as `yyyy-mm-dd`.
	EffectiveEndDate time.Time `json:"effectiveEndDate,omitempty"`

	// The date when the product becomes available and can be subscribed to, as `yyyy-mm-dd`.
	EffectiveStartDate time.Time `json:"effectiveStartDate,omitempty"`

	// Product ID.
	Id string `json:"id,omitempty"`

	// Product name, up to 100 characters.
	Name string `json:"name,omitempty"`

	// Container for one or more product features. Only available when the following settings are enabled: - The Entitlements feature in your tenant - The Enable Feature Specification in Product and Subscriptions setting in Settings > Billing
	ProductFeatures []GetProductFeatureType `json:"productFeatures,omitempty"`

	// Container for one or more product rate plans:
	ProductRatePlans []GetProductRatePlanType `json:"productRatePlans,omitempty"`

	// Unique product SKU, up to 50 characters.
	Sku string `json:"sku,omitempty"`

	//
	Tags string `json:"tags,omitempty"`
}

type GetRefundCollectionType

type GetRefundCollectionType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Container for refunds.
	Refunds []GetRefundTypewithSuccess `json:"refunds,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRefundCreditMemoType

type GetRefundCreditMemoType struct {

	// The ID of the account associated with this refund. Zuora associates the refund automatically with the account from the associated payment.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the refund.
	Amount float64 `json:"amount,omitempty"`

	// The date and time when the refund was cancelled, in `yyyy-mm-dd hh:mm:ss` format.
	CancelledOn time.Time `json:"cancelledOn,omitempty"`

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the refund.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-06 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo that is refunded.
	CreditMemoId string `json:"creditMemoId,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation GetRefundCreditMemoTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the refund.
	GatewayId string `json:"gatewayId,omitempty"`

	// The message returned from the payment gateway for the refund. This message is gateway-dependent.
	GatewayResponse string `json:"gatewayResponse,omitempty"`

	// The response code returned from the payment gateway for the refund. This code is gateway-dependent.
	GatewayResponseCode string `json:"gatewayResponseCode,omitempty"`

	// The status of the refund in the gateway.
	GatewayState string `json:"gatewayState,omitempty"`

	// The ID of the created refund.
	Id string `json:"id,omitempty"`

	// The date and time when a refund was marked and waiting for batch submission to the payment process, in `yyyy-mm-dd hh:mm:ss` format.
	MarkedForSubmissionOn time.Time `json:"markedForSubmissionOn,omitempty"`

	// How an external refund was issued to a customer.
	MethodType string `json:"methodType,omitempty"`

	// The unique identification number of the refund.
	Number string `json:"number,omitempty"`

	// The ID of the payment associated with the refund.
	PaymentId string `json:"paymentId,omitempty"`

	// The unique ID of the payment method that the customer used to make the refund.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// The unique ID of the payment method snapshot, which is a copy of the particular payment method used in a transaction.
	PaymentMethodSnapshotId string `json:"paymentMethodSnapshotId,omitempty"`

	// A code identifying the reason for the transaction.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The date when the refund takes effect, in yyyy-mm-dd format.
	RefundDate time.Time `json:"refundDate,omitempty"`

	// The date and time when the refund was issued, in `yyyy-mm-dd hh:mm:ss` format.
	RefundTransactionTime time.Time `json:"refundTransactionTime,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the refund. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondRefundReferenceId string `json:"secondRefundReferenceId,omitempty"`

	// The date and time when the refund was settled in the payment processor, in `yyyy-mm-dd hh:mm:ss` format. This field is used by the Spectrum gateway only and not applicable to other gateways.
	SettledOn time.Time `json:"settledOn,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptor string `json:"softDescriptor,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptorPhone string `json:"softDescriptorPhone,omitempty"`

	// The status of the refund.
	Status string `json:"status,omitempty"`

	// The date and time when the refund was submitted, in `yyyy-mm-dd hh:mm:ss` format.
	SubmittedOn time.Time `json:"submittedOn,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The type of the refund.
	Type_ string `json:"type,omitempty"`

	// The ID of the Zuora user who last updated the refund.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-07 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetRefundCreditMemoTypeFinanceInformation

type GetRefundCreditMemoTypeFinanceInformation struct {

	// The accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCode string `json:"bankAccountAccountingCode,omitempty"`

	// The type of the accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCodeType string `json:"bankAccountAccountingCodeType,omitempty"`

	// Whether the refund was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The accounting code for the unapplied payment.
	UnappliedPaymentAccountingCode string `json:"unappliedPaymentAccountingCode,omitempty"`

	// The type of the accounting code for the unapplied payment.
	UnappliedPaymentAccountingCodeType string `json:"unappliedPaymentAccountingCodeType,omitempty"`
}

Container for the finance information related to the refund.

type GetRefundItemPartCollectionType

type GetRefundItemPartCollectionType struct {

	// Container for refund part items.
	ItemParts []GetRefundItemPartTypewithSuccess `json:"itemParts,omitempty"`

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRefundItemPartType

type GetRefundItemPartType struct {

	// The amount of the refund part item.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the refund part item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund part item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo item associated with the refund part item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item associated with the refund part item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the refund part item.
	Id string `json:"id,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The ID of the Zuora user who last updated the refund part item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund part item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetRefundItemPartTypewithSuccess

type GetRefundItemPartTypewithSuccess struct {

	// The amount of the refund part item.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the refund part item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund part item was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo item associated with the refund part item.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item associated with the refund part item.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`

	// The ID of the refund part item.
	Id string `json:"id,omitempty"`

	// The ID of the Zuora user who last updated the refund part item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund part item was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetRefundPartCollectionType

type GetRefundPartCollectionType struct {

	// Container for refund parts.
	Parts []RefundPartResponseTypewithSuccess `json:"parts,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRefundPaymentType

type GetRefundPaymentType struct {

	// The ID of the account associated with this refund. Zuora associates the refund automatically with the account from the associated payment.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the refund.
	Amount float64 `json:"amount,omitempty"`

	// The date and time when the refund was cancelled, in `yyyy-mm-dd hh:mm:ss` format.
	CancelledOn time.Time `json:"cancelledOn,omitempty"`

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the refund.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo associated with the refund.
	CreditMemoId string `json:"creditMemoId,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation GetRefundCreditMemoTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the refund.
	GatewayId string `json:"gatewayId,omitempty"`

	// The message returned from the payment gateway for the refund. This message is gateway-dependent.
	GatewayResponse string `json:"gatewayResponse,omitempty"`

	// The code returned from the payment gateway for the refund. This code is gateway-dependent.
	GatewayResponseCode string `json:"gatewayResponseCode,omitempty"`

	// The status of the refund in the gateway.
	GatewayState string `json:"gatewayState,omitempty"`

	// The ID of the created refund.
	Id string `json:"id,omitempty"`

	// The date and time when a refund was marked and waiting for batch submission to the payment process, in `yyyy-mm-dd hh:mm:ss` format.
	MarkedForSubmissionOn time.Time `json:"markedForSubmissionOn,omitempty"`

	// How an external refund was issued to a customer.
	MethodType string `json:"methodType,omitempty"`

	// The unique identification number of the refund.
	Number string `json:"number,omitempty"`

	// The ID of the payment that is refunded.
	PaymentId string `json:"paymentId,omitempty"`

	// The unique ID of the payment method that the customer used to make the refund.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// The unique ID of the payment method snapshot, which is a copy of the particular payment method used in a transaction.
	PaymentMethodSnapshotId string `json:"paymentMethodSnapshotId,omitempty"`

	// A code identifying the reason for the transaction.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The date when the refund takes effect, in `yyyy-mm-dd` format.
	RefundDate time.Time `json:"refundDate,omitempty"`

	// The date and time when the refund was issued, in `yyyy-mm-dd hh:mm:ss` format.
	RefundTransactionTime time.Time `json:"refundTransactionTime,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the refund. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondRefundReferenceId string `json:"secondRefundReferenceId,omitempty"`

	// The date and time when the refund was settled in the payment processor, in `yyyy-mm-dd hh:mm:ss` format. This field is used by the Spectrum gateway only and not applicable to other gateways.
	SettledOn time.Time `json:"settledOn,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptor string `json:"softDescriptor,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptorPhone string `json:"softDescriptorPhone,omitempty"`

	// The status of the refund.
	Status string `json:"status,omitempty"`

	// The date and time when the refund was submitted, in `yyyy-mm-dd hh:mm:ss` format.
	SubmittedOn time.Time `json:"submittedOn,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The type of the refund.
	Type_ string `json:"type,omitempty"`

	// The ID of the the Zuora user who last updated the refund.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetRefundType

type GetRefundType struct {

	// The ID of the account associated with this refund. Zuora associates the refund automatically with the account from the associated payment or credit memo.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the refund.
	Amount float64 `json:"amount,omitempty"`

	// The date and time when the refund was cancelled, in `yyyy-mm-dd hh:mm:ss` format.
	CancelledOn time.Time `json:"cancelledOn,omitempty"`

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the refund.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo that is refunded.
	CreditMemoId string `json:"creditMemoId,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation GetRefundCreditMemoTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the refund.
	GatewayId string `json:"gatewayId,omitempty"`

	// The message returned from the payment gateway for the refund. This message is gateway-dependent.
	GatewayResponse string `json:"gatewayResponse,omitempty"`

	// The code returned from the payment gateway for the refund. This code is gateway-dependent.
	GatewayResponseCode string `json:"gatewayResponseCode,omitempty"`

	// The status of the refund in the gateway.
	GatewayState string `json:"gatewayState,omitempty"`

	// The ID of the refund.
	Id string `json:"id,omitempty"`

	// The date and time when a refund was marked and waiting for batch submission to the payment process, in `yyyy-mm-dd hh:mm:ss` format.
	MarkedForSubmissionOn time.Time `json:"markedForSubmissionOn,omitempty"`

	// How an external refund was issued to a customer.
	MethodType string `json:"methodType,omitempty"`

	// The unique identification number of the refund.
	Number string `json:"number,omitempty"`

	// The ID of the payment that is refunded.
	PaymentId string `json:"paymentId,omitempty"`

	// The unique ID of the payment method that the customer used to make the refund.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// The unique ID of the payment method snapshot, which is a copy of the particular payment method used in a transaction.
	PaymentMethodSnapshotId string `json:"paymentMethodSnapshotId,omitempty"`

	// A code identifying the reason for the transaction.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The date when the refund takes effect, in `yyyy-mm-dd` format. For example, 2017-03-01.
	RefundDate time.Time `json:"refundDate,omitempty"`

	// The date and time when the refund was issued, in `yyyy-mm-dd hh:mm:ss` format.
	RefundTransactionTime time.Time `json:"refundTransactionTime,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the refund. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondRefundReferenceId string `json:"secondRefundReferenceId,omitempty"`

	// The date and time when the refund was settled in the payment processor, in `yyyy-mm-dd hh:mm:ss` format. This field is used by the Spectrum gateway only and not applicable to other gateways.
	SettledOn time.Time `json:"settledOn,omitempty"`

	// A payment gateway-specific field that maps Zuora to other gateways.
	SoftDescriptor string `json:"softDescriptor,omitempty"`

	// A payment gateway-specific field that maps Zuora to other gateways.
	SoftDescriptorPhone string `json:"softDescriptorPhone,omitempty"`

	// The status of the refund.
	Status string `json:"status,omitempty"`

	// The date and time when the refund was submitted, in `yyyy-mm-dd hh:mm:ss` format.
	SubmittedOn time.Time `json:"submittedOn,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The type of the refund.
	Type_ string `json:"type,omitempty"`

	// The ID of the Zuora user who last updated the refund.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetRefundTypewithSuccess

type GetRefundTypewithSuccess struct {

	// The ID of the account associated with this refund. Zuora associates the refund automatically with the account from the associated payment or credit memo.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the refund.
	Amount float64 `json:"amount,omitempty"`

	// The date and time when the refund was cancelled, in `yyyy-mm-dd hh:mm:ss` format.
	CancelledOn time.Time `json:"cancelledOn,omitempty"`

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the refund.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo that is refunded.
	CreditMemoId string `json:"creditMemoId,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation GetRefundCreditMemoTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the refund.
	GatewayId string `json:"gatewayId,omitempty"`

	// The message returned from the payment gateway for the refund. This message is gateway-dependent.
	GatewayResponse string `json:"gatewayResponse,omitempty"`

	// The code returned from the payment gateway for the refund. This code is gateway-dependent.
	GatewayResponseCode string `json:"gatewayResponseCode,omitempty"`

	// The status of the refund in the gateway.
	GatewayState string `json:"gatewayState,omitempty"`

	// The ID of the refund.
	Id string `json:"id,omitempty"`

	// The date and time when a refund was marked and waiting for batch submission to the payment process, in `yyyy-mm-dd hh:mm:ss` format.
	MarkedForSubmissionOn time.Time `json:"markedForSubmissionOn,omitempty"`

	// How an external refund was issued to a customer.
	MethodType string `json:"methodType,omitempty"`

	// The unique identification number of the refund.
	Number string `json:"number,omitempty"`

	// The ID of the payment that is refunded.
	PaymentId string `json:"paymentId,omitempty"`

	// The unique ID of the payment method that the customer used to make the refund.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// The unique ID of the payment method snapshot, which is a copy of the particular payment method used in a transaction.
	PaymentMethodSnapshotId string `json:"paymentMethodSnapshotId,omitempty"`

	// A code identifying the reason for the transaction.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The date when the refund takes effect, in `yyyy-mm-dd` format. For example, 2017-03-01.
	RefundDate time.Time `json:"refundDate,omitempty"`

	// The date and time when the refund was issued, in `yyyy-mm-dd hh:mm:ss` format.
	RefundTransactionTime time.Time `json:"refundTransactionTime,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the refund. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondRefundReferenceId string `json:"secondRefundReferenceId,omitempty"`

	// The date and time when the refund was settled in the payment processor, in `yyyy-mm-dd hh:mm:ss` format. This field is used by the Spectrum gateway only and not applicable to other gateways.
	SettledOn time.Time `json:"settledOn,omitempty"`

	// A payment gateway-specific field that maps Zuora to other gateways.
	SoftDescriptor string `json:"softDescriptor,omitempty"`

	// A payment gateway-specific field that maps Zuora to other gateways.
	SoftDescriptorPhone string `json:"softDescriptorPhone,omitempty"`

	// The status of the refund.
	Status string `json:"status,omitempty"`

	// The date and time when the refund was submitted, in `yyyy-mm-dd hh:mm:ss` format.
	SubmittedOn time.Time `json:"submittedOn,omitempty"`

	// The type of the refund.
	Type_ string `json:"type,omitempty"`

	// The ID of the Zuora user who last updated the refund.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetRevenueEventDetailType

type GetRevenueEventDetailType struct {

	// An account ID.
	AccountId string `json:"accountId,omitempty"`

	// The date when the record was created in YYYY-MM-DD HH:MM:SS format.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The revenue event number created when a revenue event occurs.
	Number string `json:"number,omitempty"`

	// The end date of a recognition period in YYYY-MM-DD format.   The maximum difference of the recognitionStart and recognitionEnd date fields is equal to 250 multiplied by the length of an accounting period.
	RecognitionEnd time.Time `json:"recognitionEnd,omitempty"`

	// The start date of a recognition period in YYYY-MM-DD format.
	RecognitionStart time.Time `json:"recognitionStart,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRevenueItemType `json:"revenueItems,omitempty"`

	// The original subscription charge ID.
	SubscriptionChargeId string `json:"subscriptionChargeId,omitempty"`

	// The original subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRevenueEventDetailWithoutSuccessType

type GetRevenueEventDetailWithoutSuccessType struct {

	// An account ID.
	AccountId string `json:"accountId,omitempty"`

	// The date when the record was created in YYYY-MM-DD HH:MM:SS format.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The revenue event number created when a revenue event occurs.
	Number string `json:"number,omitempty"`

	// The end date of a recognition period in YYYY-MM-DD format.   The maximum difference of the recognitionStart and recognitionEnd date fields is equal to 250 multiplied by the length of an accounting period.
	RecognitionEnd time.Time `json:"recognitionEnd,omitempty"`

	// The start date of a recognition period in YYYY-MM-DD format.
	RecognitionStart time.Time `json:"recognitionStart,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRevenueItemType `json:"revenueItems,omitempty"`

	// The original subscription charge ID.
	SubscriptionChargeId string `json:"subscriptionChargeId,omitempty"`

	// The original subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`
}

type GetRevenueEventDetailsType

type GetRevenueEventDetailsType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Represents a change to a revenue schedule, such as posting an invoice or distributing revenue.
	RevenueEventDetails []GetRevenueEventDetailWithoutSuccessType `json:"revenueEventDetails,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRevenueItemType

type GetRevenueItemType struct {

	// The accounting period end date. The accounting period end date of the open-ended accounting period is null.
	AccountingPeriodEndDate time.Time `json:"accountingPeriodEndDate,omitempty"`

	// Name of the accounting period. The open-ended accounting period is named `Open-Ended`.
	AccountingPeriodName string `json:"accountingPeriodName,omitempty"`

	// The accounting period start date.
	AccountingPeriodStartDate time.Time `json:"accountingPeriodStartDate,omitempty"`

	// The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as *JPY 30* or *USD 30.15*. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned:  `Allocation amount with wrong decimal places.`
	Amount string `json:"amount,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Indicates if the accounting period is closed or open.
	IsAccountingPeriodClosed bool `json:"isAccountingPeriodClosed,omitempty"`
}

type GetRevenueItemsType

type GetRevenueItemsType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRevenueItemType `json:"revenueItems,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRevenueRecognitionRuleAssociationType

type GetRevenueRecognitionRuleAssociationType struct {

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetRevenueStartDateSettingType

type GetRevenueStartDateSettingType struct {

	// The date on which revenue automation starts. This is the first day of an accounting period.
	StartDate time.Time `json:"startDate,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The user who made the change.
	UpdatedBy string `json:"updatedBy,omitempty"`

	// The date when the revenue automation start date was set.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetRsRevenueItemType

type GetRsRevenueItemType struct {

	// The accounting period end date. The accounting period end date of the open-ended accounting period is null.
	AccountingPeriodEndDate time.Time `json:"accountingPeriodEndDate,omitempty"`

	// The name of the accounting period. The open-ended accounting period is named `Open-Ended`.
	AccountingPeriodName string `json:"accountingPeriodName,omitempty"`

	// The accounting period start date.
	AccountingPeriodStartDate time.Time `json:"accountingPeriodStartDate,omitempty"`

	// The amount of the revenue item.
	Amount string `json:"amount,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The accounting code for deferred revenue, such as Monthly Recurring Liability. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, this value is ignored.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The type of the deferred revenue accounting code, such as Deferred Revenue. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, this value is ignored.
	DeferredRevenueAccountingCodeType string `json:"deferredRevenueAccountingCodeType,omitempty"`

	// Indicates if the accounting period is closed or open.
	IsAccountingPeriodClosed bool `json:"isAccountingPeriodClosed,omitempty"`

	// The accounting code for recognized revenue, such as Monthly Recurring Charges or Overage Charges. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, the value is ignored.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The type of the recognized revenue accounting code, such as Sales Revenue or Sales Discount. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, this value is ignored.
	RecognizedRevenueAccountingCodeType string `json:"recognizedRevenueAccountingCodeType,omitempty"`
}

type GetRsRevenueItemsType

type GetRsRevenueItemsType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRsRevenueItemType `json:"revenueItems,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetSubscriptionProductFeatureType

type GetSubscriptionProductFeatureType struct {

	// Feature description.
	Description string `json:"description,omitempty"`

	// Feature code, up to 255 characters long.
	FeatureCode string `json:"featureCode,omitempty"`

	// SubscriptionProductFeature ID.
	Id string `json:"id,omitempty"`

	// Feature name, up to 255 characters long.
	Name string `json:"name,omitempty"`
}

type GetSubscriptionRatePlanChargesType

type GetSubscriptionRatePlanChargesType struct {

	// Specifies the type of charges a specific discount applies to.   This field is only used when applied to a discount charge model. If you are not using a discount charge model, the value is null.  Possible values:  * `RECURRING` * `USAGE` * `ONETIMERECURRING` * `ONETIMEUSAGE` * `RECURRINGUSAGE` * `ONETIMERECURRINGUSAGE`
	ApplyDiscountTo string `json:"applyDiscountTo,omitempty"`

	// Billing cycle day (BCD), which is when bill runs generate invoices for charges associated with the product rate plan charge or the account.    Values:  * `DefaultFromCustomer` * `SpecificDayofMonth(#)` * `SubscriptionStartDay` * `ChargeTriggerDay` * `SpecificDayOfWeek/dayofweek`: in which dayofweek is the day in the week you define your billing periods to start.  In the response data, a day-of-the-month value (`1`-`31`) appears in place of the hash sign above (\"#\"). If this value exceeds the number of days in a particular month, the last day of the month is used as the BCD.
	BillingDay string `json:"billingDay,omitempty"`

	// Allows billing period to be overridden on the rate plan charge.
	BillingPeriod string `json:"billingPeriod,omitempty"`

	// Possible values:  * `AlignToCharge` * `AlignToSubscriptionStart` * `AlignToTermStart`
	BillingPeriodAlignment string `json:"billingPeriodAlignment,omitempty"`

	// The billing timing for the charge. This field is only used if the `ratePlanChargeType` value is `Recurring`.  Possible values are:  * `In Advance` * `In Arrears`  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	BillingTiming string `json:"billingTiming,omitempty"`

	// The date through which a customer has been billed for the charge.
	ChargedThroughDate time.Time `json:"chargedThroughDate,omitempty"`

	// Currency used by the account. For example, `USD` or `EUR`.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Description of the rate plan charge.
	Description string `json:"description,omitempty"`

	// The amount of the discount.
	DiscountAmount string `json:"discountAmount,omitempty"`

	// Container for the application details about a discount rate plan charge.   Only discount rate plan charges have values in this field.
	DiscountApplyDetails []GetDiscountApplyDetailsType `json:"discountApplyDetails,omitempty"`

	// The class that the discount belongs to. The discount class defines the order in which discount rate plan charges are applied.  For more information, see [Manage Discount Classes](https://knowledgecenter.zuora.com/BC_Subscription_Management/Product_Catalog/B_Charge_Models/Manage_Discount_Classes).
	DiscountClass string `json:"discountClass,omitempty"`

	// The level of the discount. Values: `RatePlan`, `Subscription`, `Account`.
	DiscountLevel string `json:"discountLevel,omitempty"`

	// The amount of the discount as a percentage.
	DiscountPercentage string `json:"discountPercentage,omitempty"`

	// The change (delta) of monthly recurring charge exists when the change in monthly recurring revenue caused by an amendment or a new subscription.
	Dmrc string `json:"dmrc,omitempty"`

	// A value of `true` indicates that an invoice for a charge segment has been completed. A value of `false` indicates that an invoice has not bee completed for the charge segment.
	Done bool `json:"done,omitempty"`

	// After an amendment or an AutomatedPriceChange event, `dtcv` displays the change (delta) for the total contract value (TCV) amount for this charge, compared with its previous value with recurring charge types.
	Dtcv string `json:"dtcv,omitempty"`

	// The effective end date of the rate plan charge.
	EffectiveEndDate time.Time `json:"effectiveEndDate,omitempty"`

	// The effective start date of the rate plan charge.
	EffectiveStartDate time.Time `json:"effectiveStartDate,omitempty"`

	// Defines when the charge ends after the charge trigger date.  If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.  Values:  * `Subscription_End` * `Fixed_Period` * `Specific_End_Date`
	EndDateCondition string `json:"endDateCondition,omitempty"`

	// Rate plan charge ID.
	Id string `json:"id,omitempty"`

	// Specifies the number of units in the base set of units.
	IncludedUnits string `json:"includedUnits,omitempty"`

	// List price base; possible values are:  * `Per_Billing_Period` * `Per_Month` * `Per_Week`
	ListPriceBase string `json:"listPriceBase,omitempty"`

	// Charge model; possible values are:  * `FlatFee` * `PerUnit` * `Overage` * `Volume` * `Tiered` * `TieredWithOverage` * `DiscountFixedAmount` * `DiscountPercentage`
	Model string `json:"model,omitempty"`

	// Monthly recurring revenue of the rate plan charge.
	Mrr string `json:"mrr,omitempty"`

	// Charge name.
	Name string `json:"name,omitempty"`

	// Charge number.
	Number string `json:"number,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model.
	NumberOfPeriods int64 `json:"numberOfPeriods,omitempty"`

	// The original ID of the rate plan charge.
	OriginalChargeId string `json:"originalChargeId,omitempty"`

	// Determines when to calculate overage charges.
	OverageCalculationOption string `json:"overageCalculationOption,omitempty"`

	// The price for units over the allowed amount.
	OveragePrice string `json:"overagePrice,omitempty"`

	// Determines whether to credit the customer with unused units of usage.
	OverageUnusedUnitsCreditOption string `json:"overageUnusedUnitsCreditOption,omitempty"`

	// The price associated with the rate plan charge expressed as a decimal.
	Price string `json:"price,omitempty"`

	// When the following is true:  1. AutomatedPriceChange setting is on  2. Charge type is not one-time  3. Charge model is not discount percentage  Then an automatic price change can have a value for when a termed subscription is renewed.   Values (one of the following):  * `NoChange` (default) * `SpecificPercentageValue` * `UseLatestProductCatalogPricing`
	PriceChangeOption string `json:"priceChangeOption,omitempty"`

	// A planned future price increase amount as a percentage.
	PriceIncreasePercentage string `json:"priceIncreasePercentage,omitempty"`

	// Concise description of rate plan charge model.
	PricingSummary string `json:"pricingSummary,omitempty"`

	// The date until when charges have been processed. When billing in arrears, such as usage, this field value is the the same as the `ChargedThroughDate` value. This date is the earliest date when a charge can be amended.
	ProcessedThroughDate time.Time `json:"processedThroughDate,omitempty"`

	//
	ProductRatePlanChargeId string `json:"productRatePlanChargeId,omitempty"`

	// The quantity of units, such as the number of authors in a hosted wiki service. Valid for all charge models except for Flat Fee pricing.
	Quantity string `json:"quantity,omitempty"`

	// Specifies a rating group based on which usage records are rated.   Possible values are:  * `ByBillingPeriod` (default) * `ByUsageStartDate` * `ByUsageRecord` * `ByUsageUpload`  **Note:** This field is only used for per unit, volume pricing, and tiered pricing charge models. Use this field only for Usage charges. One-Time Charges and Recurring Charges return `NULL`.  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	RatingGroup string `json:"ratingGroup,omitempty"`

	// The identifying number of the subscription rate plan segment. Segments are numbered sequentially, starting with 1.
	Segment int64 `json:"segment,omitempty"`

	// Specifies when revenue recognition begins. When charge model is `Overage` or `TieredWithOverage`, `smoothingModel` will be one of the following values:  * `ContractEffectiveDate` * `ServiceActivationDate` * `CustomerAcceptanceDate`
	SmoothingModel string `json:"smoothingModel,omitempty"`

	// Customizes the number of month or week for the charges billing period. This field is required if you set the value of the `BillingPeriod` field to `Specific_Months` or `Specific_Weeks`.
	SpecificBillingPeriod int64 `json:"specificBillingPeriod,omitempty"`

	// The specific date on which the charge ends. If the subscription ends before the specific end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the specific end date.
	SpecificEndDate time.Time `json:"specificEndDate,omitempty"`

	// The total contract value.
	Tcv string `json:"tcv,omitempty"`

	// One or many defined ranges with distinct pricing.
	Tiers []GetTierType `json:"tiers,omitempty"`

	// The date that the rate plan charge will be triggered.
	TriggerDate time.Time `json:"triggerDate,omitempty"`

	// The event that will cause the rate plan charge to be triggered.  Possible values:   * `ContractEffective` * `ServiceActivation` * `CustomerAcceptance` * `SpecificDate`
	TriggerEvent string `json:"triggerEvent,omitempty"`

	// Charge type. Possible values are: `OneTime`, `Recurring`, `Usage`.
	Type_ string `json:"type,omitempty"`

	// Specifies the rate to credit a customer for unused units of usage. This field is applicable only for overage charge models when the  `OverageUnusedUnitsCreditOption` field value is `CreditBySpecificRate`.
	UnusedUnitsCreditRates string `json:"unusedUnitsCreditRates,omitempty"`

	// Specifies the units to measure usage.
	Uom string `json:"uom,omitempty"`

	// Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends.  If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods string `json:"upToPeriods,omitempty"`

	// The period type used to define when the charge ends.   Values:  * `Billing_Periods` * `Days` * `Weeks` * `Months` * `Years`
	UpToPeriodsType string `json:"upToPeriodsType,omitempty"`

	// Determines how Zuora processes usage records for per-unit usage charges.
	UsageRecordRatingOption string `json:"usageRecordRatingOption,omitempty"`

	// Rate plan charge revision number.
	Version int64 `json:"version,omitempty"`
}

type GetSubscriptionRatePlanType

type GetSubscriptionRatePlanType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Rate plan ID.
	Id string `json:"id,omitempty"`

	// The last amendment on the rate plan.  Possible Values:  * `Add` * `Update` * `Remove`
	LastChangeType string `json:"lastChangeType,omitempty"`

	//
	ProductId string `json:"productId,omitempty"`

	//
	ProductName string `json:"productName,omitempty"`

	//
	ProductRatePlanId string `json:"productRatePlanId,omitempty"`

	// The unique SKU for the product.
	ProductSku string `json:"productSku,omitempty"`

	// Container for one or more charges.
	RatePlanCharges []GetSubscriptionRatePlanChargesType `json:"ratePlanCharges,omitempty"`

	// Name of the rate plan.
	RatePlanName string `json:"ratePlanName,omitempty"`

	// Container for one or more features.   Only available when the following settings are enabled:  * The Entitlements feature in your tenant.  * The Enable Feature Specification in Product and Subscriptions setting in Zuora Billing Settings
	SubscriptionProductFeatures []GetSubscriptionProductFeatureType `json:"subscriptionProductFeatures,omitempty"`
}

type GetSubscriptionType

type GetSubscriptionType struct {

	//
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	// The closing date of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityCloseDateQT string `json:"OpportunityCloseDate__QT,omitempty"`

	// The unique identifier of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	// The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal, or Churn. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	// The unique identifier of the Quote. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	// The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	//
	AccountId string `json:"accountId,omitempty"`

	//
	AccountName string `json:"accountName,omitempty"`

	//
	AccountNumber string `json:"accountNumber,omitempty"`

	// If `true`, the subscription automatically renews at the end of the term. Default is `false`.
	AutoRenew bool `json:"autoRenew,omitempty"`

	// Effective contract date for this subscription, as yyyy-mm-dd.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate,omitempty"`

	// Monthly recurring revenue of the subscription.
	ContractedMrr string `json:"contractedMrr,omitempty"`

	// The length of the period for the current subscription term.
	CurrentTerm int64 `json:"currentTerm,omitempty"`

	// The period type for the current subscription term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	CurrentTermPeriodType string `json:"currentTermPeriodType,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date on which the services or products within a subscription have been accepted by the customer, as yyyy-mm-dd.
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// Subscription ID.
	Id string `json:"id,omitempty"`

	// The length of the period for the first subscription term.
	InitialTerm int64 `json:"initialTerm,omitempty"`

	// The period type for the first subscription term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	InitialTermPeriodType string `json:"initialTermPeriodType,omitempty"`

	//
	InvoiceOwnerAccountId string `json:"invoiceOwnerAccountId,omitempty"`

	//
	InvoiceOwnerAccountName string `json:"invoiceOwnerAccountName,omitempty"`

	//
	InvoiceOwnerAccountNumber string `json:"invoiceOwnerAccountNumber,omitempty"`

	// Separates a single subscription from other subscriptions and creates an invoice for the subscription.   If the value is `true`, the subscription is billed separately from other subscriptions. If the value is `false`, the subscription is included with other subscriptions in the account invoice.
	InvoiceSeparately string `json:"invoiceSeparately,omitempty"`

	// A string of up to 65,535 characters.
	Notes string `json:"notes,omitempty"`

	// Container for rate plans.
	RatePlans []GetSubscriptionRatePlanType `json:"ratePlans,omitempty"`

	// Specifies whether a termed subscription will remain `TERMED` or change to `EVERGREEN` when it is renewed.   Values are:  * `RENEW_WITH_SPECIFIC_TERM` (default) * `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"renewalSetting,omitempty"`

	// The length of the period for the subscription renewal term.
	RenewalTerm int64 `json:"renewalTerm,omitempty"`

	// The period type for the subscription renewal term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	RenewalTermPeriodType string `json:"renewalTermPeriodType,omitempty"`

	// The date on which the services or products within a subscription have been activated and access has been provided to the customer, as yyyy-mm-dd
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// Subscription status; possible values are:  * `Draft` * `PendingActivation` * `PendingAcceptance` * `Active` * `Cancelled` * `Suspended` (This value is in Limited Availability.)
	Status string `json:"status,omitempty"`

	//
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Date the subscription becomes effective.
	SubscriptionStartDate time.Time `json:"subscriptionStartDate,omitempty"`

	// Date the subscription term ends. If the subscription is evergreen, this is null or is the cancellation date (if one has been set).
	TermEndDate time.Time `json:"termEndDate,omitempty"`

	// Date the subscription term begins. If this is a renewal subscription, this date is different from the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType,omitempty"`

	// Total contracted value of the subscription.
	TotalContractedValue string `json:"totalContractedValue,omitempty"`
}

type GetSubscriptionTypeWithSuccess

type GetSubscriptionTypeWithSuccess struct {

	//
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	// The closing date of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityCloseDateQT string `json:"OpportunityCloseDate__QT,omitempty"`

	// The unique identifier of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	// The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal, or Churn. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	// The unique identifier of the Quote. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.  See [Subscription Data Source](https://knowledgecenter.zuora.com/CD_Reporting/Data_Exports/Z_Data_Source_Reference/Subscription_Data_Source) for more information.
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	// The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	// The ID of the account associated with this subscription.
	AccountId string `json:"accountId,omitempty"`

	// The name of the account associated with this subscription.
	AccountName string `json:"accountName,omitempty"`

	// The number of the account associated with this subscription.
	AccountNumber string `json:"accountNumber,omitempty"`

	// If `true`, the subscription automatically renews at the end of the term. Default is `false`.
	AutoRenew bool `json:"autoRenew,omitempty"`

	// Effective contract date for this subscription, as yyyy-mm-dd.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate,omitempty"`

	// Monthly recurring revenue of the subscription.
	ContractedMrr string `json:"contractedMrr,omitempty"`

	// The length of the period for the current subscription term.
	CurrentTerm int64 `json:"currentTerm,omitempty"`

	// The period type for the current subscription term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	CurrentTermPeriodType string `json:"currentTermPeriodType,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date on which the services or products within a subscription have been accepted by the customer, as yyyy-mm-dd.
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// Subscription ID.
	Id string `json:"id,omitempty"`

	// The length of the period for the first subscription term.
	InitialTerm int64 `json:"initialTerm,omitempty"`

	// The period type for the first subscription term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	InitialTermPeriodType string `json:"initialTermPeriodType,omitempty"`

	//
	InvoiceOwnerAccountId string `json:"invoiceOwnerAccountId,omitempty"`

	//
	InvoiceOwnerAccountName string `json:"invoiceOwnerAccountName,omitempty"`

	//
	InvoiceOwnerAccountNumber string `json:"invoiceOwnerAccountNumber,omitempty"`

	// Separates a single subscription from other subscriptions and creates an invoice for the subscription.   If the value is `true`, the subscription is billed separately from other subscriptions. If the value is `false`, the subscription is included with other subscriptions in the account invoice.
	InvoiceSeparately string `json:"invoiceSeparately,omitempty"`

	// A string of up to 65,535 characters.
	Notes string `json:"notes,omitempty"`

	// Container for rate plans.
	RatePlans []GetSubscriptionRatePlanType `json:"ratePlans,omitempty"`

	// Specifies whether a termed subscription will remain `TERMED` or change to `EVERGREEN` when it is renewed.   Values are:  * `RENEW_WITH_SPECIFIC_TERM` (default) * `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"renewalSetting,omitempty"`

	// The length of the period for the subscription renewal term.
	RenewalTerm int64 `json:"renewalTerm,omitempty"`

	// The period type for the subscription renewal term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	RenewalTermPeriodType string `json:"renewalTermPeriodType,omitempty"`

	// The date on which the services or products within a subscription have been activated and access has been provided to the customer, as yyyy-mm-dd
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// Subscription status; possible values are:  * `Draft` * `PendingActivation` * `PendingAcceptance` * `Active` * `Cancelled` * `Suspended` (This value is in Limited Availability.)
	Status string `json:"status,omitempty"`

	// Subscription number.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Date the subscription becomes effective.
	SubscriptionStartDate time.Time `json:"subscriptionStartDate,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Date the subscription term ends. If the subscription is evergreen, this is null or is the cancellation date (if one has been set).
	TermEndDate time.Time `json:"termEndDate,omitempty"`

	// Date the subscription term begins. If this is a renewal subscription, this date is different from the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType,omitempty"`

	// Total contracted value of the subscription.
	TotalContractedValue string `json:"totalContractedValue,omitempty"`
}

type GetSubscriptionWrapper

type GetSubscriptionWrapper struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Array of subscriptions.
	Subscriptions []GetSubscriptionType `json:"subscriptions,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetTaxationItemListType

type GetTaxationItemListType struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Container for taxation items.
	TaxationItems []GetTaxationItemTypewithSuccess `json:"taxationItems,omitempty"`
}

type GetTaxationItemType

type GetTaxationItemType struct {

	// The ID of the Zuora user who created the taxation item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the taxation item was created in the Zuora system, in `yyyy-mm-dd hh:mm:ss` format.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation GetTaxationItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the taxation item.
	Id string `json:"id,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The ID of the credit or debit memo associated with the taxation item.
	MemoItemId string `json:"memoItemId,omitempty"`

	// The name of the taxation item.
	Name string `json:"name,omitempty"`

	// The ID of the taxation item of the invoice, which the credit or debit memo is created from.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The amount of the tax applied to the credit or debit memo.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit or debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date when the tax is applied to the credit or debit memo.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the credit or debit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the credit or debit memo.
	TaxRateType string `json:"taxRateType,omitempty"`

	// The ID of the Zuora user who last updated the taxation item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the taxation item was last updated, in `yyyy-mm-dd hh:mm:ss` format.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetTaxationItemTypeFinanceInformation

type GetTaxationItemTypeFinanceInformation struct {

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The type of the accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCodeType string `json:"onAccountAccountingCodeType,omitempty"`

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`

	// The type of the accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCodeType string `json:"salesTaxPayableAccountingCodeType,omitempty"`
}

Container for the finance information related to the taxation item.

type GetTaxationItemTypewithSuccess

type GetTaxationItemTypewithSuccess struct {

	// The ID of the Zuora user who created the taxation item.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the taxation item was created in the Zuora system, in `yyyy-mm-dd hh:mm:ss` format.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation GetTaxationItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the taxation item.
	Id string `json:"id,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The ID of the credit or debit memo associated with the taxation item.
	MemoItemId string `json:"memoItemId,omitempty"`

	// The name of the taxation item.
	Name string `json:"name,omitempty"`

	// The ID of the taxation item of the invoice, which the credit or debit memo is created from.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The amount of the tax applied to the credit or debit memo.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit or debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date when the tax is applied to the credit or debit memo.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the credit or debit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the credit or debit memo.
	TaxRateType string `json:"taxRateType,omitempty"`

	// The ID of the Zuora user who last updated the taxation item.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the taxation item was last updated, in `yyyy-mm-dd hh:mm:ss` format.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetTierType

type GetTierType struct {

	// Decimal defining end of tier range.
	EndingUnit string `json:"endingUnit,omitempty"`

	// The decimal value of the tiered charge model. If the charge model is not a tiered type then this price field will be null and the `price` field directly under the `productRatePlanCharges` applies.
	Price string `json:"price,omitempty"`

	// Tier price format. Allowed values: `flat fee`, `per unit`.
	PriceFormat string `json:"priceFormat,omitempty"`

	// Decimal defining start of tier range.
	StartingUnit string `json:"startingUnit,omitempty"`

	// Unique number of the tier.
	Tier int64 `json:"tier,omitempty"`
}

type GetUsageType

type GetUsageType struct {

	// Customer account ID.
	AccountId string `json:"accountId,omitempty"`

	// Customer account name.
	AccountName string `json:"accountName,omitempty"`

	// Customer account number.
	AccountNumber string `json:"accountNumber,omitempty"`

	// Number of the rate-plan charge that pays for this usage.
	ChargeNumber string `json:"chargeNumber,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Unique ID for the usage item.
	Id string `json:"id,omitempty"`

	// Number of units used.
	Quantity string `json:"quantity,omitempty"`

	// Source of the usage data. Possible values are: `Import`, `API`.
	SourceName string `json:"sourceName,omitempty"`

	// Start date of the time period in which usage is tracked. Zuora uses this field value to determine the usage date.
	StartDateTime time.Time `json:"startDateTime,omitempty"`

	// Possible values are: `Importing`, `Pending`, `Processed`.
	Status string `json:"status,omitempty"`

	// Date when usage was submitted.
	SubmissionDateTime time.Time `json:"submissionDateTime,omitempty"`

	// Number of the subscription covering this usage.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Unit used to measure consumption.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type GetUsageWrapper

type GetUsageWrapper struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Contains one or more usage items.
	Usage []GetUsageType `json:"usage,omitempty"`
}

type GetaPaymentGatwayResponse

type GetaPaymentGatwayResponse struct {

	// The ID of the payment gateway.
	Id string `json:"id,omitempty"`

	// Specifies if this payment gateway is in active status.
	IsActive bool `json:"isActive,omitempty"`

	// Specifies if this is the default payment gateway to process payments for your customer accounts.
	IsDefault bool `json:"isDefault,omitempty"`

	// The name of the payment gateway.
	Name string `json:"name,omitempty"`

	// The type of the payment gateway
	Type_ string `json:"type,omitempty"`
}

type GetarPaymentType

type GetarPaymentType struct {

	// The ID of the customer account that the payment is for.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the payment.
	Amount float64 `json:"amount,omitempty"`

	// The applied amount of the payment.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// The authorization transaction ID from the payment gateway.
	AuthTransactionId string `json:"authTransactionId,omitempty"`

	// The first six digits of the credit card or debit card used for the payment, when applicable.
	BankIdentificationNumber string `json:"bankIdentificationNumber,omitempty"`

	// The date and time when the payment was cancelled, in `yyyy-mm-dd hh:mm:ss` format.
	CancelledOn time.Time `json:"cancelledOn,omitempty"`

	// Comments about the payment.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the payment.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the payment was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The amount that the payment transfers to the credit balance. The value is not `0` only for those payments that come from legacy payment operations performed without the Advanced AR Settlement feature.
	CreditBalanceAmount float64 `json:"creditBalanceAmount,omitempty"`

	// A currency defined in the web-based UI administrative settings.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date and time when the payment takes effect, in `yyyy-mm-dd hh:mm:ss` format.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	FinanceInformation GetarPaymentTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the payment.
	GatewayId string `json:"gatewayId,omitempty"`

	// A merchant-specified natural key value that can be passed to the electronic payment gateway when a payment is created.  If not specified, the payment number will be passed in instead.
	GatewayOrderId string `json:"gatewayOrderId,omitempty"`

	// The message returned from the payment gateway for the payment. This message is gateway-dependent.
	GatewayResponse string `json:"gatewayResponse,omitempty"`

	// The code returned from the payment gateway for the payment. This code is gateway-dependent.
	GatewayResponseCode string `json:"gatewayResponseCode,omitempty"`

	// The status of the payment in the gateway; use for reconciliation.
	GatewayState string `json:"gatewayState,omitempty"`

	// The unique ID of the created payment. For example, 4028905f5a87c0ff015a87eb6b75007f.
	Id string `json:"id,omitempty"`

	// The date and time when a payment was marked and waiting for batch submission to the payment process, in `yyyy-mm-dd hh:mm:ss` format.
	MarkedForSubmissionOn time.Time `json:"markedForSubmissionOn,omitempty"`

	// The unique identification number of the payment. For example, P-00000001.
	Number string `json:"number,omitempty"`

	// The unique ID of the payment method that the customer used to make the payment.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// The unique ID of the payment method snapshot which is a copy of the particular Payment Method used in a transaction.
	PaymentMethodSnapshotId string `json:"paymentMethodSnapshotId,omitempty"`

	// The transaction ID returned by the payment gateway. Use this field to reconcile payments between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The amount of the payment that is refunded.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the payment. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondPaymentReferenceId string `json:"secondPaymentReferenceId,omitempty"`

	// The date and time when the payment was settled in the payment processor, in `yyyy-mm-dd hh:mm:ss` format. This field is used by the Spectrum gateway only and not applicable to other gateways.
	SettledOn time.Time `json:"settledOn,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptor string `json:"softDescriptor,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptorPhone string `json:"softDescriptorPhone,omitempty"`

	// The status of the payment.
	Status string `json:"status,omitempty"`

	// The date and time when the payment was submitted, in `yyyy-mm-dd hh:mm:ss` format.
	SubmittedOn time.Time `json:"submittedOn,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The type of the payment.
	Type_ string `json:"type,omitempty"`

	// The unapplied amount of the payment.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`

	// The ID of the Zuora user who last updated the payment.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the payment was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetarPaymentTypeFinanceInformation

type GetarPaymentTypeFinanceInformation struct {

	// The accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCode string `json:"bankAccountAccountingCode,omitempty"`

	// The type of the accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCodeType string `json:"bankAccountAccountingCodeType,omitempty"`

	// Whether the payment was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The accounting code for the unapplied payment.
	UnappliedPaymentAccountingCode string `json:"unappliedPaymentAccountingCode,omitempty"`

	// The type of the accounting code for the unapplied payment.
	UnappliedPaymentAccountingCodeType string `json:"unappliedPaymentAccountingCodeType,omitempty"`
}

Container for the finance information related to the payment.

type GetarPaymentTypewithSuccess

type GetarPaymentTypewithSuccess struct {

	// The ID of the customer account that the payment is for.
	AccountId string `json:"accountId,omitempty"`

	// The total amount of the payment.
	Amount float64 `json:"amount,omitempty"`

	// The applied amount of the payment.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// The authorization transaction ID from the payment gateway.
	AuthTransactionId string `json:"authTransactionId,omitempty"`

	// The first six digits of the credit card or debit card used for the payment, when applicable.
	BankIdentificationNumber string `json:"bankIdentificationNumber,omitempty"`

	// The date and time when the payment was cancelled, in `yyyy-mm-dd hh:mm:ss` format.
	CancelledOn time.Time `json:"cancelledOn,omitempty"`

	// Comments about the payment.
	Comment string `json:"comment,omitempty"`

	// The ID of the Zuora user who created the payment part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the payment was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The amount that the payment transfers to the credit balance. The value is not `0` only for those payments that come from legacy payment operations performed without the Advanced AR Settlement feature.
	CreditBalanceAmount float64 `json:"creditBalanceAmount,omitempty"`

	// A currency defined in the web-based UI administrative settings.  For more information about the supported currencies and , see [ISO Currency Codes] (https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/D_Country%2C_State%2C_and_Province_Codes/D_Currencies_and_Their_3-Letter_Codes).
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date and time when the payment takes effect, in `yyyy-mm-dd hh:mm:ss` format.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	FinanceInformation GetarPaymentTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the gateway instance that processes the payment.
	GatewayId string `json:"gatewayId,omitempty"`

	// A merchant-specified natural key value that can be passed to the electronic payment gateway when a payment is created.
	GatewayOrderId string `json:"gatewayOrderId,omitempty"`

	// The message returned from the payment gateway for the payment. This message is gateway-dependent.
	GatewayResponse string `json:"gatewayResponse,omitempty"`

	// The code returned from the payment gateway for the payment. This code is gateway-dependent.
	GatewayResponseCode string `json:"gatewayResponseCode,omitempty"`

	// The status of the payment in the gateway; use for reconciliation.
	GatewayState string `json:"gatewayState,omitempty"`

	// The unique ID of the payment. For example, 4028905f5a87c0ff015a87eb6b75007f.
	Id string `json:"id,omitempty"`

	// The date and time when a payment was marked and waiting for batch submission to the payment process, in `yyyy-mm-dd hh:mm:ss` format.
	MarkedForSubmissionOn time.Time `json:"markedForSubmissionOn,omitempty"`

	// The unique identification number of the payment. For example, P-00000001.
	Number string `json:"number,omitempty"`

	// The unique ID of the payment method that the customer used to make the payment.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// The unique ID of the payment method snapshot which is a copy of the particular Payment Method used in a transaction.
	PaymentMethodSnapshotId string `json:"paymentMethodSnapshotId,omitempty"`

	// The transaction ID returned by the payment gateway. Use this field to reconcile payments between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The amount of the payment that is refunded.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the payment. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondPaymentReferenceId string `json:"secondPaymentReferenceId,omitempty"`

	// The date and time when the payment was settled in the payment processor, in `yyyy-mm-dd hh:mm:ss` format. This field is used by the Spectrum gateway only and not applicable to other gateways.
	SettledOn time.Time `json:"settledOn,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptor string `json:"softDescriptor,omitempty"`

	// A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi.
	SoftDescriptorPhone string `json:"softDescriptorPhone,omitempty"`

	// The status of the payment.
	Status string `json:"status,omitempty"`

	// The date and time when the payment was submitted, in `yyyy-mm-dd hh:mm:ss` format.
	SubmittedOn time.Time `json:"submittedOn,omitempty"`

	// The type of the payment.
	Type_ string `json:"type,omitempty"`

	// The unapplied amount of the payment.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`

	// The ID of the Zuora user who last updated the payment.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the payment was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type GetcmTaxItemType

type GetcmTaxItemType struct {

	// The applied amount of the credit memo taxation item.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation GetcmTaxItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the credit memo taxation item.
	Id string `json:"id,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The name of the credit memo taxation item.
	Name string `json:"name,omitempty"`

	// The amount of the refund on the credit memo taxation item.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The ID of the source taxation item.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The amount of taxation.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date that the tax is applied to the credit memo, in `yyyy-mm-dd` format.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the credit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate.
	TaxRateType string `json:"taxRateType,omitempty"`

	// The unapplied amount of the credit memo taxation item.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`
}

type GetcmTaxItemTypeFinanceInformation

type GetcmTaxItemTypeFinanceInformation struct {

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The type of the accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCodeType string `json:"onAccountAccountingCodeType,omitempty"`

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`

	// The type of the accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCodeType string `json:"salesTaxPayableAccountingCodeType,omitempty"`
}

Container for the finance information related to the credit memo taxation item.

type GetdmTaxItemType

type GetdmTaxItemType struct {

	// The applied amount of the debit memo taxation item.
	AppliedAmount float64 `json:"appliedAmount,omitempty"`

	// The amount of credit memos applied to the debit memo.
	CreditAmount float64 `json:"creditAmount,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation GetdmTaxItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the debit memo taxation item.
	Id string `json:"id,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The name of the debit memo taxation item.
	Name string `json:"name,omitempty"`

	// The amount of payments applied to the debit memo.
	PaymentAmount float64 `json:"paymentAmount,omitempty"`

	// The amount of the refund on the debit memo taxation item.
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// The ID of the source taxation item.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The amount of taxation.
	TaxAmount float64 `json:"taxAmount,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date that the tax is applied to the debit memo, in `yyyy-mm-dd` format.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the debit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate.
	TaxRateType string `json:"taxRateType,omitempty"`

	// The unapplied amount of the debit memo taxation item.
	UnappliedAmount float64 `json:"unappliedAmount,omitempty"`
}

type GetdmTaxItemTypeFinanceInformation

type GetdmTaxItemTypeFinanceInformation struct {

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`

	// The type of the accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCodeType string `json:"salesTaxPayableAccountingCodeType,omitempty"`
}

Container for the finance information related to the debit memo taxation item.

type GetrsDetailForProductChargeType

type GetrsDetailForProductChargeType struct {

	// The ID of a customer account.
	AccountId string `json:"accountId,omitempty"`

	// The revenue schedule amount, which is the sum of all revenue items.   This field cannot be null and must be formatted based on the currency, such as `JPY 30` or `USD 30.15`. Test out the currency to ensure you are using the proper formatting; otherwise, the response will fail and this error message is returned: `Allocation amount with wrong decimal places`.
	Amount string `json:"amount,omitempty"`

	// The date and time when the record was created, in `yyyy-mm-dd hh:mm:ss` format.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldsValues string `json:"customFieldsValues,omitempty"`

	// The linked transaction ID for billing transactions. This field is used for all rules except for the custom unlimited or manual recognition rule models. If using the custom unlimited rule model, then the field value must be null. If the field is not null, then the referenceId field must be null.
	LinkedTransactionId string `json:"linkedTransactionId,omitempty"`

	// The number for the linked invoice item, invoice item adjustment, or debit memo item transaction. This field is used for all rules except for the custom unlimited or manual recognition rule models. If using the custom unlimited or manual recognition rule models, then the field value is null.
	LinkedTransactionNumber string `json:"linkedTransactionNumber,omitempty"`

	// The type of linked transaction for billing transactions, which can be invoice item, invoice item adjustment, or debit memo item. This field is used for all rules except for the custom unlimited or manual recognition rule models.
	LinkedTransactionType string `json:"linkedTransactionType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, \"RS-00000001\".
	Number string `json:"number,omitempty"`

	// The ID of a product rate plan charge.
	ProductChargeId string `json:"productChargeId,omitempty"`

	// The name of the recognition rule.
	RecognitionRuleName string `json:"recognitionRuleName,omitempty"`

	// The revenue that was distributed in a closed accounting period.
	RecognizedRevenue string `json:"recognizedRevenue,omitempty"`

	// The reference ID is used only in the custom unlimited rule to create a revenue schedule. In this scenario, the revenue schedule is not linked to a credit memo item.
	ReferenceId string `json:"referenceId,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRsRevenueItemType `json:"revenueItems,omitempty"`

	// The effective date of the revenue schedule. For example, the revenue schedule date for bookings-based revenue recognition is typically set to the order date or contract date.  The date cannot be in a closed accounting period. The date must be in `yyyy-mm-dd` format.
	RevenueScheduleDate time.Time `json:"revenueScheduleDate,omitempty"`

	// The revenue in the open-ended accounting period.
	UndistributedUnrecognizedRevenue string `json:"undistributedUnrecognizedRevenue,omitempty"`

	// The revenue distributed in all open accounting periods, which includes the open-ended accounting period.
	UnrecognizedRevenue string `json:"unrecognizedRevenue,omitempty"`

	// The date and time when the revenue automation start date was set, in `yyyy-mm-dd hh:mm:ss` format.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetrsDetailType

type GetrsDetailType struct {

	// An account ID.
	AccountId string `json:"accountId,omitempty"`

	// The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as `JPY 30` or `USD 30.15`. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned: `Allocation amount with wrong decimal places.`
	Amount string `json:"amount,omitempty"`

	// The date and time when the record was created, in `yyyy-mm-dd hh:mm:ss` format.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The linked transaction ID for billing transactions. This field is used for all rules except for the custom unlimited or manual recognition rule models. If using the custom unlimited rule model, then the field value must be null. If the field is not null, then the referenceId field must be null.
	LinkedTransactionId string `json:"linkedTransactionId,omitempty"`

	// The number for the linked invoice item or invoice item adjustment transaction. This field is used for all rules except for the custom unlimited or manual recognition rule models. If using the custom unlimited or manual recognition rule models, then the field value is null.
	LinkedTransactionNumber string `json:"linkedTransactionNumber,omitempty"`

	// The type of linked transaction for billing transactions, which can be invoice item or invoice item adjustment. This field is used for all rules except for the custom unlimited or manual recognition rule models.
	LinkedTransactionType string `json:"linkedTransactionType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// Revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, \"RS-00000001\".
	Number string `json:"number,omitempty"`

	// The name of the recognition rule.
	RecognitionRuleName string `json:"recognitionRuleName,omitempty"`

	// The revenue that was distributed in a closed accounting period.
	RecognizedRevenue string `json:"recognizedRevenue,omitempty"`

	// Reference ID is used only in the custom unlimited rule to create a revenue schedule. In this scenario, the revenue schedule is not linked to an invoice item or invoice item adjustment.
	ReferenceId string `json:"referenceId,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRsRevenueItemType `json:"revenueItems,omitempty"`

	// The effective date of the revenue schedule. For example, the revenue schedule date for bookings-based revenue recognition is typically set to the order date or contract date.  The date cannot be in a closed accounting period. The date must be in `yyyy-mm-dd` format.
	RevenueScheduleDate time.Time `json:"revenueScheduleDate,omitempty"`

	// The original subscription charge ID.
	SubscriptionChargeId string `json:"subscriptionChargeId,omitempty"`

	// The original subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Revenue in the open-ended accounting period.
	UndistributedUnrecognizedRevenue string `json:"undistributedUnrecognizedRevenue,omitempty"`

	// Revenue distributed in all open accounting periods, which includes the open-ended accounting period.
	UnrecognizedRevenue string `json:"unrecognizedRevenue,omitempty"`

	// The date and time when the revenue automation start date was set, in `yyyy-mm-dd hh:mm:ss` formst.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetrsDetailWithoutSuccessType

type GetrsDetailWithoutSuccessType struct {

	// An account ID.
	AccountId string `json:"accountId,omitempty"`

	// The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as `JPY 30` or `USD 30.15`. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned: `Allocation amount with wrong decimal places.`
	Amount string `json:"amount,omitempty"`

	// The date and time when the record was created, in `yyyy-mm-dd hh:mm:ss` format.
	CreatedOn time.Time `json:"createdOn,omitempty"`

	// The type of currency used.
	Currency string `json:"currency,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The linked transaction ID for billing transactions. This field is used for all rules except for the custom unlimited or manual recognition rule models. If using the custom unlimited rule model, then the field value must be null. If the field is not null, then the referenceId field must be null.
	LinkedTransactionId string `json:"linkedTransactionId,omitempty"`

	// The number for the linked invoice item or invoice item adjustment transaction. This field is used for all rules except for the custom unlimited or manual recognition rule models. If using the custom unlimited or manual recognition rule models, then the field value is null.
	LinkedTransactionNumber string `json:"linkedTransactionNumber,omitempty"`

	// The type of linked transaction for billing transactions, which can be invoice item or invoice item adjustment. This field is used for all rules except for the custom unlimited or manual recognition rule models.
	LinkedTransactionType string `json:"linkedTransactionType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// Revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, \"RS-00000001\".
	Number string `json:"number,omitempty"`

	// The name of the recognition rule.
	RecognitionRuleName string `json:"recognitionRuleName,omitempty"`

	// The revenue that was distributed in a closed accounting period.
	RecognizedRevenue string `json:"recognizedRevenue,omitempty"`

	// Reference ID is used only in the custom unlimited rule to create a revenue schedule. In this scenario, the revenue schedule is not linked to an invoice item or invoice item adjustment.
	ReferenceId string `json:"referenceId,omitempty"`

	// Revenue items are listed in ascending order by the accounting period start date.
	RevenueItems []GetRsRevenueItemType `json:"revenueItems,omitempty"`

	// The effective date of the revenue schedule. For example, the revenue schedule date for bookings-based revenue recognition is typically set to the order date or contract date.  The date cannot be in a closed accounting period. The date must be in the `yyyy-mm-dd` format.
	RevenueScheduleDate time.Time `json:"revenueScheduleDate,omitempty"`

	// The original subscription charge ID.
	SubscriptionChargeId string `json:"subscriptionChargeId,omitempty"`

	// The original subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Revenue in the open-ended accounting period.
	UndistributedUnrecognizedRevenue string `json:"undistributedUnrecognizedRevenue,omitempty"`

	// Revenue distributed in all open accounting periods, which includes the open-ended accounting period.
	UnrecognizedRevenue string `json:"unrecognizedRevenue,omitempty"`

	// The date when the revenue automation start date was set, in `yyyy-mm-dd hh:mm:ss` format.
	UpdatedOn time.Time `json:"updatedOn,omitempty"`
}

type GetrsDetailsByChargeType

type GetrsDetailsByChargeType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Represents how revenue will be recognized over time.  This contains the details of a revenue schedule. If you do not specify the `pageSize` variable, the default number of revenue schedules returned per invocation is 8, and if there are more than 8 revenue schedules to be returned, the `nextPage` field will provide a hyperlink to view the next page(s) of revenue events. The order of revenue schedules is descending by the `updatedOn` field.
	RevenueSchedules []GetrsDetailWithoutSuccessType `json:"revenueSchedules,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type GetrsDetailsByProductChargeType

type GetrsDetailsByProductChargeType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// How revenue will be recognized over time.
	RevenueSchedules []GetrsDetailForProductChargeType `json:"revenueSchedules,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type HMACSignaturesApi

type HMACSignaturesApi struct {
	Configuration *Configuration
}

func NewHMACSignaturesApi

func NewHMACSignaturesApi() *HMACSignaturesApi

func NewHMACSignaturesApiWithBasePath

func NewHMACSignaturesApiWithBasePath(basePath string) *HMACSignaturesApi

func (HMACSignaturesApi) POSTHMACSignatures

func (a HMACSignaturesApi) POSTHMACSignatures(request PosthmacSignatureType, entityId string, entityName string) (*PosthmacSignatureResponseType, *APIResponse, error)

*

type HostedPagesApi

type HostedPagesApi struct {
	Configuration *Configuration
}

func NewHostedPagesApi

func NewHostedPagesApi() *HostedPagesApi

func NewHostedPagesApiWithBasePath

func NewHostedPagesApiWithBasePath(basePath string) *HostedPagesApi

func (HostedPagesApi) GetHostedPages

func (a HostedPagesApi) GetHostedPages(entityId string, entityName string, pageSize int32, versionNumber string) (*GetHostedPagesType, *APIResponse, error)

*

  • Return hosted pages
  • The hostedpages call returns the Payment Pages configuration metadata, specifically, page ID, page version, payment method type. The following are the version-specific and general REST requests for Payment Pages: * The request for Payment Pages 1.0 configuration information: `GET <BaseURL>/hostedpages?version=1` * The request for Payment Pages 2.0 configuration information: `GET <BaseURL>/hostedpages?version=2` * The request for all versions of Payment Pages configuration information: `GET <BaseURL>/hostedpages` ## Notes If you do not have the corresponding tenant setting enabled, e.g., the request `version` parameter set to 2 with the Payment Pages 2.0 setting disabled, you will receive an error. *
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param versionNumber Version of the Payment Pages for which you want to retrieve the configuration information. Specify 1 for Payment Pages 1.0 or 2 for Payment Pages 2.0. If omitted, information for all versions of Payment Pages are returned. The response also depends on your tenant settings for Payment Pages 1.0 and Payment Pages 2.0. For example, if only the tenant setting for Payment Pages 2.0 is enabled, the response will only contain information for Payment Pages 2.0 forms even when this parameter is omitted.
  • @return *GetHostedPagesType

type ImportsApi

type ImportsApi struct {
	Configuration *Configuration
}

func NewImportsApi

func NewImportsApi() *ImportsApi

func NewImportsApiWithBasePath

func NewImportsApiWithBasePath(basePath string) *ImportsApi

func (ImportsApi) ObjectGETImport

func (a ImportsApi) ObjectGETImport(id string, entityId string, entityName string, fields string) (*ProxyGetImport, *APIResponse, error)

*

type InlineResponse200

type InlineResponse200 struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Id of the billing preview run.
	BillingPreviewRunId string `json:"billingPreviewRunId,omitempty"`
}

type Invoice

type Invoice struct {

	//
	AccountId string `json:"AccountId,omitempty"`

	//  The amount of the invoice adjustments associated with the invoice. **Character limi**t: 16   **Values**: a valid currency amount
	AdjustmentAmount float64 `json:"AdjustmentAmount,omitempty"`

	//  The sum of all charges and taxes associated with the invoice.   **Character limit**: 16   **Values**: automatically generated
	Amount float64 `json:"Amount,omitempty"`

	//  The sum of all charges associated with the invoice. Taxes are excluded from this value.   **Character limit**: 16   **Values**: automatically generated
	AmountWithoutTax float64 `json:"AmountWithoutTax,omitempty"`

	//  The remaining balance of the invoice after all payments, adjustments, and refunds are applied.   **Character limit**: 16   **Values**: automatically generated
	Balance float64 `json:"Balance,omitempty"`

	//  The ID of a Bill Run.   **Character limit**: 32   **Values**: a BillRun ID
	BillRunId string `json:"BillRunId,omitempty"`

	//  Required
	Body string `json:"Body,omitempty"`

	//  Additional information related to the invoice that a Zuora user added to the invoice.   **Character limit**: 255 **Values:** a string of 255 characters or fewer
	Comments string `json:"Comments,omitempty"`

	//  The user ID of the person who created the invoice. If a bill run generated the invoice, then the value is the user ID of person who created the bill run.   **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the invoice was generated.   **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The currency amount of the adjustment applied to the customer's credit balance.   **Character limit**: 16   **Values**: a valid currency amount This field is only available if the [Zuora Global Support](http://support.zuora.com/) to enable this feature.
	CreditBalanceAdjustmentAmount float64 `json:"CreditBalanceAdjustmentAmount,omitempty"`

	//  The date by which the payment for this invoice is due.   **Character limit**: 29
	DueDate time.Time `json:"DueDate,omitempty"`

	//  Specifies whether the invoice includes one-time charges. You can use this field only with the `generate ` call for the Invoice object.   **Character limit**: 5   **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesOneTime bool `json:"IncludesOneTime,omitempty"`

	//  Specifies whether the invoice includes recurring charges. You can use this field only with the `generate `call for the Invoice object.   **Character limit**: 5   **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesRecurring bool `json:"IncludesRecurring,omitempty"`

	//  Specifies whether the invoice includes usage charges. You can use this field only with the `generate `call for the Invoice object.   **Character limit**: 5   **Values**: automatically generated from one of the following: `True `(default), `False`
	IncludesUsage bool `json:"IncludesUsage,omitempty"`

	//  Specifies the date on which to generate the invoice.   **Character limit**: 29
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//  The unique identification number for the invoice. This number is returned as a string.   **Character limit**: 32   **Values**: automatically generated
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	//  The date when the invoice was last emailed.   **Character limit**: 29   **Values**: automatically generated
	LastEmailSentDate time.Time `json:"LastEmailSentDate,omitempty"`

	//  The amount of payments applied to the invoice.   **Character limit**: 16 **Value**s: automatically generated
	PaymentAmount float64 `json:"PaymentAmount,omitempty"`

	//  The user ID of the person who moved the invoice to Posted status.   **Character limit**: 32   **Values**: automatically generated
	PostedBy string `json:"PostedBy,omitempty"`

	//  The date when the invoice was posted. **Character limit:** 29   **Values**: automatically generated
	PostedDate time.Time `json:"PostedDate,omitempty"`

	//  Specifies the amount of a refund that was applied against an earlier payment on the invoice.   **Character limit**: 16   **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount,omitempty"`

	//  Regenerates a PDF of an invoice that was already generated. Add this field to an `update ` call to regenerate an invoice PDF. Note that when you set the `RegenerateInvoicePDF` field to `true`, you cannot update any other fields in the same `update ` call. Otherwise, you will receive the following `INVALID_VALUE` error: "When field RegenerateInvoicePDF is set to true to regenerate the invoice PDF file, changes on other fields of the invoice are not allowed."  **Character limit**: 5   **Values**: `True`, `False`
	RegenerateInvoicePDF bool `json:"RegenerateInvoicePDF,omitempty"`

	//  The status of the invoice in the system. This status is not the status of the payment of the invoice, just the status of the invoice itself.   **Character limit**: 8   **Values**: one of the following:  -  Draft (default, automatically set upon invoice creation)  -  Posted  -  Canceled
	Status string `json:"Status,omitempty"`

	//  This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in this bill run.   **Character limit**: 29
	TargetDate time.Time `json:"TargetDate,omitempty"`

	//  The total amount of the taxes applied to the invoice.   **Character limit**: 16   **Values**: automatically generated
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  The total amount of the invoice that is exempt from taxation.   **Character limit**: 16   **Values**: automatically generated
	TaxExemptAmount float64 `json:"TaxExemptAmount,omitempty"`

	//  Specifies whether or not the invoice was transferred to an external accounting system, such as NetSuite.   **Character limit**: 10   **Values**: Processing, Yes, Error, Ignore
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type InvoiceAdjustmentsApi

type InvoiceAdjustmentsApi struct {
	Configuration *Configuration
}

func NewInvoiceAdjustmentsApi

func NewInvoiceAdjustmentsApi() *InvoiceAdjustmentsApi

func NewInvoiceAdjustmentsApiWithBasePath

func NewInvoiceAdjustmentsApiWithBasePath(basePath string) *InvoiceAdjustmentsApi

func (InvoiceAdjustmentsApi) ObjectDELETEInvoiceAdjustment

func (a InvoiceAdjustmentsApi) ObjectDELETEInvoiceAdjustment(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (InvoiceAdjustmentsApi) ObjectGETInvoiceAdjustment

func (a InvoiceAdjustmentsApi) ObjectGETInvoiceAdjustment(id string, entityId string, entityName string, fields string) (*ProxyGetInvoiceAdjustment, *APIResponse, error)

*

func (InvoiceAdjustmentsApi) ObjectPOSTInvoiceAdjustment

func (a InvoiceAdjustmentsApi) ObjectPOSTInvoiceAdjustment(createRequest ProxyCreateInvoiceAdjustment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (InvoiceAdjustmentsApi) ObjectPUTInvoiceAdjustment

func (a InvoiceAdjustmentsApi) ObjectPUTInvoiceAdjustment(id string, modifyRequest ProxyModifyInvoiceAdjustment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type InvoiceData

type InvoiceData struct {
	Invoice InvoiceDataInvoice `json:"Invoice,omitempty"`

	//
	InvoiceItem []InvoiceItem `json:"InvoiceItem,omitempty"`
}

type InvoiceDataInvoice

type InvoiceDataInvoice struct {

	//
	AccountId string `json:"AccountId,omitempty"`

	//  The amount of the invoice adjustments associated with the invoice. **Character limi**t: 16   **Values**: a valid currency amount
	AdjustmentAmount float64 `json:"AdjustmentAmount,omitempty"`

	//  The sum of all charges and taxes associated with the invoice.   **Character limit**: 16   **Values**: automatically generated
	Amount float64 `json:"Amount,omitempty"`

	//  The sum of all charges associated with the invoice. Taxes are excluded from this value.   **Character limit**: 16   **Values**: automatically generated
	AmountWithoutTax float64 `json:"AmountWithoutTax,omitempty"`

	//  The remaining balance of the invoice after all payments, adjustments, and refunds are applied.   **Character limit**: 16   **Values**: automatically generated
	Balance float64 `json:"Balance,omitempty"`

	//  The ID of a Bill Run.   **Character limit**: 32   **Values**: a BillRun ID
	BillRunId string `json:"BillRunId,omitempty"`

	//  Required
	Body string `json:"Body,omitempty"`

	//  Additional information related to the invoice that a Zuora user added to the invoice.   **Character limit**: 255 **Values:** a string of 255 characters or fewer
	Comments string `json:"Comments,omitempty"`

	//  The user ID of the person who created the invoice. If a bill run generated the invoice, then the value is the user ID of person who created the bill run.   **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the invoice was generated.   **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The currency amount of the adjustment applied to the customer's credit balance.   **Character limit**: 16   **Values**: a valid currency amount This field is only available if the [Zuora Global Support](http://support.zuora.com/) to enable this feature.
	CreditBalanceAdjustmentAmount float64 `json:"CreditBalanceAdjustmentAmount,omitempty"`

	//  The date by which the payment for this invoice is due.   **Character limit**: 29
	DueDate time.Time `json:"DueDate,omitempty"`

	//  Specifies whether the invoice includes one-time charges. You can use this field only with the `generate ` call for the Invoice object.   **Character limit**: 5   **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesOneTime bool `json:"IncludesOneTime,omitempty"`

	//  Specifies whether the invoice includes recurring charges. You can use this field only with the `generate `call for the Invoice object.   **Character limit**: 5   **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesRecurring bool `json:"IncludesRecurring,omitempty"`

	//  Specifies whether the invoice includes usage charges. You can use this field only with the `generate `call for the Invoice object.   **Character limit**: 5   **Values**: automatically generated from one of the following: `True `(default), `False`
	IncludesUsage bool `json:"IncludesUsage,omitempty"`

	//  Specifies the date on which to generate the invoice.   **Character limit**: 29
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//  The unique identification number for the invoice. This number is returned as a string.   **Character limit**: 32   **Values**: automatically generated
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	//  The date when the invoice was last emailed.   **Character limit**: 29   **Values**: automatically generated
	LastEmailSentDate time.Time `json:"LastEmailSentDate,omitempty"`

	//  The amount of payments applied to the invoice.   **Character limit**: 16 **Value**s: automatically generated
	PaymentAmount float64 `json:"PaymentAmount,omitempty"`

	//  The user ID of the person who moved the invoice to Posted status.   **Character limit**: 32   **Values**: automatically generated
	PostedBy string `json:"PostedBy,omitempty"`

	//  The date when the invoice was posted. **Character limit:** 29   **Values**: automatically generated
	PostedDate time.Time `json:"PostedDate,omitempty"`

	//  Specifies the amount of a refund that was applied against an earlier payment on the invoice.   **Character limit**: 16   **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount,omitempty"`

	//  Regenerates a PDF of an invoice that was already generated. Add this field to an `update ` call to regenerate an invoice PDF. Note that when you set the `RegenerateInvoicePDF` field to `true`, you cannot update any other fields in the same `update ` call. Otherwise, you will receive the following `INVALID_VALUE` error: "When field RegenerateInvoicePDF is set to true to regenerate the invoice PDF file, changes on other fields of the invoice are not allowed."  **Character limit**: 5   **Values**: `True`, `False`
	RegenerateInvoicePDF bool `json:"RegenerateInvoicePDF,omitempty"`

	//  The status of the invoice in the system. This status is not the status of the payment of the invoice, just the status of the invoice itself.   **Character limit**: 8   **Values**: one of the following:  -  Draft (default, automatically set upon invoice creation)  -  Posted  -  Canceled
	Status string `json:"Status,omitempty"`

	//  This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in this bill run.   **Character limit**: 29
	TargetDate time.Time `json:"TargetDate,omitempty"`

	//  The total amount of the taxes applied to the invoice.   **Character limit**: 16   **Values**: automatically generated
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  The total amount of the invoice that is exempt from taxation.   **Character limit**: 16   **Values**: automatically generated
	TaxExemptAmount float64 `json:"TaxExemptAmount,omitempty"`

	//  Specifies whether or not the invoice was transferred to an external accounting system, such as NetSuite.   **Character limit**: 10   **Values**: Processing, Yes, Error, Ignore
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type InvoiceItem

type InvoiceItem struct {

	//  The accounting code for the item's charge. Accounting codes group transactions that contain similar accounting attributes.   **Character limit**: 100   **Values**: inherited from `RatePlanCharge.AccountingCode`
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The charge number that the discount charge is applied to. This field is only for the invoice items that are discount charges. This field is only returned in subscription previews. This field will be returned in the response if you specify the charge number in the rate plan charges in the request.  **Character limit**: 32  **Values**: inherited from `RatePlanCharge.ChargeNumber` for the charge associated with the invoice item that the discount charge is applied to
	AppliedToChargeNumber string `json:"AppliedToChargeNumber,omitempty"`

	//  Associates a discount invoice item to a specific invoice item.  **Character limit**: 32  **Values**: inherited from the ID of the charge that a discount applies to
	AppliedToInvoiceItemId string `json:"AppliedToInvoiceItemId,omitempty"`

	//  The amount being charged for the invoice item. This amount doesn't include taxes regardless if the charge's tax mode is inclusive or exclusive.   **Character limit**:   **Values**: automatically calculated from multiple fields in multiple objects
	ChargeAmount float64 `json:"ChargeAmount,omitempty"`

	//  The date when the Invoice Item is created .   **Character limit**: 29   **Values**: automatically generated
	ChargeDate time.Time `json:"ChargeDate,omitempty"`

	//  A description of the invoice item's charge.   **Character limit**: 500   **Values**: inherited from `RatePlanCharge.Description`
	ChargeDescription string `json:"ChargeDescription,omitempty"`

	//  The ID of the rate plan charge that is associated with this invoice item upon object creation.   **Character limit**: 32   **Values**: inherited from `RatePlanCharge.Id`
	ChargeId string `json:"ChargeId,omitempty"`

	//  The name of the invoice item's charge. **Character limi**t: 50 **Values: **inherited from `RatePlanCharge.Name`
	ChargeName string `json:"ChargeName,omitempty"`

	//  The unique identifier of the invoice item's charge. **Character limit:** 50 **Values:** inherited from `RatePlanCharge.ChargeNumber`
	ChargeNumber string `json:"ChargeNumber,omitempty"`

	//  Specifies the type of charge.   **Character limit**: 9   **Values**: one of the following:  - `OneTime` - `Recurring` - `Usage`
	ChargeType string `json:"ChargeType,omitempty"`

	//  The user ID of the person who created the invoice item.   **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date the invoice item was created. **Character limit:** 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The ID of the invoice that's associated with this invoice item.   **Character limit**: 32   **Values**: inherited from `Invoice.Id`
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  Identifies the kind of charge where 0 is a charge, 1 is a discount, 2 is a prepayment, and 3 is a tax. The returned value is text not decimal on data sources.   **Character limit**: **Values: **  - 0: charge - 1: discount - 2: prepayment - 3: tax
	ProcessingType float64 `json:"ProcessingType,omitempty"`

	//  A description of the product associated with this invoice item.   **Character limit**: 500   **Values**: inherited from `Product.Description`
	ProductDescription string `json:"ProductDescription,omitempty"`

	//  The ID of the product associated with this invoice item.   **Character limit**: 32   **Values**: inherited from `Product.Id`
	ProductId string `json:"ProductId,omitempty"`

	//  The name of the product associated with this invoice item.   **Character limit**: 255 **Values: **inherited from `Product.Name`
	ProductName string `json:"ProductName,omitempty"`

	//  The ID of the rate plan charge that's associated with this invoice item.   **Character limit**: 32   **Values**: inherited from `ProductRatePlanCharge.Id` You cannot `query ` for this field. Only the s`ubscribe ` preview and the `amend ` preview calls will return the value of this field in the response.
	ProductRatePlanChargeId string `json:"ProductRatePlanChargeId,omitempty"`

	//  The number of units for this invoice item.    **Values**: inherited from `RatePlanCharge.Quantity`
	Quantity float64 `json:"Quantity,omitempty"`

	//  The ID of the rate plan charge that's associated with this invoice item.   **Character limit**: 32   **Values**: inherited from `RatePlanCharge.Id`
	RatePlanChargeId string `json:"RatePlanChargeId,omitempty"`

	//  Associates this invoice item with a specific revenue recognition code.   **Character limit**: 32   **Values**: inherited from `ProductRatePlanCharge.RevRecCode`
	RevRecCode string `json:"RevRecCode,omitempty"`

	//  The date when revenue recognition is triggered.   **Character limit**: 29   **Values**: generated from `InvoiceItem.RevRecTriggerCondition`
	RevRecStartDate time.Time `json:"RevRecStartDate,omitempty"`

	//  Specifies when revenue recognition begins based on a triggering event.   **Character limit**:   **Values**: inherited from `ProductRatePlanCharge`.`RevRecTriggerCondition`
	RevRecTriggerCondition string `json:"RevRecTriggerCondition,omitempty"`

	//  The unique SKU for the product associated with this invoice item.   **Character limit**: 255   **Values**: inherited from `Product.SKU`
	SKU string `json:"SKU,omitempty"`

	//  The end date of the service period associated with this invoice item. Service ends one second before the date in this value.   **Character limit**: 29   **Values**: automatically generated
	ServiceEndDate time.Time `json:"ServiceEndDate,omitempty"`

	//  The start date of the service period associated with this invoice item. If the associated charge is a one-time fee, then this date is the date of that charge. **Character limit:** 29   **Values**: automatically generated
	ServiceStartDate time.Time `json:"ServiceStartDate,omitempty"`

	//  The ID of the subscription associated with the invoice item.   **Character limit**: 32   **Values**: inherited from `Subscription.Id`
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The number of the subscription associated with the invoice item.   **Character limit**:   **Values**:
	SubscriptionNumber string `json:"SubscriptionNumber,omitempty"`

	//  The amount of tax applied to the invoice item's charge.   **Character limit**:   **Values**: calculated from multiple fields in the ProductRatePlanCharge object
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  Specifies the tax code for taxation rules.   **Character limit**: 6   **Values**: inherited from `ProductRatePlanCharge.TaxCode`
	TaxCode string `json:"TaxCode,omitempty"`

	//  The amount of the invoice item's charge that's tax exempt.   **Character limit**:   **Values**: calculated from multiple fields in the ProductRatePlanCharge object
	TaxExemptAmount float64 `json:"TaxExemptAmount,omitempty"`

	//  The tax mode of the invoice item.   **Character limit**: 12   **Values**: `TaxExclusive`, `TaxInclusive`
	TaxMode string `json:"TaxMode,omitempty"`

	//  Specifies the units to measure usage. Units of measure are configured in the web-based UI: **Z-Billing > Settings**  **Character limit**:   **Values**: inherited from `ProductRatePlanCharge.UOM`
	UOM string `json:"UOM,omitempty"`

	//  The per-unit price of the invoice item.   **Character limit**:   **Values**: calculated from multiple fields in ProductRatePlanCharge and ProductRatePlanChargeTier objets
	UnitPrice float64 `json:"UnitPrice,omitempty"`

	//  The ID of the user who last updated the invoice item.   **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice item was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type InvoiceItemAdjustmentsApi

type InvoiceItemAdjustmentsApi struct {
	Configuration *Configuration
}

func NewInvoiceItemAdjustmentsApi

func NewInvoiceItemAdjustmentsApi() *InvoiceItemAdjustmentsApi

func NewInvoiceItemAdjustmentsApiWithBasePath

func NewInvoiceItemAdjustmentsApiWithBasePath(basePath string) *InvoiceItemAdjustmentsApi

func (InvoiceItemAdjustmentsApi) ObjectDELETEInvoiceItemAdjustment

func (a InvoiceItemAdjustmentsApi) ObjectDELETEInvoiceItemAdjustment(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (InvoiceItemAdjustmentsApi) ObjectGETInvoiceItemAdjustment

func (a InvoiceItemAdjustmentsApi) ObjectGETInvoiceItemAdjustment(id string, entityId string, entityName string, fields string) (*ProxyGetInvoiceItemAdjustment, *APIResponse, error)

*

type InvoiceItemsApi

type InvoiceItemsApi struct {
	Configuration *Configuration
}

func NewInvoiceItemsApi

func NewInvoiceItemsApi() *InvoiceItemsApi

func NewInvoiceItemsApiWithBasePath

func NewInvoiceItemsApiWithBasePath(basePath string) *InvoiceItemsApi

func (InvoiceItemsApi) ObjectGETInvoiceItem

func (a InvoiceItemsApi) ObjectGETInvoiceItem(id string, entityId string, entityName string, fields string) (*ProxyGetInvoiceItem, *APIResponse, error)

*

type InvoicePaymentsApi

type InvoicePaymentsApi struct {
	Configuration *Configuration
}

func NewInvoicePaymentsApi

func NewInvoicePaymentsApi() *InvoicePaymentsApi

func NewInvoicePaymentsApiWithBasePath

func NewInvoicePaymentsApiWithBasePath(basePath string) *InvoicePaymentsApi

func (InvoicePaymentsApi) ObjectGETInvoicePayment

func (a InvoicePaymentsApi) ObjectGETInvoicePayment(id string, entityId string, entityName string, fields string) (*ProxyGetInvoicePayment, *APIResponse, error)

*

func (InvoicePaymentsApi) ObjectPOSTInvoicePayment

func (a InvoicePaymentsApi) ObjectPOSTInvoicePayment(createRequest ProxyCreateInvoicePayment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (InvoicePaymentsApi) ObjectPUTInvoicePayment

func (a InvoicePaymentsApi) ObjectPUTInvoicePayment(id string, modifyRequest ProxyModifyInvoicePayment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type InvoiceProcessingOptions

type InvoiceProcessingOptions struct {

	//  The invoice date.
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//  The date that determines which charges to bill. Charges prior to this date or on this date are billed on the resulting invoices.
	InvoiceTargetDate time.Time `json:"InvoiceTargetDate,omitempty"`
}

type InvoiceResponseType

type InvoiceResponseType struct {

	// The ID of the generated invoice.
	Id string `json:"id,omitempty"`
}

type InvoiceSplitItemsApi

type InvoiceSplitItemsApi struct {
	Configuration *Configuration
}

func NewInvoiceSplitItemsApi

func NewInvoiceSplitItemsApi() *InvoiceSplitItemsApi

func NewInvoiceSplitItemsApiWithBasePath

func NewInvoiceSplitItemsApiWithBasePath(basePath string) *InvoiceSplitItemsApi

func (InvoiceSplitItemsApi) ObjectGETInvoiceSplitItem

func (a InvoiceSplitItemsApi) ObjectGETInvoiceSplitItem(id string, entityId string, entityName string, fields string) (*ProxyGetInvoiceSplitItem, *APIResponse, error)

*

type InvoiceSplitsApi

type InvoiceSplitsApi struct {
	Configuration *Configuration
}

func NewInvoiceSplitsApi

func NewInvoiceSplitsApi() *InvoiceSplitsApi

func NewInvoiceSplitsApiWithBasePath

func NewInvoiceSplitsApiWithBasePath(basePath string) *InvoiceSplitsApi

func (InvoiceSplitsApi) ObjectGETInvoiceSplit

func (a InvoiceSplitsApi) ObjectGETInvoiceSplit(id string, entityId string, entityName string, fields string) (*ProxyGetInvoiceSplit, *APIResponse, error)

*

type InvoicesApi

type InvoicesApi struct {
	Configuration *Configuration
}

func NewInvoicesApi

func NewInvoicesApi() *InvoicesApi

func NewInvoicesApiWithBasePath

func NewInvoicesApiWithBasePath(basePath string) *InvoicesApi

func (InvoicesApi) ObjectDELETEInvoice

func (a InvoicesApi) ObjectDELETEInvoice(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (InvoicesApi) ObjectGETInvoice

func (a InvoicesApi) ObjectGETInvoice(id string, entityId string, entityName string, fields string) (*ProxyGetInvoice, *APIResponse, error)

*

func (InvoicesApi) ObjectPOSTInvoice

func (a InvoicesApi) ObjectPOSTInvoice(createRequest ProxyCreateInvoice, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (InvoicesApi) ObjectPUTInvoice

func (a InvoicesApi) ObjectPUTInvoice(id string, modifyRequest ProxyModifyInvoice, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (InvoicesApi) POSTEmailInvoice

func (a InvoicesApi) POSTEmailInvoice(request PostInvoiceEmailRequestType, invoiceId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (InvoicesApi) PUTReverseInvoice

func (a InvoicesApi) PUTReverseInvoice(invoiceId string, request PutReverseInvoiceType, entityId string, entityName string) (*PutReverseInvoiceResponseType, *APIResponse, error)

*

type JournalRunsApi

type JournalRunsApi struct {
	Configuration *Configuration
}

func NewJournalRunsApi

func NewJournalRunsApi() *JournalRunsApi

func NewJournalRunsApiWithBasePath

func NewJournalRunsApiWithBasePath(basePath string) *JournalRunsApi

func (JournalRunsApi) DELETEJournalRun

func (a JournalRunsApi) DELETEJournalRun(jrNumber string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (JournalRunsApi) GETJournalRun

func (a JournalRunsApi) GETJournalRun(jrNumber string, entityId string, entityName string) (*GetJournalRunType, *APIResponse, error)

*

func (JournalRunsApi) POSTJournalRun

func (a JournalRunsApi) POSTJournalRun(request PostJournalRunType, entityId string, entityName string) (*PostJournalRunResponseType, *APIResponse, error)

*

func (JournalRunsApi) PUTJournalRun

func (a JournalRunsApi) PUTJournalRun(jrNumber string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

  • Cancel journal run
  • This reference describes how to cancel a journal run using the REST API. The summary journal entries in the journal run are canceled asynchronously. See the \"Example\" section below for details. You must have the \"Cancel Journal Run\" Zuora Finance user permission enabled to cancel journal runs. ## Notes When you cancel a journal run, the summary journal entries associated with that journal run are canceled asynchronously. A response of `{ \"success\": true }` means only that the specified journal run has a status of \"Pending\", \"Error\", or \"Completed\" and therefore can be canceled, but does not mean that the whole journal run was successfully canceled. For example, let's say you want to cancel journal run JR-00000075. The journal run status is \"Completed\" and it contains ten journal entries. One of the journal entries has its Transferred to Accounting status set to \"Yes\", meaning that the entry cannot be canceled. The workflow might go as follows: 1. You make an API call to cancel the journal run. 2. The journal run status is \"Completed\", so you receive a response of `{ \"success\": true }`. 3. Zuora begins asynchronously canceling journal entries associated with the journal run. The journal entry whose Transferred to Accounting status is \"Yes\" fails to be canceled. The cancelation process continues, and the other journal entries are successfully canceled. 4. The journal run status remains as \"Completed\". The status does not change to \"Canceled\" because the journal run still contains a journey entry that is not canceled. *
  • @param jrNumber Journal run number. Must be a valid journal run number in the format JR-00000001. You can only cancel a journal run whose status is \"Pending\", \"Error\", or \"Completed\".
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *CommonResponseType

type ListOfExchangeRates

type ListOfExchangeRates struct {

	// The exchange rate on the **providerExchangeRateDate**. The field name is the ISO currency code of the currency, for example, `EUR`.  There may be more than one currency returned for a given **providerExchangeRateDate**. If the rate for a certain currency is not available on the **providerExchangeRateDate**, the currency is not returned in the response.
	CURRENCY string `json:"CURRENCY,omitempty"`

	// The date of the exchange rate used. The date is in `yyyy-mm-dd` format.  Corresponds to the value specified in the Provider Exchange Rate Date column in the Import Foreign Exchange Rates template when you uploaded the rates through the Mass Updater.
	ProviderExchangeRateDate time.Time `json:"providerExchangeRateDate,omitempty"`
}

Container for exchange rate information on a given date. The field name is the date in `yyyy-mm-dd` format, for example, 2016-01-15.

type MassUpdaterApi

type MassUpdaterApi struct {
	Configuration *Configuration
}

func NewMassUpdaterApi

func NewMassUpdaterApi() *MassUpdaterApi

func NewMassUpdaterApiWithBasePath

func NewMassUpdaterApiWithBasePath(basePath string) *MassUpdaterApi

func (MassUpdaterApi) GETMassUpdater

func (a MassUpdaterApi) GETMassUpdater(bulkKey string, entityId string, entityName string) (*GetMassUpdateType, *APIResponse, error)

*

func (MassUpdaterApi) POSTMassUpdater

func (a MassUpdaterApi) POSTMassUpdater(contentType string, request PostMassUpdateType, entityId string, entityName string) (*PostMassUpdateResponseType, *APIResponse, error)

*

func (MassUpdaterApi) PUTMassUpdater

func (a MassUpdaterApi) PUTMassUpdater(bulkKey string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

  • Stop mass action
  • This reference describes how to stop a mass action through the REST API. You can stop a mass action when its status is Pending or Processing. After you have stopped a mass action, you can get the mass action result to see details of the mass action. - If you stop a mass action when its status is Pending, no response file is generated because no records have been processed. - If you stop a mass action when its status is Processing, a response file is generated. You can check the response file to see which records have been processed and which have not. In the response file, the **Success** column has the value `Y` (successful) or `N` (failed) for processed records, and a blank value for unprocessed records. Records that have already been processed when a mass action is stopped are not rolled back. *
  • @param bulkKey String of 32 characters that identifies a mass action. You get the bulk-key after performing a mass action through the REST API.
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *CommonResponseType

type ModelError

type ModelError struct {

	//
	Code string `json:"Code,omitempty"`

	//
	Field string `json:"Field,omitempty"`

	//
	Message string `json:"Message,omitempty"`
}

type NewChargeMetrics

type NewChargeMetrics struct {

	//
	ChargeNumber string `json:"ChargeNumber,omitempty"`

	//
	DMRR float64 `json:"DMRR,omitempty"`

	//
	DTCV float64 `json:"DTCV,omitempty"`

	//
	MRR float64 `json:"MRR,omitempty"`

	//
	OriginalId string `json:"OriginalId,omitempty"`

	//
	OriginalRatePlanId string `json:"OriginalRatePlanId,omitempty"`

	//
	ProductRatePlanChargeId string `json:"ProductRatePlanChargeId,omitempty"`

	//
	ProductRatePlanId string `json:"ProductRatePlanId,omitempty"`

	//
	TCV float64 `json:"TCV,omitempty"`
}

type NotificationHistoryApi

type NotificationHistoryApi struct {
	Configuration *Configuration
}

func NewNotificationHistoryApi

func NewNotificationHistoryApi() *NotificationHistoryApi

func NewNotificationHistoryApiWithBasePath

func NewNotificationHistoryApiWithBasePath(basePath string) *NotificationHistoryApi

func (NotificationHistoryApi) GETCalloutHistory

func (a NotificationHistoryApi) GETCalloutHistory(entityId string, entityName string, pageSize int32, endTime time.Time, startTime time.Time, objectId string, failedOnly bool, eventCategory string, includeResponseContent bool) (*GetCalloutHistoryVOsType, *APIResponse, error)

*

func (NotificationHistoryApi) GETEmailHistory

func (a NotificationHistoryApi) GETEmailHistory(entityId string, entityName string, pageSize int32, endTime time.Time, startTime time.Time, objectId string, failedOnly bool, eventCategory string) (*GetEmailHistoryVOsType, *APIResponse, error)

*

type OAuthApi

type OAuthApi struct {
	Configuration *Configuration
}

func NewOAuthApi

func NewOAuthApi() *OAuthApi

func NewOAuthApiWithBasePath

func NewOAuthApiWithBasePath(basePath string) *OAuthApi

func (OAuthApi) CreateToken

func (a OAuthApi) CreateToken(clientId string, clientSecret string, entityId string, grantType string) (*TokenResponse, *APIResponse, error)

*

  • Generate an OAuth token
  • Generates a bearer token for a user to access the Zuora REST API. *
  • @param clientId A unique string representing the registration information provided by the client, the recipient of the token.
  • @param clientSecret The secret passphrase configured for the OAuth client.
  • @param entityId Entity ID associated with this bearer token
  • @param grantType The type of authentication being used to obtain the token. Use \"client_credentials\".
  • @return *TokenResponse

type OperationsApi

type OperationsApi struct {
	Configuration *Configuration
}

func NewOperationsApi

func NewOperationsApi() *OperationsApi

func NewOperationsApiWithBasePath

func NewOperationsApiWithBasePath(basePath string) *OperationsApi

func (OperationsApi) POSTBillingPreview

func (a OperationsApi) POSTBillingPreview(request PostBillingPreviewParam, entityId string, entityName string) (*BillingPreviewResult, *APIResponse, error)

*

func (OperationsApi) POSTTransactionInvoicePayment

func (a OperationsApi) POSTTransactionInvoicePayment(request PostInvoiceCollectType, entityId string, entityName string) (*PostInvoiceCollectResponseType, *APIResponse, error)

*

type PaymentCollectionResponseType

type PaymentCollectionResponseType struct {

	// URL to retrieve the next page of the response if it exists; otherwise absent.
	NextPage string `json:"nextPage,omitempty"`

	// Container for payments.
	Payments []GetarPaymentTypewithSuccess `json:"payments,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PaymentDebitMemoApplicationApplyRequestType

type PaymentDebitMemoApplicationApplyRequestType struct {

	// The amount that is applied from the payment to the debit memo.
	Amount float64 `json:"amount"`

	// The unique ID of the debit memo that the payment is applied to.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// Container for debit memo items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []PaymentDebitMemoApplicationItemApplyRequestType `json:"items,omitempty"`
}

type PaymentDebitMemoApplicationCreateRequestType

type PaymentDebitMemoApplicationCreateRequestType struct {

	// The amount of the payment associated with the debit memo.
	Amount float64 `json:"amount"`

	// The unique ID of the debit memo that the payment is created on.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// Container for debit memo items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []PaymentDebitMemoApplicationItemCreateRequestType `json:"items,omitempty"`
}

type PaymentDebitMemoApplicationItemApplyRequestType

type PaymentDebitMemoApplicationItemApplyRequestType struct {

	// The amount of the payment that is applied to the specific debit memo or taxation item.
	Amount float64 `json:"amount"`

	// The ID of the specific debit memo item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the specific taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type PaymentDebitMemoApplicationItemCreateRequestType

type PaymentDebitMemoApplicationItemCreateRequestType struct {

	// The amount of the payment associated with the specific debit memo or taxation item.
	Amount float64 `json:"amount"`

	// The ID of the specific debit memo item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the specific taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type PaymentDebitMemoApplicationItemUnapplyRequestType

type PaymentDebitMemoApplicationItemUnapplyRequestType struct {

	// The amount of the payment that is unapplied from the specific debit mem or taxation item.
	Amount float64 `json:"amount"`

	// The ID of the specific debit memo item.
	DebitMemoItemId string `json:"debitMemoItemId,omitempty"`

	// The ID of the specific taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type PaymentDebitMemoApplicationUnapplyRequestType

type PaymentDebitMemoApplicationUnapplyRequestType struct {

	// The amount of the payment that is unapplied from the debit memo.
	Amount float64 `json:"amount"`

	// The unique ID of the debit memo that the payment is unapplied from.
	DebitMemoId string `json:"debitMemoId,omitempty"`

	// Container for debit memo items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []PaymentDebitMemoApplicationItemUnapplyRequestType `json:"items,omitempty"`
}

type PaymentGatewaysApi

type PaymentGatewaysApi struct {
	Configuration *Configuration
}

func NewPaymentGatewaysApi

func NewPaymentGatewaysApi() *PaymentGatewaysApi

func NewPaymentGatewaysApiWithBasePath

func NewPaymentGatewaysApiWithBasePath(basePath string) *PaymentGatewaysApi

func (PaymentGatewaysApi) GETPaymentgateways

func (a PaymentGatewaysApi) GETPaymentgateways(entityId string, entityName string) (*GetPaymentGatwaysResponse, *APIResponse, error)

*

type PaymentInvoiceApplicationApplyRequestType

type PaymentInvoiceApplicationApplyRequestType struct {

	// The amount that is applied from the payment to the invoice.
	Amount float64 `json:"amount"`

	// The unique ID of the invoice that the payment is applied to.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Container for invoice items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []PaymentInvoiceApplicationItemApplyRequestType `json:"items,omitempty"`
}

type PaymentInvoiceApplicationCreateRequestType

type PaymentInvoiceApplicationCreateRequestType struct {

	// The amount of the payment associated with the invoice.
	Amount float64 `json:"amount"`

	// The unique ID of the invoice that the payment is created on.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Container for invoice items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []PaymentInvoiceApplicationItemCreateRequestType `json:"items,omitempty"`
}

type PaymentInvoiceApplicationItemApplyRequestType

type PaymentInvoiceApplicationItemApplyRequestType struct {

	// The amount of the payment that is applied to the specific invoice or taxation item.
	Amount float64 `json:"amount"`

	// The ID of the specific invoice item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the specific taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type PaymentInvoiceApplicationItemCreateRequestType

type PaymentInvoiceApplicationItemCreateRequestType struct {

	// The amount of the payment associated with the specific invoice or taxation item.
	Amount float64 `json:"amount"`

	// The ID of the specific invoice item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the specific taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type PaymentInvoiceApplicationItemUnapplyRequestType

type PaymentInvoiceApplicationItemUnapplyRequestType struct {

	// The amount of the payment that is unapplied from the specific invoice or taxation item.
	Amount float64 `json:"amount"`

	// The ID of the specific invoice item.
	InvoiceItemId string `json:"invoiceItemId,omitempty"`

	// The ID of the specific taxation item.
	TaxItemId string `json:"taxItemId,omitempty"`
}

type PaymentInvoiceApplicationUnapplyRequestType

type PaymentInvoiceApplicationUnapplyRequestType struct {

	// The amount of the payment that is unapplied from the invoice.
	Amount float64 `json:"amount"`

	// The unique ID of the invoice that the payment is unapplied from.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Container for invoice items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []PaymentInvoiceApplicationItemUnapplyRequestType `json:"items,omitempty"`
}

type PaymentMethodSnapshotsApi

type PaymentMethodSnapshotsApi struct {
	Configuration *Configuration
}

func NewPaymentMethodSnapshotsApi

func NewPaymentMethodSnapshotsApi() *PaymentMethodSnapshotsApi

func NewPaymentMethodSnapshotsApiWithBasePath

func NewPaymentMethodSnapshotsApiWithBasePath(basePath string) *PaymentMethodSnapshotsApi

func (PaymentMethodSnapshotsApi) ObjectGETPaymentMethodSnapshot

func (a PaymentMethodSnapshotsApi) ObjectGETPaymentMethodSnapshot(id string, entityId string, entityName string, fields string) (*ProxyGetPaymentMethodSnapshot, *APIResponse, error)

*

type PaymentMethodTransactionLogsApi

type PaymentMethodTransactionLogsApi struct {
	Configuration *Configuration
}

func NewPaymentMethodTransactionLogsApi

func NewPaymentMethodTransactionLogsApi() *PaymentMethodTransactionLogsApi

func NewPaymentMethodTransactionLogsApiWithBasePath

func NewPaymentMethodTransactionLogsApiWithBasePath(basePath string) *PaymentMethodTransactionLogsApi

func (PaymentMethodTransactionLogsApi) ObjectDELETEPaymentMethodTransactionLog

func (a PaymentMethodTransactionLogsApi) ObjectDELETEPaymentMethodTransactionLog(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (PaymentMethodTransactionLogsApi) ObjectGETPaymentMethodTransactionLog

func (a PaymentMethodTransactionLogsApi) ObjectGETPaymentMethodTransactionLog(id string, entityId string, entityName string, fields string) (*ProxyGetPaymentMethodTransactionLog, *APIResponse, error)

*

type PaymentMethodsApi

type PaymentMethodsApi struct {
	Configuration *Configuration
}

func NewPaymentMethodsApi

func NewPaymentMethodsApi() *PaymentMethodsApi

func NewPaymentMethodsApiWithBasePath

func NewPaymentMethodsApiWithBasePath(basePath string) *PaymentMethodsApi

func (PaymentMethodsApi) DELETEPaymentMethods

func (a PaymentMethodsApi) DELETEPaymentMethods(paymentMethodId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (PaymentMethodsApi) GETPaymentMethods

func (a PaymentMethodsApi) GETPaymentMethods(accountKey string, entityId string, entityName string, pageSize int32) (*GetPaymentMethodsType, *APIResponse, error)

*

func (PaymentMethodsApi) ObjectDELETEPaymentMethod

func (a PaymentMethodsApi) ObjectDELETEPaymentMethod(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (PaymentMethodsApi) ObjectGETPaymentMethod

func (a PaymentMethodsApi) ObjectGETPaymentMethod(id string, entityId string, entityName string, fields string) (*ProxyGetPaymentMethod, *APIResponse, error)

*

func (PaymentMethodsApi) ObjectPOSTPaymentMethod

func (a PaymentMethodsApi) ObjectPOSTPaymentMethod(createRequest ProxyCreatePaymentMethod, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (PaymentMethodsApi) ObjectPUTPaymentMethod

func (a PaymentMethodsApi) ObjectPUTPaymentMethod(id string, modifyRequest ProxyModifyPaymentMethod, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (PaymentMethodsApi) POSTPaymentMethods

func (a PaymentMethodsApi) POSTPaymentMethods(request PostPaymentMethodType, entityId string, entityName string) (*PostPaymentMethodResponseType, *APIResponse, error)

*

func (PaymentMethodsApi) POSTPaymentMethodsDecryption

func (a PaymentMethodsApi) POSTPaymentMethodsDecryption(request PostPaymentMethodDecryption, entityId string, entityName string) (*PostPaymentMethodResponseDecryption, *APIResponse, error)

*

func (PaymentMethodsApi) PUTPaymentMethods

func (a PaymentMethodsApi) PUTPaymentMethods(paymentMethodId string, request PutPaymentMethodType, entityId string, entityName string) (*PutPaymentMethodResponseType, *APIResponse, error)

*

type PaymentTransactionLogsApi

type PaymentTransactionLogsApi struct {
	Configuration *Configuration
}

func NewPaymentTransactionLogsApi

func NewPaymentTransactionLogsApi() *PaymentTransactionLogsApi

func NewPaymentTransactionLogsApiWithBasePath

func NewPaymentTransactionLogsApiWithBasePath(basePath string) *PaymentTransactionLogsApi

func (PaymentTransactionLogsApi) ObjectDELETEPaymentTransactionLog

func (a PaymentTransactionLogsApi) ObjectDELETEPaymentTransactionLog(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (PaymentTransactionLogsApi) ObjectGETPaymentTransactionLog

func (a PaymentTransactionLogsApi) ObjectGETPaymentTransactionLog(id string, entityId string, entityName string, fields string) (*ProxyGetPaymentTransactionLog, *APIResponse, error)

*

type PaymentsApi

type PaymentsApi struct {
	Configuration *Configuration
}

func NewPaymentsApi

func NewPaymentsApi() *PaymentsApi

func NewPaymentsApiWithBasePath

func NewPaymentsApiWithBasePath(basePath string) *PaymentsApi

func (PaymentsApi) DELETEPayment

func (a PaymentsApi) DELETEPayment(paymentId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (PaymentsApi) GETPayemntItemParts

func (a PaymentsApi) GETPayemntItemParts(partid string, paymentId string, entityId string, entityName string, pageSize int32) (*GetPaymentItemPartCollectionType, *APIResponse, error)

*

func (PaymentsApi) GETPayment

func (a PaymentsApi) GETPayment(paymentId string, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

func (PaymentsApi) GETPaymentItemPart

func (a PaymentsApi) GETPaymentItemPart(partid string, itempartid string, paymentId string, entityId string, entityName string) (*GetPaymentItemPartType, *APIResponse, error)

*

func (PaymentsApi) GETPaymentPart

func (a PaymentsApi) GETPaymentPart(partid string, paymentId string, entityId string, entityName string) (*GetPaymentPartType, *APIResponse, error)

*

func (PaymentsApi) GETPaymentParts

func (a PaymentsApi) GETPaymentParts(paymentId string, entityId string, entityName string, pageSize int32) (*GetPaymentPartsCollectionType, *APIResponse, error)

*

func (PaymentsApi) GETRetrieveAllPayments

func (a PaymentsApi) GETRetrieveAllPayments(entityId string, entityName string, pageSize int32, fieldsFilterable string, sort string) (*PaymentCollectionResponseType, *APIResponse, error)

*

  • Get all payments
  • **Note:** The Advanced AR Settlement feature is in **Limited Availability**. This feature includes Unapplied Payments, Credit and Debit Memo, and Invoice Item Settlement. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the information about all payments from all your customer accounts. *
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param fieldsFilterable This parameter restricts the data returned in the response. You can use this parameter to supply a dimension you want to filter on. A single filter uses the following form: *fieldsFilterable* `=` *field_value* Filters can be combined by using `&`. For example: *fieldsFilterable* `=` *field_value* & *fieldsFilterable* `=` *field_value* *fieldsFilterable* indicates the name of a supported field that you can use to filter the response data. The supported filterable fields of this operation are as below: - number - status - type - accountID - amount - appliedAmount - unappliedAmount - refundAmount - creditBalanceAmount - currency - effectiveDate - createdDate - createdById - updatedDate - updatedById *field_value* indicates a valid value of the filterable field. If the type of the field value is string, you can set the field to `null` value for filtering. Then, you can get the response data with this field value being 'null'. For more information about these fields, see the field descriptions in the **Responses** section. Examples: - /payments?status=Processed - /payments?currency=USD&status=Processed - /payments?status=Processed&type=External&sort=+number
  • @param sort This parameter restricts the order of the data returned in the response. You can use this parameter to supply a dimension you want to sort on. A sortable field uses the following form: *operator* *field_name* You can use at most two sortable fields in one URL path. Use a comma to separate sortable fields. For example: *operator* *field_name*, *operator* *field_name* *operator* is used to mark the order of sequencing. The operator is optional. If you only specify the sortable field without any operator, the response data is sorted in descending order by this field. - The `-` operator indicates an ascending order. - The `+` operator indicates a descending order. By default, the response data is displayed in descending order by payment number. *field_name* indicates the name of a sortable field. The supported sortable fields of this operation are as below: - number - accountID - amount - appliedAmount - unappliedAmount - refundAmount - creditBalanceAmount - effectiveDate - createdDate - createdById - updatedDate - updatedById Examples: - /payments?sort=+number - /payments?status=Processed&sort=-number,+amount
  • @return *PaymentCollectionResponseType

func (PaymentsApi) ObjectDELETEPayment

func (a PaymentsApi) ObjectDELETEPayment(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (PaymentsApi) ObjectGETPayment

func (a PaymentsApi) ObjectGETPayment(id string, entityId string, entityName string, fields string) (*ProxyGetPayment, *APIResponse, error)

*

func (PaymentsApi) ObjectPOSTPayment

func (a PaymentsApi) ObjectPOSTPayment(createRequest ProxyCreatePayment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (PaymentsApi) ObjectPUTPayment

func (a PaymentsApi) ObjectPUTPayment(id string, modifyRequest ProxyModifyPayment, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (PaymentsApi) POSTApplyPayment

func (a PaymentsApi) POSTApplyPayment(body ApplyPaymentType, paymentId string, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

func (PaymentsApi) POSTCancelPayment

func (a PaymentsApi) POSTCancelPayment(paymentId string, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

func (PaymentsApi) POSTCreatePayment

func (a PaymentsApi) POSTCreatePayment(body CreatePaymentType, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

func (PaymentsApi) POSTRefundPayment

func (a PaymentsApi) POSTRefundPayment(body PostRefundType, paymentId string, entityId string, entityName string) (*GetRefundPaymentType, *APIResponse, error)

*

func (PaymentsApi) POSTTransferPayemnt

func (a PaymentsApi) POSTTransferPayemnt(body TransferPaymentType, paymentId string, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

func (PaymentsApi) POSTUNAPPLYPAYMENT

func (a PaymentsApi) POSTUNAPPLYPAYMENT(body UnapplyPaymentType, paymentId string, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

func (PaymentsApi) PUTUpdatePayemnt

func (a PaymentsApi) PUTUpdatePayemnt(body UpdatePaymentType, paymentId string, entityId string, entityName string) (*GetarPaymentType, *APIResponse, error)

*

type PostAccountResponseType

type PostAccountResponseType struct {

	// Auto-generated account ID.
	AccountId string `json:"accountId,omitempty"`

	// Account number.
	AccountNumber string `json:"accountNumber,omitempty"`

	// Contracted monthly recurring revenue of the subscription.
	ContractedMrr string `json:"contractedMrr,omitempty"`

	// ID of the invoice generated at account creation, if applicable.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Amount collected on the invoice generated at account creation, if applicable.
	PaidAmount string `json:"paidAmount,omitempty"`

	// ID of the payment collected on the invoice generated at account creation, if applicable.
	PaymentId string `json:"paymentId,omitempty"`

	// ID of the payment method that was set up at account creation, which automatically becomes the default payment method for this account.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// ID of the subscription that was set up at account creation, if applicable.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Number of the subscription that was set up at account creation, if applicable.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Total contracted value of the subscription.
	TotalContractedValue string `json:"totalContractedValue,omitempty"`
}

type PostAccountType

type PostAccountType struct {

	// A unique account number, up to 50 characters that do not begin with the default account number prefix.  If no account number is specified, one is generated.
	AccountNumber string `json:"accountNumber,omitempty"`

	// A list of additional email addresses to receive emailed invoices. Use a comma to separate each email address.  **Note:** Invoices are emailed to the email addresses specified in this field only when the `invoiceDeliveryPrefsEmail` field is `true`.
	AdditionalEmailAddresses []string `json:"additionalEmailAddresses,omitempty"`

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.  Prerequisite: `invoice` must be `true`.  To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// Specifies whether future payments are to be automatically billed when they are due. Possible values are: `true`, `false`.
	AutoPay bool `json:"autoPay,omitempty"`

	// The alias name given to a batch. A string of 50 characters or less.
	Batch string `json:"batch,omitempty"`

	// The account's bill cycle day (BCD), when bill runs generate invoices for the account.  Specify any day of the month (1-31, where 31 = end-of-month), or 0 for auto-set.  Required if no subscription will be created.   Optional if a subscription is created and defaults to the day-of-the-month of the subscription's `contractEffectiveDate`.
	BillCycleDay int64 `json:"billCycleDay,omitempty"`

	BillToContact PostAccountTypeBillToContact `json:"billToContact,omitempty"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account.  If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is `true`.  Prerequisite: invoice must be `true`.   **Note:** This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	Collect string `json:"collect,omitempty"`

	// The ID of a communication profile.
	CommunicationProfileId string `json:"communicationProfileId,omitempty"`

	CreditCard PostAccountTypeCreditCard `json:"creditCard,omitempty"`

	// CRM account ID for the account, up to 100 characters.
	CrmId string `json:"crmId,omitempty"`

	// A currency as defined in Billing Settings in the Zuora UI.
	Currency string `json:"currency"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The ID of the HPM credit card payment method associated with this account. You must provide either this field or the `creditCard` structure, but not both.  **Note:** Non-credit card payment methods are not supported.
	HpmCreditCardPaymentMethodId string `json:"hpmCreditCardPaymentMethodId,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.    Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken.   The default value is `true`.    This field is in REST API minor version control. To use this field in the method, you can set the `zuora-version` parameter to the minor version number in the request header. Supported minor versions are `196.0` and `207.0`.
	Invoice bool `json:"invoice,omitempty"`

	// **Note:** This field has been replaced by the `invoice` field and the `collect` field. `invoiceCollect` is available only for backward compatibility.  If `true` (default), and a subscription is created, an invoice is generated at account creation time and payment is immediately collected using the account's default payment method.  This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0.
	InvoiceCollect bool `json:"invoiceCollect,omitempty"`

	// Whether the customer wants to receive invoices through email.   The default value is `false`.
	InvoiceDeliveryPrefsEmail bool `json:"invoiceDeliveryPrefsEmail,omitempty"`

	// Whether the customer wants to receive printed invoices, such as through postal mail.  The default value is `false`.
	InvoiceDeliveryPrefsPrint bool `json:"invoiceDeliveryPrefsPrint,omitempty"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.     Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in REST API minor version control. To use this field in the method, you can set the `zuora-version` parameter to the minor version number in the request header. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// Invoice template ID, configured in Billing Settings in the Zuora UI.
	InvoiceTemplateId string `json:"invoiceTemplateId,omitempty"`

	// Account name, up to 255 characters.
	Name string `json:"name"`

	// A string of up to 65,535 characters.
	Notes string `json:"notes,omitempty"`

	// The name of the payment gateway instance. If null or left unassigned, the Account will use the Default Gateway.
	PaymentGateway string `json:"paymentGateway,omitempty"`

	// Payment terms for this account. Possible values are: `Due Upon Receipt`, `Net 30`, `Net 60`, `Net 90`.
	PaymentTerm string `json:"paymentTerm,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule.](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).    The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	SoldToContact PostAccountTypeSoldToContact `json:"soldToContact,omitempty"`

	Subscription PostAccountTypeSubscription `json:"subscription,omitempty"`

	//
	Tagging string `json:"tagging,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.  **Note:** The credit memo is only available only if you have the Avdanced AR Settlement feature enabled.  This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`

	TaxInfo PostAccountTypeTaxInfo `json:"taxInfo,omitempty"`
}

type PostAccountTypeBillToContact

type PostAccountTypeBillToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country; must be a valid country name or abbreviation. If using Zuora Tax, you must specify a country in the sold-to contact to calculate tax. A bill-to contact may be used if no sold-to contact is provided.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. May optionally be used by Zuora Tax to calculate county tax.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName"`

	// Home phone number, 40 characters or less.
	HomePhone string `json:"homePhone,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName"`

	// Mobile phone number, 40 characters or less.
	MobilePhone string `json:"mobilePhone,omitempty"`

	// Nickname for this contact
	Nickname string `json:"nickname,omitempty"`

	// Other phone number, 40 characters or less.
	OtherPhone string `json:"otherPhone,omitempty"`

	// Possible values are: `Work`, `Mobile`, `Home`, `Other`.
	OtherPhoneType string `json:"otherPhoneType,omitempty"`

	// Personal email address, 80 characters or less.
	PersonalEmail string `json:"personalEmail,omitempty"`

	// State; must be a valid state or province name or 2-character abbreviation. If using Zuora Tax, be aware that Zuora tax requires a state (in the US) or province (in Canada) in this field for the sold-to contact to calculate tax, and that a bill-to contact may be used if no sold-to contact is provided.
	State string `json:"state,omitempty"`

	// If using Zuora Tax, a region string as optionally defined in your tax rules. Not required.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for bill-to contact information for this account. If you do not provide a sold-to contact, the bill-to contact is copied to sold-to contact. Once the sold-to contact is created, changes to billToContact will not affect soldToContact and vice versa.

type PostAccountTypeCreditCard

type PostAccountTypeCreditCard struct {
	CardHolderInfo PostAccountTypeCreditCardCardHolderInfo `json:"cardHolderInfo,omitempty"`

	// Card number, up to 16 characters. Once created, this field can't be updated or queried, and is only available in masked format (e.g., XXXX-XXXX-XXXX-1234).
	CardNumber string `json:"cardNumber"`

	// Possible values are: `Visa`, `MasterCard`, `AmericanExpress`, `Discover`.
	CardType string `json:"cardType"`

	// Two-digit expiration month (01-12).
	ExpirationMonth string `json:"expirationMonth"`

	// Four-digit expiration year.
	ExpirationYear string `json:"expirationYear"`

	// The CVV or CVV2 security code of the card. To ensure PCI compliance, this value isn't stored and can't be queried.
	SecurityCode string `json:"securityCode,omitempty"`
}

Container for information on a credit card to associate with this account. You must provide either this structure or the `hpmCreditCardPaymentMethodId` field, but not both.

type PostAccountTypeCreditCardCardHolderInfo

type PostAccountTypeCreditCardCardHolderInfo struct {

	// First address line, 255 characters or less.
	AddressLine1 string `json:"addressLine1"`

	// Second address line, 255 characters or less.
	AddressLine2 string `json:"addressLine2,omitempty"`

	// The card holder's full name as it appears on the card, e.g., \"John J Smith\", 50 characters or less.
	CardHolderName string `json:"cardHolderName"`

	// City, 40 characters or less.
	City string `json:"city"`

	// Country; must be a valid country name or abbreviation.
	Country string `json:"country"`

	// Card holder's email address, 80 characters or less.
	Email string `json:"email,omitempty"`

	// Phone number, 40 characters or less.
	Phone string `json:"phone,omitempty"`

	// State; must be a valid state name or 2-character abbreviation.
	State string `json:"state"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode"`
}

ontainer for cardholder information. If provided, Zuora will only use this information for this card. If not provided, Zuora will use the account's existing bill-to contact information for this card.

type PostAccountTypeSoldToContact

type PostAccountTypeSoldToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country; must be a valid country name or abbreviation. If using Zuora Tax, you must specify a country in the sold-to contact to calculate tax. A bill-to contact may be used if no sold-to contact is provided.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. May optionally be used by Zuora Tax to calculate county tax.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName"`

	// Home phone number, 40 characters or less.
	HomePhone string `json:"homePhone,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName"`

	// Mobile phone number, 40 characters or less.
	MobilePhone string `json:"mobilePhone,omitempty"`

	// Nickname for this contact
	Nickname string `json:"nickname,omitempty"`

	// Other phone number, 40 characters or less.
	OtherPhone string `json:"otherPhone,omitempty"`

	// Possible values are: `Work`, `Mobile`, `Home`, `Other`.
	OtherPhoneType string `json:"otherPhoneType,omitempty"`

	// Personal email address, 80 characters or less.
	PersonalEmail string `json:"personalEmail,omitempty"`

	// State; must be a valid state or province name or 2-character abbreviation. If using Zuora Tax, be aware that Zuora Tax requires a state (in the US) or province (in Canada) in this field for the sold-to contact to calculate tax, and that a bill-to contact may be used if no sold-to contact is provided.
	State string `json:"state,omitempty"`

	// If using Zuora Tax, a region string as optionally defined in your tax rules. Not required.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for optional sold-to contact; uses the same field structure as the bill-to contact (above). If a sold-to contact is not specified, one is created from the bill-to contact. Once created, these are two separate data entities, and future changes to one do not affect the other.

type PostAccountTypeSubscription

type PostAccountTypeSubscription struct {

	//
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	//
	OpportunityCloseDateQT string `json:"OpportunityCloseDate__QT,omitempty"`

	//
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	//
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	//
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	//
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	// If `true`, auto-renew is enabled. Default is `false`.
	AutoRenew bool `json:"autoRenew,omitempty"`

	// Effective contract date for this subscription, as `yyyy-mm-dd`.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date on which the services or products within a subscription have been accepted by the customer, as `yyyy-mm-dd`.  Default value is dependent on the value of other fields. See Notes section for more details.
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// Duration of the initial subscription term in whole months.  Default is 0.
	InitialTerm int64 `json:"initialTerm,omitempty"`

	// Invoice owner account number or ID.  **Note:** This feature is in Limited Availability. If you wish to have access to the feature, submit a request at [Zuora Global Support](https://support.zuora.com).
	InvoiceOwnerAccountKey string `json:"invoiceOwnerAccountKey,omitempty"`

	// Separates a single subscription from other subscriptions and invoices the charge independently.   If the value is `true`, the subscription is billed separately from other subscriptions. If the value is `false`, the subscription is included with other subscriptions in the account invoice. The default value is `false`.  Prerequisite: The default subscription setting `Enable Subscriptions to be Invoiced Separately` must be set to `Yes`.
	InvoiceSeparately bool `json:"invoiceSeparately,omitempty"`

	//
	Notes string `json:"notes,omitempty"`

	// Duration of the renewal term in whole months. Default is 0.
	RenewalTerm int64 `json:"renewalTerm,omitempty"`

	// The date on which the services or products within a subscription have been activated and access has been provided to the customer, as `yyyy-mm-dd`.  Default value is dependent on the value of other fields. See Notes section for more details.
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// Container for one or more rate plans for this subscription.
	SubscribeToRatePlans []PostSrpCreateType `json:"subscribeToRatePlans,omitempty"`

	// Subscription Number. The value can be up to 1000 characters.  If you do not specify a subscription number when creating a subscription for the new account, Zuora will generate a subscription number automatically.  If the account is created successfully, the subscription number is returned in the `subscriptionNumber` response field.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// The date on which the subscription term begins, as `yyyy-mm-dd`. If this is a renewal subscription, this date is different from the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType"`
}

Container for subscription information, used if creating a subscription for the new account at the time of account creation.

type PostAccountTypeTaxInfo

type PostAccountTypeTaxInfo struct {

	// EU Value Added Tax ID.   **Note:** This feature is in Limited Availability. If you wish to have access to the feature, submit a request at [Zuora Global Support](https://support.zuora.com).
	VATId string `json:"VATId,omitempty"`

	// Unique code that identifies a company account in Avalara. Use this field to calculate taxes based on origin and sold-to addresses in Avalara.  **Note:** This feature is in Limited Availability. If you wish to have access to the feature, submit a request at [Zuora Global Support](https://support.zuora.com).
	CompanyCode string `json:"companyCode,omitempty"`

	// ID of the customer tax exemption certificate. Requires Zuora Tax.
	ExemptCertificateId string `json:"exemptCertificateId,omitempty"`

	// Type of tax exemption certificate that the customer holds. Requires Zuora Tax.
	ExemptCertificateType string `json:"exemptCertificateType,omitempty"`

	// Description of the tax exemption certificate that the customer holds. Requires Zuora Tax.
	ExemptDescription string `json:"exemptDescription,omitempty"`

	// Date when the customer tax exemption starts. Requires Zuora Tax.  Format: `yyyy-mm-dd`. Defaults to the current date.
	ExemptEffectiveDate time.Time `json:"exemptEffectiveDate,omitempty"`

	// Date when the customer tax exemption expires. Requires Zuora Tax.  Format: `yyyy-mm-dd`. Defaults to the current date.
	ExemptExpirationDate time.Time `json:"exemptExpirationDate,omitempty"`

	// Jurisdiction in which the customer tax exemption certificate was issued.
	ExemptIssuingJurisdiction string `json:"exemptIssuingJurisdiction,omitempty"`

	// Status of the account tax exemption. Requires Zuora Tax.  Required if you use Zuora Tax. This field is unavailable if Zuora Tax is not used.  Values: `Yes`, `No`, `pendingVerification`.
	ExemptStatus string `json:"exemptStatus,omitempty"`
}

Container for tax exempt information, used to establish the tax exempt status of a customer account.

type PostAccountingCodeResponseType

type PostAccountingCodeResponseType struct {

	// ID of the newly created accounting code.
	Id string `json:"id,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostAccountingCodeType

type PostAccountingCodeType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Name of the account in your general ledger.  Field only available if you have Zuora Finance enabled. Maximum of 255 characters.
	GlAccountName string `json:"glAccountName,omitempty"`

	// Account number in your general ledger.  Field only available if you have Zuora Finance enabled. Maximum of 255 characters.
	GlAccountNumber string `json:"glAccountNumber,omitempty"`

	// Name of the accounting code.  Accounting code name must be unique. Maximum of 100 characters.
	Name string `json:"name"`

	// Maximum of 2,000 characters.
	Notes string `json:"notes,omitempty"`

	// Accounting code type. You cannot create new accounting codes of type `AccountsReceivable`.   Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	Type_ string `json:"type"`
}

type PostAccountingPeriodResponseType

type PostAccountingPeriodResponseType struct {

	// ID of the newly-created accounting period.
	Id string `json:"id,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostAccountingPeriodType

type PostAccountingPeriodType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The end date of the accounting period in yyyy-mm-dd format, for example, \"2016-02-19\".
	EndDate time.Time `json:"endDate"`

	// Fiscal year of the accounting period in yyyy format, for example, \"2016\".
	FiscalYear string `json:"fiscalYear"`

	//
	FiscalQuarter int64 `json:"fiscal_quarter,omitempty"`

	// Name of the accounting period.  Accounting period name must be unique. Maximum of 100 characters.
	Name string `json:"name"`

	// Notes about the accounting period.  Maximum of 255 characters.
	Notes string `json:"notes,omitempty"`

	// The start date of the accounting period in yyyy-mm-dd format, for example, \"2016-02-19\".
	StartDate time.Time `json:"startDate"`
}

type PostAttachmentResponseType

type PostAttachmentResponseType struct {

	// Id to identify the attached file.
	FileId string `json:"fileId,omitempty"`

	// Attachment id.
	Id string `json:"id,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostAttachmentType

type PostAttachmentType struct {

	// The file to be attached. Must be multipart/form-data. The maximum file size is 4 MB.  Files with the following extensions are supported: .pdf, .csv, .png, .xlsx, .xls, .doc, .docx, .msg, .jpg, .txt, .htm, .html, .eml, .pptx, .gif, .rtf, .xml, .jpeg, .log, .cls
	File string `json:"file"`
}

type PostBillingPreviewCreditMemoItem

type PostBillingPreviewCreditMemoItem struct {

	// The amount of the charge. This amount doesn't include taxes regardless if the charge's tax mode is inclusive or exclusive.
	Amount string `json:"amount,omitempty"`

	// The date when the credit memo item is created.
	ChargeDate time.Time `json:"chargeDate,omitempty"`

	// Number of the charge.
	ChargeNumber string `json:"chargeNumber,omitempty"`

	// The type of charge.   Possible values are `OneTime`, `Recurring`, and `Usage`.
	ChargeType string `json:"chargeType,omitempty"`

	// Comment of the credit memo item.
	Comment string `json:"comment,omitempty"`

	// Credit memo item id.
	Id string `json:"id,omitempty"`

	// Identifies the kind of charge.   Possible values: * 0: charge * 1: discount * 2: prepayment * 3: tax
	ProcessingType string `json:"processingType,omitempty"`

	// Quantity of this item, in the configured unit of measure for the charge.
	Quantity string `json:"quantity,omitempty"`

	// Id of the rate plan charge associated with this item.
	RatePlanChargeId string `json:"ratePlanChargeId,omitempty"`

	// End date of the service period for this item, i.e., the last day of the service period, in yyyy-mm-dd format.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// Start date of the service period for this item, in yyyy-mm-dd format. If the charge is a one-time fee, this is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// Unique SKU for the product associated with this item.
	Sku string `json:"sku,omitempty"`

	// Name of the unique SKU for the product associated with this item.
	SkuName string `json:"skuName,omitempty"`

	// ID of the subscription associated with this item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Name of the subscription associated with this item.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Unit used to measure consumption.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PostBillingPreviewInvoiceItem

type PostBillingPreviewInvoiceItem struct {

	// The amount of the charge. This amount doesn't include taxes regardless if the charge's tax mode is inclusive or exclusive.
	ChargeAmount string `json:"chargeAmount,omitempty"`

	// The date when the invoice item was created.
	ChargeDate time.Time `json:"chargeDate,omitempty"`

	// Description of the charge.
	ChargeDescription string `json:"chargeDescription,omitempty"`

	// Id of the charge.
	ChargeId string `json:"chargeId,omitempty"`

	// Name of the charge.
	ChargeName string `json:"chargeName,omitempty"`

	// Number of the charge.
	ChargeNumber string `json:"chargeNumber,omitempty"`

	// The type of charge.   Possible values are `OneTime`, `Recurring`, and `Usage`.
	ChargeType string `json:"chargeType,omitempty"`

	// Invoice item ID.
	Id string `json:"id,omitempty"`

	// Identifies the kind of charge.   Possible values: * 0: charge * 1: discount * 2: prepayment * 3: tax
	ProcessingType float64 `json:"processingType,omitempty"`

	// Name of the product associated with this item.
	ProductName string `json:"productName,omitempty"`

	// Quantity of this item, in the configured unit of measure for the charge.
	Quantity string `json:"quantity,omitempty"`

	// End date of the service period for this item, i.e., the last day of the service period, in `yyyy-mm-dd` format.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// Start date of the service period for this item, in `yyyy-mm-dd` format. If the charge is a one-time fee, this is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// ID of the subscription associated with this item.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Name of the subscription associated with this item.
	SubscriptionName string `json:"subscriptionName,omitempty"`

	// Number of the subscription associated with this item.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Tax applied to the charge.
	TaxAmount string `json:"taxAmount,omitempty"`

	// Unit used to measure consumption.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PostBillingPreviewParam

type PostBillingPreviewParam struct {

	// ID of the customer account to which the billing preview applies.
	AccountId string `json:"accountId"`

	// Indicates whether to generate a preview of future invoice items and credit memo items with the assumption that the subscriptions are renewed.  Set one of the following values in this field to decide how the assumption is applied in the billing preview.    * **All:** The assumption is applied to all the subscriptions. Zuora generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the target date.      * **None:** (Default) The assumption is not applied to the subscriptions. Zuora generates preview invoice item data and credit memo item data based on the current term end date and the target date.        * If the target date is later than the current term end date, Zuora generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the current term end date.      * If the target date is earlier than the current term end date, Zuora generates preview invoice item data and credit memeo item data from the first day of the customer's next billing period to the target date.    * **Autorenew:** The assumption is applied to the subscriptions that have auto-renew enabled. Zuora generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the target date.  **Note:**    - This field can only be used if the subscription renewal term is not set to 0.           - The credit memo item data is only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	AssumeRenewal string `json:"assumeRenewal,omitempty"`

	// The charge types to exclude from the billing preview.  **Possible values:** OneTime, Recurring, Usage, and any combination of these values.
	ChargeTypeToExclude string `json:"chargeTypeToExclude,omitempty"`

	// Indicates if evergreen subscriptions are included in the billingPreview call.
	IncludingEvergreenSubscription bool `json:"includingEvergreenSubscription,omitempty"`

	// The target date for the billingPreview call. The billingPreview call generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the TargetDate.   If the TargetDate is later than the subscription current term end date, the preview invoice item data and credit memo item data is generated from the first day of the customer's next billing period to the current term end date. If you want to generate preview invoice item data and credit memo item data past the end of the subscription current term, specify the `AssumeRenewal` field in the request.   **Note:** The credit memo item data is only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	TargetDate time.Time `json:"targetDate"`
}

type PostBillingPreviewRunParam

type PostBillingPreviewRunParam struct {

	// Indicates whether to generate a preview of future invoice items and credit memo items with the assumption that the subscriptions are renewed.  Set one of the following values in this field to decide how the assumption is applied in the billing preview.    * **All:** The assumption is applied to all the subscriptions. Zuora generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the target date.      * **None:** (Default) The assumption is not applied to the subscriptions. Zuora generates preview invoice item data and credit memo item data based on the current term end date and the target date.        * If the target date is later than the current term end date, Zuora generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the current term end date.      * If the target date is earlier than the current term end date, Zuora generates preview invoice item data and credit memeo item data from the first day of the customer's next billing period to the target date.    * **Autorenew:** The assumption is applied to the subscriptions that have auto-renew enabled. Zuora generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the target date.    **Note:**    - This field can only be used if the subscription renewal term is not set to 0.           - The credit memo item data is only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	AssumeRenewal string `json:"assumeRenewal,omitempty"`

	// The customer batch to include in the billing preview run. If not specified, all customer batches are included.
	Batch string `json:"batch,omitempty"`

	// The charge types to exclude from the forecast run.  **Possible values:** OneTime, Recurring, Usage, and any comma-separated combination of these values.
	ChargeTypeToExclude string `json:"chargeTypeToExclude,omitempty"`

	// Indicates if evergreen subscriptions are included in the billing preview run. By default, evergreen subscriptions are not included.
	IncludingEvergreenSubscription bool `json:"includingEvergreenSubscription,omitempty"`

	// The target date for the billing preview run. The billing preview run generates preview invoice item data and credit memo item data from the first day of the customer's next billing period to the TargetDate.   If the TargetDate is later than the subscription current term end date, the preview invoice item data and credit memo item data is generated from the first day of the customer's next billing period to the current term end date. If you want to generate preview invoice item data and credit memo item data past the end of the subscription current term, specify the AssumeRenewal field in the request.  **Note:** The credit memo item data is only available if you have Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	TargetDate time.Time `json:"targetDate"`
}

type PostCreditMemoEmailRequestType

type PostCreditMemoEmailRequestType struct {

	// The valid email addresses you want to email a credit memo to. Use commas to separate email addresses.  **Note:** This field is only applicable if you set the `useEmailTemplateSetting` field to `false`.
	EmailAddresses string `json:"emailAddresses,omitempty"`

	// Indicates whether to send a credit memo to the additional email addresses of the memo account.    You can set the additional email addresses in the **Additional Email Addresses** field on the account detail page from the Zuora UI. See [Create a Customer Account](https://knowledgecenter.zuora.com/BC_Subscription_Management/Customer_Accounts/B_Create_a_Customer_Account#section_2) for more information.
	IncludeAdditionalEmailAddresses bool `json:"includeAdditionalEmailAddresses,omitempty"`

	// Indicates whether to email a credit memo based on the email template setting.   If you set this field to `true`, the credit memo is sent to the email addresses specified in the **To Email** field of the email template. The email template is the one you set in the **Delivery Options** panel of the **Edit notification** dialog from the Zuora UI. See [Edit Email Templates](https://knowledgecenter.zuora.com/CF_Users_and_Administrators/Notifications/Create_Email_Templates) for more information about how to edit the **To Email** field in the email template.
	UseEmailTemplateSetting bool `json:"useEmailTemplateSetting,omitempty"`
}

type PostDebitMemoEmailType

type PostDebitMemoEmailType struct {

	// The valid email addresses you want to email a debit memo to. Use commas to separate email addresses.  **Note:** This field is only applicable if you set the `useEmailTemplateSetting` field to `false`.
	EmailAddresses string `json:"emailAddresses,omitempty"`

	// Indicates whether to send a debit memo to the additional email addresses of the memo account.    You can set the additional email addresses in the **Additional Email Addresses** field on the account detail page from the Zuora UI. See [Create a Customer Account](https://knowledgecenter.zuora.com/BC_Subscription_Management/Customer_Accounts/B_Create_a_Customer_Account#section_2) for more information.
	IncludeAdditionalEmailAddresses bool `json:"includeAdditionalEmailAddresses,omitempty"`

	// Indicates whether to email a debit memo based on the email template setting.   If you set this field to `true`, the debit memo is sent to the email addresses specified in the **To Email** field of the email template. The email template is the one you set in the **Delivery Options** panel of the **Edit notification** dialog from the Zuora UI. See [Edit Email Templates](https://knowledgecenter.zuora.com/CF_Users_and_Administrators/Notifications/Create_Email_Templates) for more information about how to edit the **To Email** field in the email template.
	UseEmailTemplateSetting bool `json:"useEmailTemplateSetting,omitempty"`
}

type PostDecryptResponseType

type PostDecryptResponseType struct {

	// The string of a list of the following items: Payment Pages 2.0 URL, tenant ID, timestamp,the Payment Page ID  The items are separated by '#', e.g., \"/apps/publichostedpagelite.do#12271#rvBp1AxBJwk6FrT7aqFuABIINiRbwJCc #1418848373103#2c92c0f948f899\"
	DecryptedSignature string `json:"decryptedSignature,omitempty"`

	// The public key passed in as a request parameter.
	PublicKey string `json:"publicKey,omitempty"`

	// The signature passed in as a request parameter.
	Signature string `json:"signature,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostDecryptionType

type PostDecryptionType struct {

	// The type of the request. Set it to POST.
	Method string `json:"method"`

	// The public key generated by Zuora.
	PublicKey string `json:"publicKey"`

	// The signature generated by Zuora.
	Signature string `json:"signature"`
}

type PostDistributionItemType

type PostDistributionItemType struct {

	// Name of the accounting period. The open-ended accounting period is named `Open-Ended`.   The accounting period must be open.
	AccountingPeriodName string `json:"accountingPeriodName"`

	// Amount of revenue you want to distribute into the accounting period.  The value must be formatted based on the currency, for example, `JPY 30` or `USD 30.15`. If the value is formatted incorrectly, the following error message is returned: `Allocation amount with wrong decimal places.`
	NewAmount string `json:"newAmount"`
}

type PostEntityConnectionsResponseType

type PostEntityConnectionsResponseType struct {

	// The ID of the connection that you just initiated.
	Id string `json:"id,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostEntityConnectionsType

type PostEntityConnectionsType struct {

	// The ID of the target entity that you want to connect with. You can get the entity Id using the Multi-entity: Get entities call.
	TargetEntityId string `json:"targetEntityId"`
}

type PostGenerateBillingDocumentType

type PostGenerateBillingDocumentType struct {

	// Determines whether to auto post the billing documents once the draft billing documents are generated.   If an error occurred during posting billing documents, the draft billing documents are not generated too.
	AutoPost bool `json:"autoPost,omitempty"`

	// The date on which to generate the billing documents, in `yyyy-mm-dd` format.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// The IDs of the subscriptions that you want to create the billing documents for.
	SubscriptionIds []string `json:"subscriptionIds,omitempty"`

	// The date used to determine which charges are to be billed, in `yyyy-mm-dd` format.
	TargetDate time.Time `json:"targetDate,omitempty"`
}

type PostInvoiceCollectInvoicesType

type PostInvoiceCollectInvoicesType struct {

	// Invoice amount.
	InvoiceAmount string `json:"invoiceAmount,omitempty"`

	// Invoice ID.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Invoice number.
	InvoiceNumber string `json:"invoiceNumber,omitempty"`
}

type PostInvoiceCollectResponseType

type PostInvoiceCollectResponseType struct {

	// Payment amount applied.
	AmountCollected string `json:"amountCollected,omitempty"`

	// Information on one or more invoices associated with this operation:
	Invoices []PostInvoiceCollectInvoicesType `json:"invoices,omitempty"`

	// Payment ID.
	PaymentId string `json:"paymentId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostInvoiceCollectType

type PostInvoiceCollectType struct {

	// Customer account ID or account number.
	AccountKey string `json:"accountKey"`

	// The invoice date that should appear on the invoice being generated, in `yyyy-mm-dd` format. If `invoiceId` is not specified and this value is omitted, the current date is used by default.
	InvoiceDate time.Time `json:"invoiceDate,omitempty"`

	// The ID of an existing invoice for which to collect payment using the account's default payment method. If this value is specified, no new invoice is generated, and both `invoiceDate` and `invoiceTargetDate` are ignored.
	InvoiceId string `json:"invoiceId,omitempty"`

	// The date, in `yyyy-mm-dd` format, through which charges on this account will be processed when generating a new invoice.If `invoiceId` is not specified and this value is omitted, the current date is used by default.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// The name of the gateway that will be used for the payment. Must be a valid gateway name and the gateway must support the specific payment method. If a value is not specified, the default gateway on the Account will be used.
	PaymentGateway string `json:"paymentGateway,omitempty"`
}

type PostInvoiceEmailRequestType

type PostInvoiceEmailRequestType struct {

	// The valid email addresses you want to email an invoice to. Use commas to separate email addresses.  **Note:** This field is only applicable if you set the `useEmailTemplateSetting` field to `false`.
	EmailAddresses string `json:"emailAddresses,omitempty"`

	// Indicates whether to send an invoice to the additional email addresses of the invoice account.    You can set the additional email addresses in the **Additional Email Addresses** field on the account detail page from the Zuora UI. See [Create a Customer Account](https://knowledgecenter.zuora.com/BC_Subscription_Management/Customer_Accounts/B_Create_a_Customer_Account#section_2) for more information.
	IncludeAdditionalEmailAddresses bool `json:"includeAdditionalEmailAddresses,omitempty"`

	// Indicates whether to email an invoice based on the email template setting.   If you set this field to `true`, the invoice is sent to the email addresses specified in the **To Email** field of the email template. The email template is the one you set in the **Delivery Options** panel of the **Edit notification** dialog from the Zuora UI. See [Edit Email Templates](https://knowledgecenter.zuora.com/CF_Users_and_Administrators/Notifications/Create_Email_Templates) for more information about how to edit the **To Email** field in the email template.
	UseEmailTemplateSetting bool `json:"useEmailTemplateSetting,omitempty"`
}

type PostJournalEntryItemType

type PostJournalEntryItemType struct {

	// Name of the accounting code.
	AccountingCodeName string `json:"accountingCodeName"`

	// Accounting code type. This field is required if `accountingCodeName` is not unique.  Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	AccountingCodeType string `json:"accountingCodeType,omitempty"`

	// Journal entry item amount in transaction currency.
	Amount string `json:"amount"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Journal entry item amount in home currency.  This field is required if you have set your home currency for foreign currency conversion. Otherwise, do not pass this field.
	HomeCurrencyAmount string `json:"homeCurrencyAmount,omitempty"`

	// Type of journal entry item.
	Type_ string `json:"type"`
}

type PostJournalEntryResponseType

type PostJournalEntryResponseType struct {

	// Journal entry number in the format JE-00000001.
	JournalEntryNumber string `json:"journalEntryNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostJournalEntrySegmentType

type PostJournalEntrySegmentType struct {

	// Name of segment.
	SegmentName string `json:"segmentName"`

	// Value of segment in this summary journal entry.
	SegmentValue string `json:"segmentValue"`
}

type PostJournalEntryType

type PostJournalEntryType struct {

	// Name of the accounting period. The open-ended accounting period is named `Open-Ended`.
	AccountingPeriodName string `json:"accountingPeriodName"`

	// The type of currency used. Currency must be active.
	Currency string `json:"currency"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Date of the journal entry.
	JournalEntryDate time.Time `json:"journalEntryDate"`

	// Key name that represents the list of journal entry items.
	JournalEntryItems []PostJournalEntryItemType `json:"journalEntryItems"`

	// The number associated with the revenue event.  Character limit: 2,000
	Notes string `json:"notes,omitempty"`

	// List of segments that apply to the summary journal entry.
	Segments []PostJournalEntrySegmentType `json:"segments,omitempty"`

	// Status shows whether the journal entry has been transferred to an accounting system.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`
}

type PostJournalRunResponseType

type PostJournalRunResponseType struct {

	// Journal run number.
	JournalRunNumber string `json:"journalRunNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostJournalRunTransactionType

type PostJournalRunTransactionType struct {

	// Transaction type. Invoice Adjustment is deprecated on Production. Zuora recommends that you use the Invoice Item Adjustment instead.  If you enable the Advanced AR Settlement feature, Debit Memo Item, Credit Memo Item, and Credit Memo Application Item are available, Payment and Refund will be replaced by Payment Application and Refund Application.   If you enable both the Advanced AR Settlement feature and the Invoice Item Settlement feature, Payment and Refund will be replaced by Payment Application Item and Refund Application Item.
	Type_ string `json:"type"`
}

type PostJournalRunType

type PostJournalRunType struct {

	// Name of the accounting period.  This field determines the target start and end dates of the journal run.  Required if you do not include `targetStartDate` and `targetEndDate`.
	AccountingPeriodName string `json:"accountingPeriodName,omitempty"`

	// Date of the journal entry.
	JournalEntryDate time.Time `json:"journalEntryDate"`

	// The target end date of the journal run.  If you include `accountingPeriodName`, the `targetEndDate` must be empty or the same as the end date of the accounting period specified in `accountingPeriodName`.
	TargetEndDate time.Time `json:"targetEndDate,omitempty"`

	// The target start date of the journal run.  Required if you include targetEndDate.  If you include `accountingPeriodName`, the `targetStartDate` must be empty or the same as the start date of the accounting period specified in `accountingPeriodName`.
	TargetStartDate time.Time `json:"targetStartDate,omitempty"`

	// Transaction types included in the journal run.  You can include one or more transaction types.
	TransactionTypes []PostJournalRunTransactionType `json:"transactionTypes"`
}

type PostMassUpdateResponseType

type PostMassUpdateResponseType struct {

	// String of 32 characters that identifies the mass action. The bulkKey is generated before the mass action is processed. You can use the bulkKey to Get the Mass Action Result.
	BulkKey string `json:"bulkKey,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostMassUpdateType

type PostMassUpdateType struct {

	// File containing data about the mass action you want to perform. The file requirements are the same as when uploading a file through the Mass Updater on the Zuora UI.  The file must be a .csv file or a zipped .csv file.   The maximum file size is 4 MB.  The data in the file must be formatted according to the mass action type you want to perform. Refer to the articles listed in the `actionType` field below for the requirements of each mass action type.
	File string `json:"file"`

	Params PostMassUpdateTypeParams `json:"params,omitempty"`
}

type PostMassUpdateTypeParams

type PostMassUpdateTypeParams struct {

	// Type of mass action you want to perform. The following mass actions are supported: - UpdateAccountingCode - CreateRevenueSchedule - UpdateRevenueSchedule - DeleteRevenueSchedule - ImportFXRate
	ActionType string `json:"actionType"`

	// An MD5 checksum that is used to validate the integrity of the uploaded file. The checksum is a 32-character string.
	Checksum string `json:"checksum,omitempty"`
}

Container for the following fields. You must format the `params` field as a JSON object.

type PostMemoPdfResponse

type PostMemoPdfResponse struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostNonRefRefundType

type PostNonRefRefundType struct {

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation PostNonRefRefundTypeFinanceInformation `json:"financeInformation,omitempty"`

	// Container for credit memo items.  **Note:** The Invoice Item Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	Items []RefundCreditMemoItemType `json:"items,omitempty"`

	// How an external refund was issued to a customer. This field is required for an external refund and must be left empty for an electronic refund. You can issue an external refund on a credit memo.
	MethodType string `json:"methodType,omitempty"`

	// The ID of the payment method used for the refund. This field is required for an electronic refund, and the value must be an electronic payment method ID. This field must be left empty for an external refund.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The date when the refund takes effect, in `yyyy-mm-dd` format. The date of the refund cannot be before the credit memo date. Specify this field only for external refunds. Zuora automatically generates this field for electronic refunds.
	RefundDate time.Time `json:"refundDate,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the refund. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondRefundReferenceId string `json:"secondRefundReferenceId,omitempty"`

	// The total amount of the refund. The amount cannot exceed the unapplied amount of the associated credit memo. If the original credit memo was applied to one or more invoices or debit memos, you have to unapply a full or partial credit memo from the invoices or debit memos, and then refund the full or partial unapplied credit memo to your customers.
	TotalAmount float64 `json:"totalAmount"`

	// The type of the refund.
	Type_ string `json:"type"`
}

type PostNonRefRefundTypeFinanceInformation

type PostNonRefRefundTypeFinanceInformation struct {

	// The accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCode string `json:"bankAccountAccountingCode,omitempty"`

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// Whether the refund was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The accounting code for the unapplied payment.
	UnappliedPaymentAccountingCode string `json:"unappliedPaymentAccountingCode,omitempty"`
}

Container for the finance information related to the refund.

type PostPaymentMethodDecryption

type PostPaymentMethodDecryption struct {

	// ID of the billing account on which the payment method will be created.
	AccountID string `json:"accountID"`

	CardHolderInfo PostPaymentMethodDecryptionCardHolderInfo `json:"cardHolderInfo,omitempty"`

	// Field to identify the token decryption type.  **Note:** The only value at this time is ‘ApplePay’.
	IntegrationType string `json:"integrationType"`

	// The id of invoice this payment will apply to.  **Note:** When processPayment is true, this field is required. Only one invoice can be paid; for scenarios where you want to pay for multiple invoices, set processPayment to false and call payment API separately.
	InvoiceID string `json:"invoiceID,omitempty"`

	// The Merchant ID that was configured for use with Apple Pay in the Apple iOS Developer Center.
	MerchantID string `json:"merchantID"`

	// The label name of the gateway instance configured in Zuora that should process the payment. When creating a Payment, this must be a valid gateway instance ID and this gateway must support the specific payment method. If not specified, the default gateway on the Account will be used.  **Note:** When processPayment is true, this field is required.
	PaymentGateway string `json:"paymentGateway,omitempty"`

	// The complete JSON Object representing the encrypted payment token payload returned in the response from the Apple Pay session.
	PaymentToken interface{} `json:"paymentToken"`

	// A boolean flag to control whether a payment should be processed after creating payment method. The payment amount will be equivalent to the amount the merchant supplied in the ApplePay session. Default is false. When processPayment is false, it must be followed by a separate subscribe or payment API call to transaction.
	ProcessPayment bool `json:"processPayment,omitempty"`
}

type PostPaymentMethodDecryptionCardHolderInfo

type PostPaymentMethodDecryptionCardHolderInfo struct {

	// First address line, 255 characters or less.
	AddressLine1 string `json:"addressLine1,omitempty"`

	// Second address line, 255 characters or less.
	AddressLine2 string `json:"addressLine2,omitempty"`

	// The card holder's full name as it appears on the card, e.g., \"John J Smith\", 50 characters or less.
	CardHolderName string `json:"cardHolderName,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country, must be a valid country name or abbreviation.
	Country string `json:"country,omitempty"`

	// Card holder's email address, 80 characters or less.
	Email string `json:"email,omitempty"`

	// Phone number, 40 characters or less.
	Phone string `json:"phone,omitempty"`

	// State; must be a valid state name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for cardholder information. If provided, Zuora will only use this information for this card. If not provided, Zuora will use the account's existing bill-to contact information for this card.

type PostPaymentMethodResponseDecryption

type PostPaymentMethodResponseDecryption struct {

	// The payment amount contained within the encrypted token.
	Amount string `json:"amount,omitempty"`

	// The ID of newly processed payment,
	PaymentId string `json:"paymentId,omitempty"`

	// ID of the newly-created payment method.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostPaymentMethodResponseType

type PostPaymentMethodResponseType struct {

	// ID of the newly-created payment method.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostPaymentMethodType

type PostPaymentMethodType struct {

	// ID of the customer account to update.
	AccountKey string `json:"accountKey"`

	CardHolderInfo PostPaymentMethodTypeCardHolderInfo `json:"cardHolderInfo,omitempty"`

	// Credit card number, a string of up to 16 characters. This field can only be set when creating a new payment method; it cannot be queried or updated.
	CreditCardNumber string `json:"creditCardNumber"`

	// Possible values are: `Visa`, `MasterCard`, `AmericanExpress`, `Discover`.
	CreditCardType string `json:"creditCardType"`

	// Specify true to make this card the default payment method; otherwise, omit this parameter to keep the current default payment method.
	DefaultPaymentMethod bool `json:"defaultPaymentMethod,omitempty"`

	// Two-digit expiration month (01-12).
	ExpirationMonth string `json:"expirationMonth"`

	// Four-digit expiration year.
	ExpirationYear string `json:"expirationYear"`

	// The CVV or CVV2 security code for the credit card or debit card. Only required if changing expirationMonth, expirationYear, or cardHolderName. To ensure PCI compliance, this value isn't stored and can't be queried.
	SecurityCode string `json:"securityCode,omitempty"`
}

type PostPaymentMethodTypeCardHolderInfo

type PostPaymentMethodTypeCardHolderInfo struct {

	// First address line, 255 characters or less.
	AddressLine1 string `json:"addressLine1,omitempty"`

	// Second address line, 255 characters or less.
	AddressLine2 string `json:"addressLine2,omitempty"`

	// The card holder's full name as it appears on the card, e.g., \"John J Smith\", 50 characters or less.
	CardHolderName string `json:"cardHolderName"`

	// City, 40 characters or less.
	City string `json:"city"`

	// Country, must be a valid country name or abbreviation.
	Country string `json:"country"`

	// Card holder's email address, 80 characters or less.
	Email string `json:"email,omitempty"`

	// Phone number, 40 characters or less.
	Phone string `json:"phone,omitempty"`

	// State; must be a valid state name or 2-character abbreviation.
	State string `json:"state"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode"`
}

Container for cardholder information. If provided, Zuora will only use this information for this card. If not provided, Zuora will use the account's existing bill-to contact information for this card.

type PostQuoteDocResponseType

type PostQuoteDocResponseType struct {

	// URL of the generated quote document if the file was successfully generated.
	File string `json:"file,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostQuoteDocType

type PostQuoteDocType struct {

	// If not using Salesforce locale, this API Zuora user will be used to retrieve the locale from Zuora.
	Apiuser string `json:"apiuser,omitempty"`

	// Type of the document to generate: `PDF` or `DOC`.
	DocumentType string `json:"documentType"`

	// Salesforce locale value to use.
	Locale string `json:"locale,omitempty"`

	//
	Password string `json:"password,omitempty"`

	// | Id of the quote。
	QuoteId string `json:"quoteId"`

	//
	Sandbox string `json:"sandbox,omitempty"`

	// SOAP URL used to login to Salesforce to get data. You can get the value with the following code in a Visualforce page: `{!$Api.Partner_Server_URL_100}`
	ServerUrl string `json:"serverUrl"`

	// Salesforce session id used to log in to Salesforce to get data. You can get the value with the following code in a Visualforce page: *{!$Api.Session_ID}*
	SessionId string `json:"sessionId"`

	// Id of the quote template in Zuora.
	TemplateId string `json:"templateId"`

	//
	Token string `json:"token,omitempty"`

	// If using Salesforce org locale, set this to a value that is not null.
	UseSFDCLocale string `json:"useSFDCLocale,omitempty"`

	//
	Username string `json:"username,omitempty"`

	// The major version number of Zuora Quotes you are generating the quote document in. You can use a quote template with hierarchy sizes bigger than 3 if this is set to 7 or higher.
	ZquotesMajorVersion string `json:"zquotesMajorVersion,omitempty"`

	// The minor version number of Zuora Quotes you are generating the quote document in.
	ZquotesMinorVersion string `json:"zquotesMinorVersion,omitempty"`
}

type PostRefundType

type PostRefundType struct {

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation PostRefundTypeFinanceInformation `json:"financeInformation,omitempty"`

	// How an external refund was issued to a customer. This field is required for an external refund and must be left empty for an electronic refund. You can issue an external refund on an electronic payment.
	MethodType string `json:"methodType,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`

	// The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments.
	ReferenceId string `json:"referenceId,omitempty"`

	// The date when the refund takes effect, in `yyyy-mm-dd` format. The date of the refund cannot be before the payment date. Specify this field only for external refunds. Zuora automatically generates this field for electronic refunds.
	RefundDate time.Time `json:"refundDate,omitempty"`

	// The transaction ID returned by the payment gateway if there is an additional transaction for the refund. Use this field to reconcile payments between your gateway and Zuora Payments.
	SecondRefundReferenceId string `json:"secondRefundReferenceId,omitempty"`

	// The total amount of the refund. The amount cannot exceed the unapplied amount of the associated payment. If the original payment was applied to one or more invoices or debit memos, you have to unapply a full or partial payment from the invoices or debit memos, and then refund the full or partial unapplied payment to your customers.
	TotalAmount float64 `json:"totalAmount"`

	// The type of the refund.
	Type_ string `json:"type"`
}

type PostRefundTypeFinanceInformation

type PostRefundTypeFinanceInformation struct {

	// The accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCode string `json:"bankAccountAccountingCode,omitempty"`

	// Whether the refund was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The accounting code for the unapplied payment.
	UnappliedPaymentAccountingCode string `json:"unappliedPaymentAccountingCode,omitempty"`
}

Container for the finance information related to the refund.

type PostRevenueScheduleByChargeResponseType

type PostRevenueScheduleByChargeResponseType struct {

	// Revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, \"RS-00000001\".
	RevenueScheduleNumber string `json:"revenueScheduleNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostRevenueScheduleByChargeType

type PostRevenueScheduleByChargeType struct {

	// The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as `JPY 30` or `USD 30.15`. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned: `Allocation amount with wrong decimal places.`
	Amount string `json:"amount"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The accounting code for deferred revenue, such as Monthly Recurring Liability. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, this value is ignored.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The type of the deferred revenue accounting code, such as Deferred Revenue. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, this value is ignored.
	DeferredRevenueAccountingCodeType string `json:"deferredRevenueAccountingCodeType,omitempty"`

	// Additional information about this record.  Character Limit: 2,000
	Notes string `json:"notes,omitempty"`

	// When overriding accounting codes from a charge, `recognizedRevenueAccountingCode` and `deferredRevenue AccountingCode` must be in the request body and can have the empty value.
	OverrideChargeAccountingCodes bool `json:"overrideChargeAccountingCodes,omitempty"`

	// The accounting code for recognized revenue, such as Monthly Recurring Charges or Overage Charges. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, the value is ignored.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The type of the recognized revenue accounting code, such as Sales Revenue or Sales Discount. Required only when `overrideChargeAccountingCodes` is `true`. Otherwise, this value is ignored.
	RecognizedRevenueAccountingCodeType string `json:"recognizedRevenueAccountingCodeType,omitempty"`

	// Reference ID is used only in the custom unlimited rule to create a revenue schedule. In this scenario, the revenue schedule is not linked to an invoice item or invoice item adjustment.  Character Limit: 60
	ReferenceId string `json:"referenceId,omitempty"`

	// An array of revenue distributions. Represents how you want to distribute revenue for this revenue schedule. You can distribute revenue into a maximum of 250 accounting periods with one revenue schedule.  The sum of the newAmount fields must be equal to the amount field.
	RevenueDistributions []PostDistributionItemType `json:"revenueDistributions,omitempty"`

	RevenueEvent PostRevenueScheduleByChargeTypeRevenueEvent `json:"revenueEvent,omitempty"`

	// The effective date of the revenue schedule. For example, the revenue schedule date for bookings-based revenue recognition is typically set to the order date or contract date.  The date cannot be in a closed accounting period. The date must be in `yyyy-mm-dd` format.
	RevenueScheduleDate time.Time `json:"revenueScheduleDate"`
}

type PostRevenueScheduleByChargeTypeRevenueEvent

type PostRevenueScheduleByChargeTypeRevenueEvent struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.
	EventTypeSystemId string `json:"eventTypeSystemId"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`
}

Represents a change to a revenue schedule, such as posting an invoice or distributing revenue.

type PostRevenueScheduleByDateRangeType

type PostRevenueScheduleByDateRangeType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// How you want to distribute the revenue.    * Daily Distribution: Distributes revenue evenly across each day between the recognitionStart and recognitionEnd dates. * Monthly Distribution (Back Load): Back loads the revenue so you distribute the monthly amount in the partial month in the end only. * Monthly Distribution (Front Load): Front loads the revenue so you distribute the monthly amount in the partial month in the beginning only. * Monthly Distribution (Proration by Days): Splits the revenue amount between the two partial months.  **Note:** To use any of the Monthly Distribution options, you must have the \"Monthly recognition over time\" model enabled in **Settings > Finance > Manage Revenue Recognition Models** in the Zuora UI.
	DistributionType string `json:"distributionType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The end date of a recognition period in `yyyy-mm-dd` format.   The maximum difference between the `recognitionStart` and `recognitionEnd` date fields is equal to 250 multiplied by the length of an accounting period.
	RecognitionEnd time.Time `json:"recognitionEnd"`

	// The start date of a recognition period in `yyyy-mm-dd` format.  If there is a closed accounting period between the `recognitionStart` and `recognitionEnd` dates, the revenue that would be placed in the closed accounting period is instead placed in the next open accounting period.
	RecognitionStart time.Time `json:"recognitionStart"`

	RevenueEvent PostRevenueScheduleByDateRangeTypeRevenueEvent `json:"revenueEvent,omitempty"`
}

type PostRevenueScheduleByDateRangeTypeRevenueEvent

type PostRevenueScheduleByDateRangeTypeRevenueEvent struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Required only if there is more than one revenue event type with the same label.
	EventTypeSystemId string `json:"eventTypeSystemId,omitempty"`

	//
	Notes string `json:"notes,omitempty"`
}

Must specify at least one of `eventType` or `eventTypeSystemId`.

type PostRevenueScheduleByTransactionRatablyType

type PostRevenueScheduleByTransactionRatablyType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldsValues string `json:"customFieldsValues,omitempty"`

	// How you want to distribute the revenue.  * Daily Distribution: Distributes revenue evenly across each day between the recognitionStart and recognitionEnd dates. * Monthly Distribution (Back Load): Back loads the revenue so you distribute the monthly amount in the partial month in the end only. * Monthly Distribution (Front Load): Front loads the revenue so you distribute the monthly amount in the partial month in the beginning only. * Monthly Distribution (Proration by Days): Splits the revenue amount between the two partial months.  **Note:** To use any of the Monthly Distribution options, you must have the \"Monthly recognition over time\" model enabled in **Settings > Finance > Manage Revenue Recognition Models** in the Zuora UI.
	DistributionType string `json:"distributionType,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The end date of a recognition period in `yyyy-mm-dd` format.  The maximum difference between the `recognitionStart` and `recognitionEnd` date fields is equal to 250 multiplied by the length of an accounting period.
	RecognitionEnd time.Time `json:"recognitionEnd"`

	// The start date of a recognition period in `yyyy-mm-dd` format.  If there is a closed accounting period between the `recognitionStart` and `recognitionEnd` dates, the revenue that would be placed in the closed accounting period is instead placed in the next open accounting period.
	RecognitionStart time.Time `json:"recognitionStart"`

	RevenueEvent PostRevenueScheduleByTransactionRatablyTypeRevenueEvent `json:"revenueEvent,omitempty"`
}

type PostRevenueScheduleByTransactionRatablyTypeRevenueEvent

type PostRevenueScheduleByTransactionRatablyTypeRevenueEvent struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldsValues string `json:"customFieldsValues,omitempty"`

	// The label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Required only if there is more than one revenue event type with the same label.
	EventTypeSystemId string `json:"eventTypeSystemId,omitempty"`

	// Additional information about the revenue event.
	Notes string `json:"notes,omitempty"`
}

Must specify at least one of `eventType` or `eventTypeSystemId`.

type PostRevenueScheduleByTransactionResponseType

type PostRevenueScheduleByTransactionResponseType struct {

	// Revenue schedule number. The revenue schedule number is always prefixed with \"RS\", for example, \"RS-00000001\".
	RevenueScheduleNumber string `json:"revenueScheduleNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PostRevenueScheduleByTransactionType

type PostRevenueScheduleByTransactionType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Additional information about this record.  Character Limit: 2,000
	Notes string `json:"notes,omitempty"`

	// An array of revenue distributions. Represents how you want to distribute revenue for this revenue schedule. You can distribute revenue into a maximum of 250 accounting periods with one revenue schedule.  The sum of new Amounts must equal the the Charge Amount of the specified Invoice Item.
	RevenueDistributions []PostDistributionItemType `json:"revenueDistributions,omitempty"`

	RevenueEvent PostRevenueScheduleByTransactionTypeRevenueEvent `json:"revenueEvent,omitempty"`
}

type PostRevenueScheduleByTransactionTypeRevenueEvent

type PostRevenueScheduleByTransactionTypeRevenueEvent struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Required only if there is more than one revenue event type with the same label.
	EventTypeSystemId string `json:"eventTypeSystemId,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`
}

Represents a change to a revenue schedule, such as posting an invoice or distributing revenue. You must specify the `eventType` or the `eventTypeSystemID`, or both. If you have configured more than one revenue event type with the same label, you must specify the `eventTypeSystemId`.

type PostScCreateType

type PostScCreateType struct {

	// Specifies the type of charges that you want a specific discount to apply to.  Values:  * `ONETIME` * `RECURRING` * `USAGE` * `ONETIMERECURRING` * `ONETIMEUSAGE` * `RECURRINGUSAGE` * `ONETIMERECURRINGUSAGE`
	ApplyDiscountTo string `json:"applyDiscountTo,omitempty"`

	// Sets the bill cycle day (BCD) for the charge. The BCD determines which day of the month the customer is billed.  Values: `1`-`31`
	BillCycleDay string `json:"billCycleDay,omitempty"`

	// Specifies how to determine the billing day for the charge. When this field is set to `SpecificDayOfMonth`, set the `BillCycleDay` field. When this field is set to `SpecificDayOfWeek`, set the `weeklyBillCycleDay` field.  Values:  * `DefaultFromCustomer` * `SpecificDayOfMonth` * `SubscriptionStartDay` * `ChargeTriggerDay` * `SpecificDayOfWeek`
	BillCycleType string `json:"billCycleType,omitempty"`

	// Billing period for the charge. The start day of the billing period is also called the bill cycle day (BCD).  Values:  * `Month` * `Quarter` * `Semi_Annual` * `Annual` * `Eighteen_Months` * `Two_Years` * `Three_Years` * `Five_Years` * `Specific_Months` * `Subscription_Term` * `Week` * `Specific_Weeks`
	BillingPeriod string `json:"billingPeriod,omitempty"`

	// Aligns charges within the same subscription if multiple charges begin on different dates.  Values:  * `AlignToCharge` * `AlignToSubscriptionStart` * `AlignToTermStart`
	BillingPeriodAlignment string `json:"billingPeriodAlignment,omitempty"`

	// Billing timing for the charge for recurring charge types. Not avaliable for one time, usage, and discount charges.  Values:  * `IN_ADVANCE` (default) * `IN_ARREARS`
	BillingTiming string `json:"billingTiming,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Description of the charge.
	Description string `json:"description,omitempty"`

	// Specifies the amount of fixed-amount discount.
	DiscountAmount string `json:"discountAmount,omitempty"`

	// Specifies if the discount applies to the product rate plan only, the entire subscription, or to any activity in the account.  Values:  * `rateplan` * `subscription` * `account`
	DiscountLevel string `json:"discountLevel,omitempty"`

	// Percentage of discount for a percentage discount.
	DiscountPercentage string `json:"discountPercentage,omitempty"`

	// Defines when the charge ends after the charge trigger date. If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.  Values:  * `Subscription_End` * `Fixed_Period` * `Specific_End_Date`
	EndDateCondition string `json:"endDateCondition,omitempty"`

	// Specifies the number of units in the base set of units for this charge. Must be >=`0`.
	IncludedUnits string `json:"includedUnits,omitempty"`

	// The list price base for the product rate plan charge.  Values:  * `Per_Billing_Period` * `Per_Month` * `Per_Week`
	ListPriceBase string `json:"listPriceBase,omitempty"`

	// Unique number that identifies the charge. Max 50 characters. System-generated if not provided.
	Number string `json:"number,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model.
	NumberOfPeriods int64 `json:"numberOfPeriods,omitempty"`

	// Price for units over the allowed amount.
	OveragePrice string `json:"overagePrice,omitempty"`

	// Determines whether to credit the customer with unused units of usage.  Values:  * `NoCredit` * `CreditBySpecificRate`
	OverageUnusedUnitsCreditOption string `json:"overageUnusedUnitsCreditOption,omitempty"`

	// Price for units in the subscription rate plan.
	Price string `json:"price,omitempty"`

	// Applies an automatic price change when a termed subscription is renewed. The Billing Admin setting **Enable Automatic Price Change When Subscriptions are Renewed?** must be set to Yes to use this field. Values:  * `NoChange` (default) * `SpecificPercentageValue` * `UseLatestProductCatalogPricing`
	PriceChangeOption string `json:"priceChangeOption,omitempty"`

	// Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Required if you set the `PriceChangeOption` field to `SpecificPercentageValue`.   Value must be a decimal between `-100` and `100`.
	PriceIncreasePercentage string `json:"priceIncreasePercentage,omitempty"`

	// ID of a product rate-plan charge for this subscription.
	ProductRatePlanChargeId string `json:"productRatePlanChargeId"`

	// Number of units. Must be a decimal >=`0`.
	Quantity string `json:"quantity"`

	// Specifies a rating group based on which usage records are rated. **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  Values:  * `ByBillingPeriod` (default): The rating is based on all the usages in a billing period.        * `ByUsageStartDate`: The rating is based on all the usages on the same usage start date.  * `ByUsageRecord`: The rating is based on each usage record. * `ByUsageUpload`: The rating is based on all the usages in a uploaded usage file (.xls or .csv).  **Note:**  The `ByBillingPeriod` value can be applied for all charge models. The `ByUsageStartDate`, `ByUsageRecord`, and `ByUsageUpload` values can only be applied for per unit, volume pricing, and tiered pricing charge models. Use this field only for Usage charges. One-Time Charges and Recurring Charges return `NULL`.
	RatingGroup string `json:"ratingGroup,omitempty"`

	// Specifies the number of month or week for the charges billing period. Required if you set the value of the `billingPeriod` field to `Specific_Months` or `Specific_Weeks`.
	SpecificBillingPeriod int64 `json:"specificBillingPeriod,omitempty"`

	// Defines when the charge ends after the charge trigger date.  **note:**  * This field is only applicable when the `endDateCondition` field is set to `Specific_End_Date`.  * If the subscription ends before the specific end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the specific end date.
	SpecificEndDate time.Time `json:"specificEndDate,omitempty"`

	// Container for Volume, Tiered, or Tiered with Overage charge models. Supports the following charge types:  * One-time * Recurring * Usage-based
	Tiers []PostTierType `json:"tiers,omitempty"`

	// Specifies when to start billing the customer for the charge. Required if the `triggerEvent` field is set to `USD`.
	TriggerDate time.Time `json:"triggerDate,omitempty"`

	// Specifies when to start billing the customer for the charge.  Values:  * `UCE` * `USA` * `UCA` * `USD`
	TriggerEvent string `json:"triggerEvent,omitempty"`

	// Specifies the rate to credit a customer for unused units of usage. This field applies only for overage charge models when the `OverageUnusedUnitsCreditOption` field is set to `CreditBySpecificRate`.
	UnusedUnitsCreditRates string `json:"unusedUnitsCreditRates,omitempty"`

	// Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends.  **Note:** You must use this field together with the `upToPeriodsType` field to specify the time period.  * This field is applicable only when the `endDateCondition` field is set to `Fixed_Period`.  * If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods int64 `json:"upToPeriods,omitempty"`

	//  The period type used to define when the charge ends.   Values:  * `Billing_Periods` * `Days` * `Weeks` * `Months` * `Years`  You must use this field together with the `upToPeriods` field to specify the time period.  This field is applicable only when the `endDateCondition` field is set to `Fixed_Period`.
	UpToPeriodsType string `json:"upToPeriodsType,omitempty"`

	// Specifies which day of the week is the bill cycle day (BCD) for the charge.   Values:  * `Sunday` * `Monday` * `Tuesday` * `Wednesday` * `Thursday` * `Friday` * `Saturday`
	WeeklyBillCycleDay string `json:"weeklyBillCycleDay,omitempty"`
}

type PostSrpCreateType

type PostSrpCreateType struct {

	// This optional container is used to override the quantity of one or more product rate plan charges for this subscription.
	ChargeOverrides []PostScCreateType `json:"chargeOverrides,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// ID of a product rate plan for this subscription.
	ProductRatePlanId string `json:"productRatePlanId"`
}

type PostSubscriptionCancellationResponseType

type PostSubscriptionCancellationResponseType struct {

	// The date that the subscription was canceled.
	CancelledDate time.Time `json:"cancelledDate,omitempty"`

	// ID of the invoice, if one is generated.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Amount paid.
	PaidAmount string `json:"paidAmount,omitempty"`

	// ID of the payment, if a payment is collected.
	PaymentId string `json:"paymentId,omitempty"`

	// The subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Change in the subscription monthly recurring revenue as a result of the update.
	TotalDeltaMrr string `json:"totalDeltaMrr,omitempty"`

	// Change in the total contracted value of the subscription as a result of the update.
	TotalDeltaTcv string `json:"totalDeltaTcv,omitempty"`
}

type PostSubscriptionCancellationType

type PostSubscriptionCancellationType struct {

	// The closing date of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityCloseDateQT string `json:"OpportunityCloseDate_QT,omitempty"`

	// The unique identifier of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityNameQT string `json:"OpportunityName_QT,omitempty"`

	// The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal, or Churn. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteBusinessTypeQT string `json:"QuoteBusinessType_QT,omitempty"`

	// The unique identifier of the Quote. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteNumberQT string `json:"QuoteNumber_QT,omitempty"`

	// The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is populated when the subscription originates from Zuora Quotes.
	QuoteTypeQT string `json:"QuoteType_QT,omitempty"`

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.   To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.  Prerequisite: `invoice` must be `true`.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// Date the cancellation takes effect, in the format yyyy-mm-dd.  Use only if `cancellationPolicy` is `SpecificDate`. Should not be earlier than the subscription contract-effective date, later than the subscription term-end date, or within a period for which the customer has been invoiced.
	CancellationEffectiveDate time.Time `json:"cancellationEffectiveDate,omitempty"`

	// Cancellation method. Possible values are: `EndOfCurrentTerm`, `EndOfLastInvoicePeriod`, `SpecificDate`. If using `SpecificDate`, the `cancellationEffectiveDate` field is required.
	CancellationPolicy string `json:"cancellationPolicy"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account.  If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is `false`.  This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.   Prerequisite: `invoice` must be `true`.
	Collect bool `json:"collect,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.   Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken. The default value is `false`.    This field is in Zuora REST API version control. Supported minor versions are `196.0` and `207.0`. To use this field in the method, you must set the zuora-version parameter to the minor version number in the request header.
	Invoice bool `json:"invoice,omitempty"`

	// This field has been replaced by the `invoice` field and the `collect` field. `invoiceCollect` is available only for backward compatibility.  If `true`, an invoice is generated and payment automatically collected. Default is `false`.  This field is in Zuora REST API version control. Supported minor versions are `186.0`, `187.0`, `188.0`, `189.0`, and `196.0`.
	InvoiceCollect bool `json:"invoiceCollect"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.   Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in Zuora REST API version control. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).     The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.   **Note:** The credit memo is only available if you have the Avdanced AR Settlement feature enabled.   This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`
}

type PostSubscriptionPreviewCreditMemoItemsType

type PostSubscriptionPreviewCreditMemoItemsType struct {

	// The amount of this credit memo item.
	ChargeAmount float64 `json:"chargeAmount,omitempty"`

	// Description of this credit memo item.
	ChargeDescription string `json:"chargeDescription,omitempty"`

	// Name of this credit memo item.
	ChargeName string `json:"chargeName,omitempty"`

	// Name of the product associated with this credit memo item.
	ProductName string `json:"productName,omitempty"`

	// ID of the product rate plan charge associated with this credit memo item.
	ProductRatePlanChargeId string `json:"productRatePlanChargeId,omitempty"`

	// Quantity of the charge associated with this credit memo item.
	Quantity int32 `json:"quantity,omitempty"`

	// End date of the service period for this credit memo item, as yyyy-mm-dd.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// Service start date of this credit memo item, as yyyy-mm-dd.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// Unit used to measure consumption.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PostSubscriptionPreviewInvoiceItemsType

type PostSubscriptionPreviewInvoiceItemsType struct {

	// The amount of the charge. This amount doesn't include taxes unless the charge's tax mode is inclusive.
	ChargeAmount string `json:"chargeAmount,omitempty"`

	// Description of the charge.
	ChargeDescription string `json:"chargeDescription,omitempty"`

	// Name of the charge.
	ChargeName string `json:"chargeName,omitempty"`

	// Name of the product associated with this item.
	ProductName string `json:"productName,omitempty"`

	// ID of the product rate plan charge.
	ProductRatePlanChargeId string `json:"productRatePlanChargeId,omitempty"`

	// Quantity of this item.
	Quantity string `json:"quantity,omitempty"`

	// End date of the service period for this item, i.e., the last day of the period, as yyyy-mm-dd.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// Service start date as yyyy-mm-dd. If the charge is a one-time fee, this is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	//
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PostSubscriptionPreviewResponseType

type PostSubscriptionPreviewResponseType struct {

	// Invoice amount.
	Amount string `json:"amount,omitempty"`

	// Invoice amount minus tax.
	AmountWithoutTax string `json:"amountWithoutTax,omitempty"`

	ChargeMetrics PostSubscriptionPreviewResponseTypeChargeMetrics `json:"chargeMetrics,omitempty"`

	// Monthly recurring revenue of the subscription.
	ContractedMrr string `json:"contractedMrr,omitempty"`

	CreditMemo PostSubscriptionPreviewResponseTypeCreditMemo `json:"creditMemo,omitempty"`

	// Container for invoices.    **Note:** This field is only available if you set the Zuora REST API minor version to 207.0 or later in the request header. Also, the response structure is changed and the following invoice related response fields are moved to this **invoice** container:       * amount    * amountWithoutTax    * taxAmount    * invoiceItems    * targetDate    * chargeMetrics
	Invoice interface{} `json:"invoice,omitempty"`

	// Container for invoice items.
	InvoiceItems []PostSubscriptionPreviewInvoiceItemsType `json:"invoiceItems,omitempty"`

	// Date through which charges are calculated on the invoice, as yyyy-mm-dd.  **Note:** This field is only available if you do not specify the Zuora REST API minor version or specify the minor version to 186.0, 187.0, 188.0, 189.0, and 196.0. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	//
	PreviewChargeMetricsResponse string `json:"previewChargeMetricsResponse,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.  **Note:** This field is only available if you set the Zuora REST API minor version to 207.0 or later in the request header. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// Tax amount on the invoice.
	TaxAmount string `json:"taxAmount,omitempty"`

	// Total contracted value of the subscription.
	TotalContractedValue string `json:"totalContractedValue,omitempty"`
}

type PostSubscriptionPreviewResponseTypeChargeMetrics

type PostSubscriptionPreviewResponseTypeChargeMetrics struct {

	// Change in monthly recurring revenue.
	Dmrr string `json:"dmrr,omitempty"`

	// Change in total contract value.
	Dtcv string `json:"dtcv,omitempty"`

	// Monthly recurring revenue.
	Mrr string `json:"mrr,omitempty"`

	// The charge number of the subscription. Only available for update subscription.
	Number string `json:"number,omitempty"`

	// The origin rate plan ID. Only available for update subscription.
	OriginRatePlanId string `json:"originRatePlanId,omitempty"`

	// The original rate plan charge ID. Only available for update subscription.
	OriginalId string `json:"originalId,omitempty"`

	// The product rate plan charge ID.
	ProductRatePlanChargeId string `json:"productRatePlanChargeId,omitempty"`

	// The product rate plan ID.
	ProductRatePlanId string `json:"productRatePlanId,omitempty"`

	// Total contract value.
	Tcv string `json:"tcv,omitempty"`
}

Container for charge metrics.

type PostSubscriptionPreviewResponseTypeCreditMemo

type PostSubscriptionPreviewResponseTypeCreditMemo struct {

	// Credit memo amount.
	Amount float64 `json:"amount,omitempty"`

	// Credit memo amount minus tax.
	AmountWithoutTax float64 `json:"amountWithoutTax,omitempty"`

	//
	CreditMemoItems []PostSubscriptionPreviewCreditMemoItemsType `json:"creditMemoItems,omitempty"`

	// Tax amount on the credit memo.
	TaxAmount float64 `json:"taxAmount,omitempty"`
}

Container for credit memos. **Note:** This container is only available if you set the Zuora REST API minor version to 207.0 or later in the request header, and you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).

type PostSubscriptionPreviewType

type PostSubscriptionPreviewType struct {

	// The closing date of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityCloseDateQT string `json:"OpportunityCloseDate_QT,omitempty"`

	// The unique identifier of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityNameQT string `json:"OpportunityName_QT,omitempty"`

	// The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal, or Churn. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteBusinessTypeQT string `json:"QuoteBusinessType_QT,omitempty"`

	// The unique identifier of the Quote. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteNumberQT string `json:"QuoteNumber_QT,omitempty"`

	// The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	QuoteTypeQT string `json:"QuoteType_QT,omitempty"`

	//  Customer account number or ID.  You must specify the account information either in this field or in the `previewAccountInfo` field with the following conditions:           * If you already have a customer account, specify the account number or ID in this field. * If you do not have a customer account, provide account information in the `previewAccountInfo` field.
	AccountKey string `json:"accountKey,omitempty"`

	// Effective contract date for this subscription, as yyyy-mm-dd.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate"`

	// The date on which the services or products within a subscription have been accepted by the customer, as yyyy-mm-dd.  Default value is dependent on the value of other fields. See **Notes** section for more details.
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// Specifies whether to include draft invoice items in subscription previews. Values are:  * `true` (default). Includes draft invoice items in the preview result. * `false`. Excludes draft invoice items in the preview result.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 207.0 or later. To use this field in the method, you must set the **zuora-version** parameter to the minor version number in the request header. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	IncludeExistingDraftDocItems bool `json:"includeExistingDraftDocItems,omitempty"`

	// Specifies whether to include draft invoice items in previews. Values are:  * `true` (default). Includes draft invoice items in the preview result. * `false`. Excludes draft invoice items in the preview result.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	IncludeExistingDraftInvoiceItems bool `json:"includeExistingDraftInvoiceItems,omitempty"`

	// Duration of the first term of the subscription, in whole months. Default is `0`. If `termType` is `TERMED`, then this field is required, and the value must be greater than `0`. If `termType` is `EVERGREEN`, this field is ignored.
	InitialTerm int64 `json:"initialTerm,omitempty"`

	// The period type of the initial term.   Supported values are:  * `Month` * `Year` * `Day` * `Week`
	InitialTermPeriodType string `json:"initialTermPeriodType,omitempty"`

	// Invoice owner account number or ID.  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	InvoiceOwnerAccountKey string `json:"invoiceOwnerAccountKey,omitempty"`

	// Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// String of up to 500 characters.
	Notes string `json:"notes,omitempty"`

	PreviewAccountInfo PostSubscriptionPreviewTypePreviewAccountInfo `json:"previewAccountInfo,omitempty"`

	// The type of preview you will receive.   This field is in Zuora REST API version control. The supported values of this field depend on the REST API minor version you specified in the request header.   * If you do not specify the REST API minor version or specify the minor version number to one of following values in the request header:     * 186.0   * 187.0   * 188.0   * 189.0   * 196.0       The following values are supported in the **previewType** field:    * InvoiceItem   * ChargeMetrics   * InvoiceItemChargeMetrics      The default value is InvoiceItem.  * If you specify the REST API minor version to 207.0 or later in the request header, the following values are supported in the **previewType** field:    - LegalDoc   - ChargeMetrics   - LegalDocChargeMetrics    The default value is LegalDoc.  See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	PreviewType string `json:"previewType,omitempty"`

	// The date on which the services or products within a subscription have been activated and access has been provided to the customer, as yyyy-mm-dd.  Default value is dependent on the value of other fields. See **Notes** section for more details.
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// Container for one or more rate plans for this subscription.
	SubscribeToRatePlans []PostSrpCreateType `json:"subscribeToRatePlans"`

	// Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 207.0 or later. To use this field in the method, you must set the **zuora-version** parameter to the minor version number in the request header. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The date on which the subscription term begins, as yyyy-mm-dd. If this is a renewal subscription, this date is different from the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType"`
}

type PostSubscriptionPreviewTypePreviewAccountInfo

type PostSubscriptionPreviewTypePreviewAccountInfo struct {

	// The account's bill cycle day (BCD), when bill runs generate invoices for the account. Specify any day of the month (`1`-`31`, where `31` = end-of-month), or `0` for auto-set.
	BillCycleDay int64 `json:"billCycleDay"`

	BillToContact PostSubscriptionPreviewTypePreviewAccountInfoBillToContact `json:"billToContact,omitempty"`

	// A currency as defined in Billing Settings.
	Currency string `json:"currency"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`
}

A container for providing a customer account information if you do not have an existing customer account. This customer account information is only used for subscription preview. You must specify the account information either in this field or in the `accountKey` field with the following conditions: * If you already have a customer account, specify the account number or ID in the accountKey field. * If you do not have a customer account, provide account information in this field.

type PostSubscriptionPreviewTypePreviewAccountInfoBillToContact

type PostSubscriptionPreviewTypePreviewAccountInfoBillToContact struct {

	// The city of the bill-to address. The value should be 40 characters or less.
	City string `json:"city,omitempty"`

	// The country of the bill-to address. The value must be a valid country name or abbreviation.  **Note:** You must specify this field if you are using Zuora Tax for this account.
	Country string `json:"country,omitempty"`

	// The county of the bill-to address. The value should be 32 characters or less.
	County string `json:"county,omitempty"`

	// The state of the bill-to address. The value must be a valid state or province name or 2-character abbreviation.  **Note:** You must specify this field if you are using Zuora Tax for this account and the country is `USA` or `Canada`.
	State string `json:"state,omitempty"`

	// If using Zuora Tax, a region string as optionally defined in your tax rules.
	TaxRegion string `json:"taxRegion,omitempty"`

	// The zip code of the bill-to address. The value should be 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for bill-to contact information of this account.

type PostSubscriptionResponseType

type PostSubscriptionResponseType struct {

	// Monthly recurring revenue of the subscription.
	ContractedMrr string `json:"contractedMrr,omitempty"`

	// Invoice ID, if an invoice is generated during the subscription process.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Payment amount, if a payment is collected.
	PaidAmount string `json:"paidAmount,omitempty"`

	// Payment ID, if a payment is collected.
	PaymentId string `json:"paymentId,omitempty"`

	//
	SubscriptionId string `json:"subscriptionId,omitempty"`

	//
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Total contracted value of the subscription.
	TotalContractedValue string `json:"totalContractedValue,omitempty"`
}

type PostSubscriptionType

type PostSubscriptionType struct {

	//
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	//
	OpportunityCloseDateQT string `json:"OpportunityCloseDate__QT,omitempty"`

	//
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	//
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	//
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	//
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	// Customer account number or ID
	AccountKey string `json:"accountKey"`

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.   To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.  Prerequisite: `invoice` must be `true`.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account. If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is `true`.  **Prerequisite:** The invoice field must be `true`.   **Note:** This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` field to the minor version number in the request header.
	Collect bool `json:"collect,omitempty"`

	// Effective contract date for this subscription, as yyyy-mm-dd
	ContractEffectiveDate time.Time `json:"contractEffectiveDate"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date on which the services or products within a subscription have been accepted by the customer, as yyyy-mm-dd.  Default value is dependent on the value of other fields. See **Notes** section for more details.
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// The length of the period for the first subscription term. Default is `0`. If `termType` is `TERMED`, then this field is required, and the value must be greater than `0`. If `termType` is `EVERGREEN`, this field is ignored.
	InitialTerm int64 `json:"initialTerm,omitempty"`

	// The period type for the first subscription term.  This field is used with the `InitialTerm` field to specify the initial subscription term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	InitialTermPeriodType string `json:"initialTermPeriodType,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.   Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken. The default value is `true`.    This field is in Zuora REST API version control. Supported minor versions are `196.0` and `207.0`. To use this field in the method, you must set the zuora-version parameter to the minor version number in the request header.
	Invoice bool `json:"invoice,omitempty"`

	// **Note:** This field has been replaced by the invoice field and the collect field. invoiceCollect is available only for backward compatibility.  If `true` (default), an invoice is generated and payment collected automatically during the subscription process. If `false`, no invoicing or payment takes place. The invoice generated in this operation is only for this subscription, not for the entire customer account.  This field is in Zuora REST API version control. Supported minor versions are `186.0`, `187.0`, `188.0`, `189.0`, and `196.0`.
	InvoiceCollect bool `json:"invoiceCollect,omitempty"`

	// Invoice owner account number or ID.  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	InvoiceOwnerAccountKey string `json:"invoiceOwnerAccountKey,omitempty"`

	// Separates a single subscription from other subscriptions and invoices the charge independently.   If the value is `true`, the subscription is billed separately from other subscriptions. If the value is `false`, the subscription is included with other subscriptions in the account invoice.  The default value is `false`.  Prerequisite: The default subscription setting Enable Subscriptions to be Invoiced Separately must be set to Yes.
	InvoiceSeparately bool `json:"invoiceSeparately,omitempty"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.   Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in Zuora REST API version control. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// String of up to 500 characters.
	Notes string `json:"notes,omitempty"`

	// Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed.  Values:  * `RENEW_WITH_SPECIFIC_TERM` (default) * `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"renewalSetting,omitempty"`

	// The length of the period for the subscription renewal term. Default is `0`.
	RenewalTerm int64 `json:"renewalTerm"`

	// The period type for the subscription renewal term.  This field is used with the `renewalTerm` field to specify the subscription renewal term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	RenewalTermPeriodType string `json:"renewalTermPeriodType,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).     The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	// The date on which the services or products within a subscription have been activated and access has been provided to the customer, as yyyy-mm-dd.  Default value is dependent on the value of other fields. See **Notes** section for more details.
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// Container for one or more rate plans for this subscription.
	SubscribeToRatePlans []PostSrpCreateType `json:"subscribeToRatePlans"`

	// Subscription Number. The value can be up to 1000 characters.  If you do not specify a subscription number when creating a subscription, Zuora will generate a subscription number automatically.  If the account is created successfully, the subscription number is returned in the `subscriptionNumber` response field.
	SubscriptionNumber string `json:"subscriptionNumber,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.   **Note:** The credit memo is only available if you have the Avdanced AR Settlement feature enabled.   This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// The date on which the subscription term begins, as yyyy-mm-dd. If this is a renewal subscription, this date is different from the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType"`
}

type PostTaxationItemForCmType

type PostTaxationItemForCmType struct {

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation PostTaxationItemForCmTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The ID of the credit memo that the taxation item is created for.
	MemoItemId string `json:"memoItemId,omitempty"`

	// The name of the taxation item.
	Name string `json:"name"`

	// The ID of the taxation item of the invoice, which the credit memo is created from.   If you want to use this REST API to create taxation items for a credit memo created from an invoice, the taxation items of the invoice must be created or imported through the SOAP API call.  **Note:**    - This field is only used if the credit memo is created from an invoice.    - If you do not contain this field in the request body, Zuora will automatically set a value for the `sourceTaxItemId` field based on the tax location code, tax jurisdiction, and tax rate.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The amount of the tax applied to the credit memo.
	TaxAmount float64 `json:"taxAmount"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date when the tax is applied to the credit memo.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the credit memo.
	TaxRate float64 `json:"taxRate"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the credit memo.
	TaxRateType string `json:"taxRateType"`
}

type PostTaxationItemForCmTypeFinanceInformation

type PostTaxationItemForCmTypeFinanceInformation struct {

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`
}

Container for the finance information related to the taxation item.

type PostTaxationItemForDmType

type PostTaxationItemForDmType struct {

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation PostTaxationItemForDmTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The ID of the debit memo that the taxation item is created for.
	MemoItemId string `json:"memoItemId,omitempty"`

	// The name of the taxation item.
	Name string `json:"name"`

	// The ID of the taxation item of the invoice, which the debit memo is created from.   If you want to use this REST API to create taxation items for a debit memo created from an invoice, the taxation items of the invoice must be created or imported through the SOAP API call.  **Note:**    - This field is only used if the debit memo is created from an invoice.    - If you do not contain this field in the request body, Zuora will automatically set a value for the `sourceTaxItemId` field based on the tax location code, tax jurisdiction, and tax rate.
	SourceTaxItemId string `json:"sourceTaxItemId,omitempty"`

	// The amount of the tax applied to the debit memo.
	TaxAmount float64 `json:"taxAmount"`

	// The tax code identifies which tax rules and tax rates to apply to a specific debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date when the tax is applied to the debit memo.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the debit memo.
	TaxRate float64 `json:"taxRate"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the debit memo.
	TaxRateType string `json:"taxRateType"`
}

type PostTaxationItemForDmTypeFinanceInformation

type PostTaxationItemForDmTypeFinanceInformation struct {

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`
}

Container for the finance information related to the taxation item.

type PostTaxationItemListForCmType

type PostTaxationItemListForCmType struct {

	// Container for taxation items.
	TaxationItems []PostTaxationItemForCmType `json:"taxationItems,omitempty"`
}

type PostTaxationItemListForDmType

type PostTaxationItemListForDmType struct {

	// Container for taxation items.
	TaxationItems []PostTaxationItemForDmType `json:"taxationItems,omitempty"`
}

type PostTierType

type PostTierType struct {

	// End number of a range of units for the tier.
	EndingUnit string `json:"endingUnit,omitempty"`

	// Price of the tier if the charge is a flat fee, or the price of each unit in the tier if the charge model is tiered pricing.
	Price string `json:"price"`

	// Indicates if pricing is a flat fee or is per unit.  Values:  * `FlatFee` * `PerUnit`
	PriceFormat string `json:"priceFormat,omitempty"`

	// Starting number of a range of units for the tier.
	StartingUnit string `json:"startingUnit,omitempty"`

	// Unique number that identifies the tier that the price applies to.
	Tier int64 `json:"tier"`
}

type PostUsageResponseType

type PostUsageResponseType struct {

	// URL for checking the status of the import operation.  Possible status values at this URL are:`Pending`, `Processing`, `Completed`, `Canceled`, `Failed`.  Only a status of Completed indicates that the file contents were imported successfully.
	CheckImportStatus string `json:"checkImportStatus,omitempty"`

	// The size of the uploaded file in bytes.
	Size int64 `json:"size,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PosthmacSignatureResponseType

type PosthmacSignatureResponseType struct {

	// Contains a keyed-hash message authentication code (HMAC) e.g. `ZmI0ZjE2ZTMxMWY1YjA0ZTc4MTg1ZDhlYWRkMTEwNDE3M2RiMzNiNQ==<`
	Signature string `json:"signature,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Contains a token code. e.g. `gCH6gYqQffQCsFKSLuxyagXsuXcIK0uf`
	Token string `json:"token,omitempty"`
}

type PosthmacSignatureType

type PosthmacSignatureType struct {

	// Customer account number or ID.  Specifies this field only when creating signatures for Create payment method.
	AccountKey string `json:"accountKey,omitempty"`

	// Possible values are: 'GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'.
	Method string `json:"method"`

	// Account name.  Specifies this field only when creating signatures for Create account.
	Name string `json:"name,omitempty"`

	// The page id of your Payment Pages 2.0 form. Click **Show Page Id** next to the Payment Page name in the Hosted Page List to retrieve the page id.  Specifies this field only when creating signatures for RSA Signatures.
	PageId string `json:"pageId,omitempty"`

	// The URI of the API object the customer will make a CORS enabled call to. e.g. \"https://rest.zuora.com/v1/payment-methods/credit-cards\"
	Uri string `json:"uri"`
}

type PostrsaSignatureResponseType

type PostrsaSignatureResponseType struct {

	// Public key generated for this Payment Page.
	Key string `json:"key,omitempty"`

	// Digital signature generated for this Payment Page.
	Signature string `json:"signature,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// ID of the Zuora tenant.
	TenantId string `json:"tenantId,omitempty"`

	// Token generated for this Payment Page.
	Token string `json:"token,omitempty"`
}

type PostrsaSignatureType

type PostrsaSignatureType struct {

	// The type of the request. Set it to POST.
	Method string `json:"method"`

	// The page id of your Payment Pages 2.0 form. Click **Show Page Id** next to the Payment Page name in the Hosted Page List to retrieve the page id.
	PageId string `json:"pageId"`

	// The URL that the Payment Page will be served from. Set it to:  * https://www.zuora.com/apps/PublicHostedPageLite.do if you are on the production environment. * https://apisandbox.zuora.com/apps/PublicHostedPageLite.do if you are on the API Sandbox environmentdbox.zuora.com/apps/PublicHostedPageLite.do if you are on the API Sandbox environment.
	Uri string `json:"uri"`
}

type ProductFeaturesApi

type ProductFeaturesApi struct {
	Configuration *Configuration
}

func NewProductFeaturesApi

func NewProductFeaturesApi() *ProductFeaturesApi

func NewProductFeaturesApiWithBasePath

func NewProductFeaturesApiWithBasePath(basePath string) *ProductFeaturesApi

func (ProductFeaturesApi) ObjectDELETEProductFeature

func (a ProductFeaturesApi) ObjectDELETEProductFeature(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (ProductFeaturesApi) ObjectGETProductFeature

func (a ProductFeaturesApi) ObjectGETProductFeature(id string, entityId string, entityName string, fields string) (*ProxyGetProductFeature, *APIResponse, error)

*

type ProductRatePlanChargeTiersApi

type ProductRatePlanChargeTiersApi struct {
	Configuration *Configuration
}

func NewProductRatePlanChargeTiersApi

func NewProductRatePlanChargeTiersApi() *ProductRatePlanChargeTiersApi

func NewProductRatePlanChargeTiersApiWithBasePath

func NewProductRatePlanChargeTiersApiWithBasePath(basePath string) *ProductRatePlanChargeTiersApi

func (ProductRatePlanChargeTiersApi) ObjectGETProductRatePlanChargeTier

func (a ProductRatePlanChargeTiersApi) ObjectGETProductRatePlanChargeTier(id string, entityId string, entityName string, fields string) (*ProxyGetProductRatePlanChargeTier, *APIResponse, error)

*

type ProductRatePlanChargesApi

type ProductRatePlanChargesApi struct {
	Configuration *Configuration
}

func NewProductRatePlanChargesApi

func NewProductRatePlanChargesApi() *ProductRatePlanChargesApi

func NewProductRatePlanChargesApiWithBasePath

func NewProductRatePlanChargesApiWithBasePath(basePath string) *ProductRatePlanChargesApi

func (ProductRatePlanChargesApi) ObjectDELETEProductRatePlanCharge

func (a ProductRatePlanChargesApi) ObjectDELETEProductRatePlanCharge(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (ProductRatePlanChargesApi) ObjectGETProductRatePlanCharge

func (a ProductRatePlanChargesApi) ObjectGETProductRatePlanCharge(id string, entityId string, entityName string, fields string) (*ProxyGetProductRatePlanCharge, *APIResponse, error)

*

type ProductRatePlansApi

type ProductRatePlansApi struct {
	Configuration *Configuration
}

func NewProductRatePlansApi

func NewProductRatePlansApi() *ProductRatePlansApi

func NewProductRatePlansApiWithBasePath

func NewProductRatePlansApiWithBasePath(basePath string) *ProductRatePlansApi

func (ProductRatePlansApi) ObjectDELETEProductRatePlan

func (a ProductRatePlansApi) ObjectDELETEProductRatePlan(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (ProductRatePlansApi) ObjectGETProductRatePlan

func (a ProductRatePlansApi) ObjectGETProductRatePlan(id string, entityId string, entityName string, fields string) (*ProxyGetProductRatePlan, *APIResponse, error)

*

func (ProductRatePlansApi) ObjectPOSTProductRatePlan

func (a ProductRatePlansApi) ObjectPOSTProductRatePlan(createRequest ProxyCreateProductRatePlan, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (ProductRatePlansApi) ObjectPUTProductRatePlan

func (a ProductRatePlansApi) ObjectPUTProductRatePlan(id string, modifyRequest ProxyModifyProductRatePlan, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type ProductsApi

type ProductsApi struct {
	Configuration *Configuration
}

func NewProductsApi

func NewProductsApi() *ProductsApi

func NewProductsApiWithBasePath

func NewProductsApiWithBasePath(basePath string) *ProductsApi

func (ProductsApi) ObjectDELETEProduct

func (a ProductsApi) ObjectDELETEProduct(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (ProductsApi) ObjectGETProduct

func (a ProductsApi) ObjectGETProduct(id string, entityId string, entityName string, fields string) (*ProxyGetProduct, *APIResponse, error)

*

func (ProductsApi) ObjectPOSTProduct

func (a ProductsApi) ObjectPOSTProduct(createRequest ProxyCreateProduct, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (ProductsApi) ObjectPUTProduct

func (a ProductsApi) ObjectPUTProduct(id string, modifyRequest ProxyModifyProduct, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type ProvisionEntityResponseType

type ProvisionEntityResponseType struct {

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type ProxyActionamendRequest

type ProxyActionamendRequest struct {

	//
	Requests []AmendRequest `json:"requests,omitempty"`
}

type ProxyActionamendResponse

type ProxyActionamendResponse struct {

	//
	Results []AmendResult `json:"results,omitempty"`
}

type ProxyActioncreateRequest

type ProxyActioncreateRequest struct {

	//
	Objects []ZObject `json:"objects,omitempty"`

	//
	Type_ string `json:"type,omitempty"`
}

type ProxyActioncreateResponse

type ProxyActioncreateResponse struct {

	//
	Result []SaveResult `json:"result,omitempty"`
}

type ProxyActiondeleteRequest

type ProxyActiondeleteRequest struct {

	// A list of one or more IDs for the objects you want to delete.
	Ids []string `json:"ids,omitempty"`

	// The type of object that you are deleting.
	Type_ string `json:"type,omitempty"`
}

type ProxyActiondeleteResponse

type ProxyActiondeleteResponse struct {

	//
	Result []DeleteResult `json:"result,omitempty"`
}

type ProxyActionexecuteRequest

type ProxyActionexecuteRequest struct {

	// The ID of the object. **Values:** a valid InvoiceSplit object ID.
	Ids []string `json:"ids,omitempty"`

	// Indicates if the call is synchronous or asynchronous. **Values:** `false`
	Synchronous bool `json:"synchronous,omitempty"`

	// Specifies the type of executed item. **Values:** `invoicesplit`
	Type_ string `json:"type,omitempty"`
}

type ProxyActionexecuteResponse

type ProxyActionexecuteResponse struct {

	//
	Result []ExecuteResult `json:"result,omitempty"`
}

type ProxyActiongenerateRequest

type ProxyActiongenerateRequest struct {

	//
	Objects []ZObject `json:"objects,omitempty"`

	//
	Type_ string `json:"type,omitempty"`
}

type ProxyActiongenerateResponse

type ProxyActiongenerateResponse struct {

	//
	Result []SaveResult `json:"result,omitempty"`
}

type ProxyActionqueryMoreRequest

type ProxyActionqueryMoreRequest struct {

	//
	QueryLocator string `json:"queryLocator,omitempty"`
}

type ProxyActionqueryMoreResponse

type ProxyActionqueryMoreResponse struct {

	//
	Done bool `json:"done,omitempty"`

	//
	QueryLocator string `json:"queryLocator,omitempty"`

	//
	Records []ZObject `json:"records,omitempty"`

	//
	Size int32 `json:"size,omitempty"`
}

type ProxyActionqueryRequest

type ProxyActionqueryRequest struct {

	// ZOQL expression that specifies the object to query, the fields to retrieve, and any filters.
	QueryString string `json:"queryString,omitempty"`
}

type ProxyActionqueryResponse

type ProxyActionqueryResponse struct {

	//
	Done bool `json:"done,omitempty"`

	//
	QueryLocator string `json:"queryLocator,omitempty"`

	//
	Records []ZObject `json:"records,omitempty"`

	//
	Size int32 `json:"size,omitempty"`
}

type ProxyActionsubscribeRequest

type ProxyActionsubscribeRequest struct {

	//
	Subscribes []SubscribeRequest `json:"subscribes,omitempty"`
}

type ProxyActionsubscribeResponse

type ProxyActionsubscribeResponse struct {

	//
	Result []SubscribeResult `json:"result,omitempty"`
}

type ProxyActionupdateRequest

type ProxyActionupdateRequest struct {

	//
	Objects []ZObjectUpdate `json:"objects,omitempty"`
}

type ProxyActionupdateResponse

type ProxyActionupdateResponse struct {

	//
	Result []SaveResult `json:"result,omitempty"`
}

type ProxyBadRequestResponse

type ProxyBadRequestResponse struct {
	Errors []ProxyBadRequestResponseErrors `json:"Errors,omitempty"`

	//
	Success bool `json:"Success,omitempty"`
}

type ProxyBadRequestResponseErrors

type ProxyBadRequestResponseErrors struct {

	//
	Code string `json:"Code,omitempty"`

	//
	Message string `json:"Message,omitempty"`
}

type ProxyCreateAccount

type ProxyCreateAccount struct {

	// Unique account number assigned to the account. **Character limit**: 50 **Values**: one of the following:  - null to auto-generate - a string of 50 characters or fewer that doesn't begin with the default account number prefix
	AccountNumber string `json:"AccountNumber,omitempty"`

	// List of additional email addresses to receive emailed invoices. **Character limit**: 120 **Values**: comma-separated list of email addresses
	AdditionalEmailAddresses string `json:"AdditionalEmailAddresses,omitempty"`

	//  Indicates if associated invoices can be edited. **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	AllowInvoiceEdit bool `json:"AllowInvoiceEdit,omitempty"`

	//  Indicates if future payments are automatically collected when they're due during a Payment Run. **Character limit**: 5 **Values**: `true`, `false` (default)
	AutoPay bool `json:"AutoPay,omitempty"`

	// Current outstanding balance for the account. **Character limit**: 16 **Values**: automatically generated
	Balance float64 `json:"Balance"`

	//  Organizes your customer accounts into groups to optimize your billing and payment operations. Required if use the Subscribe call **Character limit**: 20 **Values**:any system-defined batch (`Batch1` - `Batch50 `or by name).
	Batch string `json:"Batch,omitempty"`

	// Billing cycle day setting option. **Character limit**: 9 **Values**: `AutoSet`, `ManualSet`
	BcdSettingOption string `json:"BcdSettingOption"`

	// Billing cycle day (BCD) on which bill runs generate invoices for the account. **Character limit**: 2 **Values**: any activated system-defined bill cycle day (`1` - `31`)
	BillCycleDay int32 `json:"BillCycleDay"`

	// ID of the person to bill for the account. **Character limit**: 32 **Values**: a valid contact ID for the account
	BillToId string `json:"BillToId,omitempty"`

	// Associates the account with a specified communication profile. **Character limit**: 32 **Values**: a valid communication profile ID
	CommunicationProfileId string `json:"CommunicationProfileId,omitempty"`

	// Total credit balance for the account. **Character limit**: 16 **Values**: automatically generated
	CreditBalance float64 `json:"CreditBalance"`

	// CRM account ID for the account. A CRM is a customer relationship management system, such as Salesforce.com. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	CrmId string `json:"CrmId,omitempty"`

	//  Currency that the customer is billed in.
	Currency string `json:"Currency"`

	// Name of the account's customer service representative, if applicable. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	CustomerServiceRepName string `json:"CustomerServiceRepName,omitempty"`

	// ID of the default payment method for the account. This field is required if the AutoPay field is set to `true`. **Character limit**: 32 **Values**: a valid ID for an existing payment method
	DefaultPaymentMethodId string `json:"DefaultPaymentMethodId,omitempty"`

	// Indicates if the customer wants to receive invoices through email.  **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsEmail bool `json:"InvoiceDeliveryPrefsEmail,omitempty"`

	// Indicates if the customer wants to receive printed invoices, such as through postal mail. **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsPrint bool `json:"InvoiceDeliveryPrefsPrint,omitempty"`

	// The ID of the invoice template. Each customer account can use a specific invoice template for invoice generation. **Character limit**: 32 **Values**: a valid template ID configured in Zuora Billing Settings
	InvoiceTemplateId string `json:"InvoiceTemplateId,omitempty"`

	// Name of the account as displayed in the Zuora UI. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Name string `json:"Name"`

	//  Comments about the account. **Character limit**: 65,535 **Values**: a string of 65,535 characters
	Notes string `json:"Notes,omitempty"`

	// Identifier of the parent customer account for this Account object. Use this field if you have customer hierarchy enabled. **Character limit**: 32 **Values**: a valid account ID
	ParentId string `json:"ParentId,omitempty"`

	// Gateway used for processing electronic payments and refunds. **Character limit**: 40 **Values**: one of the following:  - a valid configured gateway name - Null to inherit the default value set in Zuora Payment Settings
	PaymentGateway string `json:"PaymentGateway,omitempty"`

	// Indicates when the customer pays for subscriptions. **Character limit**: 100 **Values**: a valid, active payment term defined in the web-based UI administrative settings
	PaymentTerm string `json:"PaymentTerm,omitempty"`

	// The number of the purchase order associated with this account. Purchase order information generally comes from customers. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	PurchaseOrderNumber string `json:"PurchaseOrderNumber,omitempty"`

	// The name of the sales representative associated with this account, if applicable. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	SalesRepName string `json:"SalesRepName,omitempty"`

	// ID of the person who bought the subscription associated with the account. **Character limit**: 32 **Values**: a valid contact ID for the account
	SoldToId string `json:"SoldToId,omitempty"`

	// Status of the account in the system. **Character limit**: 8 **Values**: one of the following:  - leave null if you're using The Subscribe call - if you're using Create: - `Draft` - `Active` - `Canceled`
	Status string `json:"Status"`

	//  Unique code that identifies a company account in Avalara. Use this field to calculate taxes based on origin and sold-to addresses in Avalara. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Character limit**: 50 **Values**: a valid company code
	TaxCompanyCode string `json:"TaxCompanyCode,omitempty"`

	// ID of your customer's tax exemption certificate. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptCertificateID string `json:"TaxExemptCertificateID,omitempty"`

	// Type of the tax exemption certificate that your customer holds.  **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptCertificateType string `json:"TaxExemptCertificateType,omitempty"`

	// Description of the tax exemption certificate that your customer holds. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	TaxExemptDescription string `json:"TaxExemptDescription,omitempty"`

	// Date when the the customer's tax exemption starts. **Character limit**: 29 **Version notes**: requires Zuora Tax
	TaxExemptEffectiveDate time.Time `json:"TaxExemptEffectiveDate,omitempty"`

	// Date when the customer's tax exemption certificate expires  **Character limit**: 29 **Version notes**: requires Zuora Tax
	TaxExemptExpirationDate time.Time `json:"TaxExemptExpirationDate,omitempty"`

	// Indicates the jurisdiction in which the customer's tax exemption certificate was issued. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptIssuingJurisdiction string `json:"TaxExemptIssuingJurisdiction,omitempty"`

	//  Status of the account's tax exemption. Required if you use Zuora Tax. **Character limit**: 19 **Values**: one of the following:  - `Yes` - `No` - `PendingVerification`
	TaxExemptStatus string `json:"TaxExemptStatus,omitempty"`

	// Total balance of the account's invoices. **Character limit**: 16 **Values**: a valid currency value
	TotalInvoiceBalance float64 `json:"TotalInvoiceBalance"`

	//  EU Value Added Tax ID. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Character limit**: 25 **Values**: a valid Value Added Tax ID
	VATId string `json:"VATId,omitempty"`
}

type ProxyCreateAmendment

type ProxyCreateAmendment struct {

	//  Determines whether the subscription is automatically renewed, or whether it expires at the end of the term and needs to be manually renewed. **Required:** For amendment of type TermsAndConditions when changing the automatic renewal status of a subscription. **Values**: true, false
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  The date when the amendment's changes become effective for billing purposes. **Version notes**: --
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	//  The length of the period for the current subscription term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions` and TermType is set to `TERMED`. This field is not required if TermType is set to `EVERGREEN`. **Character limit**: **Values**: a valid number
	CurrentTerm int64 `json:"CurrentTerm,omitempty"`

	//  The period type for the current subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field can be updated when Status is `Draft`. - This field is used with the CurrentTerm field to specify the current subscription term.
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	//  The date when the customer accepts the amendment's changes to the subscription. **Required**: Only if the value of the Status field is set to PendingAcceptance. **Version notes**: --
	CustomerAcceptanceDate time.Time `json:"CustomerAcceptanceDate,omitempty"`

	//  A description of the amendment. **Character limit**: 500 **Values**: maximum 500 characters
	Description string `json:"Description,omitempty"`

	//  The date when the amendment's changes take effective. This field validates that the amendment's changes are within valid ranges of products and product rate plans. **Required**: For the cancellation amendments. Optional for other types of amendments. **Version notes**: --
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//  The name of the amendment. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. **Required**: If TermType is Termed **Values**: RENEW_WITH_SPECIFIC_TERM (default), RENEW_TO_EVERGREEN
	RenewalSetting string `json:"RenewalSetting"`

	//  The term of renewal for the amended subscription. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. **Character limit**: **Values:** a valid number
	RenewalTerm int64 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. This field is used with the RenewalTerm field to specify the subscription renewal term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when service is activated. **Required**: Only if the value of the Status field is set to PendingActivation. **Version notes**: --
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	//  The date when the UpdateProduct amendment takes effect. This field is only applicable if there is already a future-dated UpdateProduct amendment on the subscription. **Required**: Only for the UpdateProduct amendments if there is already a future-dated UpdateProduct amendment on the subscription.
	SpecificUpdateDate time.Time `json:"SpecificUpdateDate,omitempty"`

	//  The status of the amendment. Type: string (enum) **Character limit**: 17 **Values**: one of the following:  - Draft (default, if left null) - Pending Activation - Pending Acceptance - Completed
	Status string `json:"Status,omitempty"`

	//  The ID of the subscription that the amendment changes. **Character limit**: 32 **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The date when the new terms and conditions take effect. **Required**: Only if the value of the Type field is set to TermsAndConditions. **Version notes**: --
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  Indicates if the subscription isTERMED or EVERGREEN.  - A TERMED subscription has an expiration date, and must be manually renewed. - An EVERGREEN subscription doesn't have an expiration date, and must be manually ended.  **Required**: Only when as part of an amendment of type TermsAndConditions &#65279;to change the term type of a subscription. Type: string **Character limit**: 9 **Values**: TERMED, EVERGREEN
	TermType string `json:"TermType,omitempty"`

	//  The type of amendment. **Character limit**: 18 **Values**: one of the following:  - Cancellation - NewProduct - OwnerTransfer - RemoveProduct - Renewal - UpdateProduct - TermsAndConditions - SuspendSubscription (This value is in **Limited Availability**.) - ResumeSubscription (This value is in **Limited Availability**.)
	Type_ string `json:"Type,omitempty"`
}

type ProxyCreateBillRun

type ProxyCreateBillRun struct {

	// ID of the account used for single account bill run.  This field is only used for creating ad hoc bill run for a single customer account.  **Character limit:** 32
	AccountId string `json:"AccountId,omitempty"`

	// Determines whether to auto send email or not by this bill run once the bill run completes.  **Note:** You must enable the [Support Bill Run Auto-Post Billing](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Billing_Rules) rule to pass this field.
	AutoEmail bool `json:"AutoEmail,omitempty"`

	// Determines whether to auto post bill run or not once the bill run completes.  **Note:** You must enable the [Support Bill Run Auto-Post Billing](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Billing_Rules) rule to pass this field.
	AutoPost bool `json:"AutoPost,omitempty"`

	// Determines whether to auto renew subscription or not by this bill run once the bill run completes.
	AutoRenewal bool `json:"AutoRenewal,omitempty"`

	// Batch of accounts for this bill run.   This field is only used for creating ad hoc bill run for multiple customer accounts.  **Character limit:** 20  **Values:** AllBatches or Batchn where n is a number between 1 and 50.
	Batch string `json:"Batch,omitempty"`

	// The day of the bill cycle.  This field is only used for creating ad hoc bill run for multiple customer accounts.  **Character limit:** 32  **Values:** `AllBillCycleDays` or 01 - 31.
	BillCycleDay string `json:"BillCycleDay,omitempty"`

	// Charge type or types to be excluded, separated with comma.  **Possible Values:** `OneTime`, `Recurring`, `Usage`, or a combination of these values.   **Character limit:** 50
	ChargeTypeToExclude string `json:"ChargeTypeToExclude,omitempty"`

	// Invoice date for this bill run.  **Character limit:** 29
	InvoiceDate time.Time `json:"InvoiceDate"`

	// Determines whether to suppress email for invoices with zero total or not for this bill run once the bill run completes. (Do not email invoices with 0 Invoice Total).
	NoEmailForZeroAmountInvoice bool `json:"NoEmailForZeroAmountInvoice,omitempty"`

	// Target date for this bill run. See [Create Bill Run](https://knowledgecenter.zuora.com/CB_Billing/J_Billing_Operations/G_Bill_Runs/Creating_Bill_Runs) for more information.  **Character limit:** 29
	TargetDate time.Time `json:"TargetDate"`
}

type ProxyCreateContact

type ProxyCreateContact struct {

	//  The Zuora account ID associated with this contact. This field is not required when you use the Subscribe call. This field is required for all other calls. **Character limit: **32 **Values: **a valid account ID
	AccountId string `json:"AccountId"`

	//  The first line of the contact's address, which is often a street address or business name. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Address1 string `json:"Address1,omitempty"`

	//  The second line of the contact's address. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Address2 string `json:"Address2,omitempty"`

	//  The city of the contact's address. **Character limit**: 40 **Values: **a string of 40 characters or fewer
	City string `json:"City,omitempty"`

	//  The country of the contact's address.
	Country string `json:"Country,omitempty"`

	//  The country. May optionally be used by Zuora Tax to calculate county tax. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	County string `json:"County,omitempty"`

	//  A description for the contact. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The contact's fax number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	Fax string `json:"Fax,omitempty"`

	//  The contact's first name. **Character limit**: 100 **Values**: a string of the contact's first name
	FirstName string `json:"FirstName"`

	//  The contact's home phone number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	HomePhone string `json:"HomePhone,omitempty"`

	//  The contact's last name. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	LastName string `json:"LastName"`

	//  The contact's mobile phone number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	MobilePhone string `json:"MobilePhone,omitempty"`

	//  A nickname for the contact. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	NickName string `json:"NickName,omitempty"`

	//  An additional phone number for the contact. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	OtherPhone string `json:"OtherPhone,omitempty"`

	// The type of the `OtherPhone`. **Character limit**: 20 **Values**: `Work`, `Mobile`, `Home`, `Other`
	OtherPhoneType string `json:"OtherPhoneType,omitempty"`

	//  The contact's personal email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	PersonalEmail string `json:"PersonalEmail,omitempty"`

	//  The zip code for the contact's address. **Character limit:** 20 **Values: **a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  The state or province of the contact's address.
	State string `json:"State,omitempty"`

	// If using Zuora Tax rules
	TaxRegion string `json:"TaxRegion,omitempty"`

	//  The contact's business email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	WorkEmail string `json:"WorkEmail,omitempty"`

	//  The contact's business phone number. **Character limit**: 40 **notes**: -- **Values**: a string of 40 characters or fewer
	WorkPhone string `json:"WorkPhone,omitempty"`
}

type ProxyCreateExport

type ProxyCreateExport struct {

	//  The currencies that you want to convert transaction amounts into. You can specify any number of currencies. Specify the currencies using their Foreign Currency Conversion enabled to use this field. **Character limit**: **Values**: a list of valid currency codes
	ConvertToCurrencies string `json:"ConvertToCurrencies,omitempty"`

	//  Exports a secure version of encrypted data source fields. such as the AchAccountNumber field of the PaymentMethod object and the DefaultPaymentMethod data souce objects. **Character limit**: 5 **Values:** true, false
	Encrypted bool `json:"Encrypted,omitempty"`

	//  The ID of the file generated by an export query. This file is automatically generated when an Export object is created. Use this file ID with [Get files](https://www.zuora.com/developer/api-reference/#operation/GET_Files) to download the export file. **Character limit**: 32 **Values**: automatically generated
	FileId string `json:"FileId,omitempty"`

	//  The format that you want the export file to use. **Character limit**: 5
	Format string `json:"Format"`

	//  The name of the export. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Name string `json:"Name,omitempty"`

	// [Export ZOQL](https://knowledgecenter.zuora.com/DC_Developers/M_Export_ZOQL) query.
	Query string `json:"Query"`

	//  The number of records or rows exported. This field value is null until the export status is Completed. **Character limit**: **Values**: automatically generated
	Size int32 `json:"Size"`

	//  The status of the export. Type: string (enum) **Character limit**: 10 **Values**: automatically generated to be one of the following values:  - Pending - Processing - Completed - Canceled - Failed
	Status string `json:"Status,omitempty"`

	//  The reason for the given status. Use this information to help ascertain why an export failed. **Character limi**t: 255 **Values**: automatically generated
	StatusReason string `json:"StatusReason,omitempty"`

	//  Indicates if you want the resulting export file to be compressed into a zip file. **Character limit**: **Values**: true, false (default)
	Zip bool `json:"Zip"`
}

type ProxyCreateInvoice

type ProxyCreateInvoice struct {

	//
	AccountId string `json:"AccountId"`

	//  The amount of the invoice adjustments associated with the invoice. **Character limi**t: 16 **Values**: a valid currency amount
	AdjustmentAmount float64 `json:"AdjustmentAmount"`

	//  Required
	Body string `json:"Body"`

	//  The currency amount of the adjustment applied to the customer's credit balance. **Character limit**: 16 **Values**: a valid currency amount This field is only available if the [Zuora Global Support](http://support.zuora.com/) to enable this feature.
	CreditBalanceAdjustmentAmount float64 `json:"CreditBalanceAdjustmentAmount"`

	//  Specifies whether the invoice includes one-time charges. You can use this field only with the Generate call for the Invoice object. **Character limit**: 5 **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesOneTime bool `json:"IncludesOneTime,omitempty"`

	//  Specifies whether the invoice includes recurring charges. You can use this field only with the Generate call for the Invoice object. **Character limit**: 5 **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesRecurring bool `json:"IncludesRecurring,omitempty"`

	//  Specifies whether the invoice includes usage charges. You can use this field only with the Generate call for the Invoice object. **Character limit**: 5 **Values**: automatically generated from one of the following: `True `(default), `False`
	IncludesUsage bool `json:"IncludesUsage,omitempty"`

	//  Specifies the date on which to generate the invoice. **Character limit**: 29 **Version notes**: --
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//  The amount of payments applied to the invoice. **Character limit**: 16 **Value**s: automatically generated
	PaymentAmount float64 `json:"PaymentAmount"`

	//  Specifies the amount of a refund that was applied against an earlier payment on the invoice. **Character limit**: 16 **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount"`

	//  This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in this bill run. **Character limit**: 29 **Version notes**: --
	TargetDate time.Time `json:"TargetDate,omitempty"`

	//  The total amount of the taxes applied to the invoice. **Character limit**: 16 **Values**: automatically generated
	TaxAmount float64 `json:"TaxAmount"`

	//  The total amount of the invoice that is exempt from taxation. **Character limit**: 16 **Values**: automatically generated
	TaxExemptAmount float64 `json:"TaxExemptAmount"`
}

type ProxyCreateInvoiceAdjustment

type ProxyCreateInvoiceAdjustment struct {

	//  The ID of the account that owns the invoice. **Character limit**: 32 **Values**: inherited from Account.ID for the invoice owner
	AccountId string `json:"AccountId"`

	// The accounting code for the invoice adjustment.
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The date when the invoice adjustment is applied. This date must be the same as the invoice's date or later. **Character limit**: 29 **Values**: Leave null to automatically generate the current date
	AdjustmentDate time.Time `json:"AdjustmentDate,omitempty"`

	//  A unique string to identify an individual invoice adjustment. **Character limit**: 255 **Values**: automatically generated
	AdjustmentNumber string `json:"AdjustmentNumber"`

	//  The amount of the invoice adjustment. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount"`

	//  Use this field to record comments about the invoice adjustment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comments string `json:"Comments,omitempty"`

	//  The name of the account that owns the associated invoice. **Character limit**: 50 **Values**: inherited from Account.Name
	CustomerName string `json:"CustomerName"`

	//  The unique account number of the customer's account. **Character limit**: 70 **Values**: inherited from Account.AccountNumber
	CustomerNumber string `json:"CustomerNumber"`

	//  The amount that changes the balance of the associated invoice. **Character limit**: 16 **Values**: automatically calculated
	ImpactAmount float64 `json:"ImpactAmount"`

	//  The ID of the invoice associated with the adjustment. This field is required if you don't specify a value for the `InvoiceNumber` field. **Character limit**: 32 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  The unique identification number for the associated invoice. This field is required if you don't specify a value for the `InvoiceId` field. **Character limit**: 32 **Values**: a valid invoice number
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  A code to reference an object external to Zuora. For example, you can use this field to reference a case number in an external system. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  The status of the invoice adjustment. This field is required in the Query call, but is automatically generated in other calls. **Character limit**: 9 **Values**: `Canceled`, `Processed`
	Status string `json:"Status"`

	//  Indicates whether the adjustment credits or debits the invoice amount. **Character limit**: 6 **Values**: `Credit`, `Charge`
	Type_ string `json:"Type"`
}

type ProxyCreateInvoicePayment

type ProxyCreateInvoicePayment struct {

	//  The amount of the payment. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount"`

	//  The unique ID of the invoice associated with this invoice payment. **Character limit**: 32 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId"`

	//  The unique ID of the payment associated with this invoice payment. **Character limit**: 32 **V****alues**: a valid payment ID
	PaymentId string `json:"PaymentId,omitempty"`
}

type ProxyCreateOrModifyResponse

type ProxyCreateOrModifyResponse struct {

	//
	Id string `json:"Id,omitempty"`

	//
	Success bool `json:"Success,omitempty"`
}

type ProxyCreatePayment

type ProxyCreatePayment struct {

	//  The unique account ID for the customer that the payment is for. **Character limit**: 32 **Values**: a valid account ID
	AccountId string `json:"AccountId"`

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The amount of the payment. **Character limit**: 16 **Values**: a valid currency value
	Amount float64 `json:"Amount"`

	//  The amount of the payment to apply to a credit balance. This field is required in the Create call when the `AppliedInvoiceAmount` field value is null. **Character limit**: 16 **Values**: a valid currency value
	AppliedCreditBalanceAmount float64 `json:"AppliedCreditBalanceAmount"`

	//  The authorization transaction ID from the payment gateway. Use this field for electronic payments, such as credit cards. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	AuthTransactionId string `json:"AuthTransactionId,omitempty"`

	//  Additional information related to the payment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The date when the payment takes effect, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveDate time.Time `json:"EffectiveDate"`

	//  Name of the gateway instance that processes the payment. When creating a Payment, this must be a valid gateway instance name and this gateway must support the specific payment method. If not specified, the default gateway on the Account will be used.
	Gateway string `json:"Gateway,omitempty"`

	//  A merchant-specified natural key value that can be passed to the electronic payment gateway when a payment is created. If not specified, the PaymentNumber will be passed in instead. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	GatewayOrderId string `json:"GatewayOrderId,omitempty"`

	//  The message returned from the payment gateway for the payment. This message is gateway-dependent. **Character limit**: 500 **Values**: automatically generated
	GatewayResponse string `json:"GatewayResponse"`

	//  The code returned from the payment gateway for the payment. This code is gateway-dependent. **Character limit**: 20 **Values**: automatically generated
	GatewayResponseCode string `json:"GatewayResponseCode"`

	//  The status of the payment in the gateway; use for reconciliation. **Character limit**: 19 **Values**: automatically generated
	GatewayState string `json:"GatewayState"`

	//  The ID of the payment method used for the payment. Required for Create. **Character limit**: 32 **Values**: automatically generated
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//  The unique identification number of a payment. For example: P-00000028. **Character limit**: 32 **Values**: automatically generated
	PaymentNumber string `json:"PaymentNumber"`

	//  The transaction ID returned by the payment gateway. Use this field to reconcile payments between your gateway and Z-Payments. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi. **Character limit**: 35 **Values**: `[SDMerchantName]*[SDProductionInfo]`
	SoftDescriptor string `json:"SoftDescriptor,omitempty"`

	//  A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi. **Character limit**: 20 **Values**: `[SDPhone]`
	SoftDescriptorPhone string `json:"SoftDescriptorPhone,omitempty"`

	//  The status of the payment in Zuora. The value depends on the type of payment. **Character limit**: 11 **Values**: one of the following:  -  Electronic payments: `Processed`, `Error`, `Voided`  -  External payments: `Processed`, `Canceled`  * Update of status can change value from `Processed` to `Canceled` when the payment type is external.
	Status string `json:"Status"`

	//  Indicates if the payment is external or electronic. **Character limit**: 10 **Values**: `External`, `Electronic`
	Type_ string `json:"Type"`
}

type ProxyCreatePaymentMethod

type ProxyCreatePaymentMethod struct {

	//  The ID of the customer account associated with this payment method. This field is not required for the account ID.
	AccountId string `json:"AccountId,omitempty"`

	//  The nine-digit routing number or ABA number used by banks. Use this field for ACH payment methods. **Character limit**: 9 **Values**: a string of 9 characters or fewer
	AchAbaCode string `json:"AchAbaCode,omitempty"`

	//  The name of the account holder, which can be either a person or a company. Use this field for ACH payment methods. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	AchAccountName string `json:"AchAccountName,omitempty"`

	//  The type of bank account associated with the ACH payment. Use this field for ACH payment methods. **Character limit**: 16 **Values**:  - `BusinessChecking` - `Checking` - `Saving`
	AchAccountType string `json:"AchAccountType,omitempty"`

	//  Line 1 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress1 string `json:"AchAddress1,omitempty"`

	//  Line 2 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress2 string `json:"AchAddress2,omitempty"`

	//  The name of the bank where the ACH payment account is held. Use this field for ACH payment methods. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	AchBankName string `json:"AchBankName,omitempty"`

	//  The branch code of the bank used for direct debit. Use this field for direct debit payment methods. **Character limit**: 10 **Values**:  string of 10 characters or fewer
	BankBranchCode string `json:"BankBranchCode,omitempty"`

	// The check digit in the international bank account number, which confirms the validity of the account. Use this field for direct debit payment methods. **Character limit**: 4 **Values**:  string of 4 characters or fewer
	BankCheckDigit string `json:"BankCheckDigit,omitempty"`

	//  The city of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:70 **Values**:  string of 70 characters or fewer
	BankCity string `json:"BankCity,omitempty"`

	//  The sort code or number that identifies the bank. This is also known as the sort code. This field is required for direct debit payment methods. **Character limit**: 18 **Values**:  string of 18 characters or fewer
	BankCode string `json:"BankCode,omitempty"`

	//  The name of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:80 **Values**:  string of 80 characters or fewer
	BankName string `json:"BankName,omitempty"`

	//  The zip code or postal code of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:20 **Values**:  string of 20 characters or fewer
	BankPostalCode string `json:"BankPostalCode,omitempty"`

	//  The name of the street of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:60 **Values**:  string of 60 characters or fewer
	BankStreetName string `json:"BankStreetName,omitempty"`

	//  The number of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:10 **Values**:  string of 10 characters or fewer
	BankStreetNumber string `json:"BankStreetNumber,omitempty"`

	//  The name on the direct debit bank account. Use this field for direct debit payment methods. **Character limit**: 60 **Values**:  string of 60 characters or fewer
	BankTransferAccountName string `json:"BankTransferAccountName,omitempty"`

	//  The type of the customer's bank account. Use this field for direct debit payment methods. **Character limit**: 11 **Values**: `DirectDebit`
	BankTransferAccountType string `json:"BankTransferAccountType,omitempty"`

	//  Specifies the type of direct debit transfer. The value of this field is dependent on the country of the user. Use this field is used for direct debit payment methods. **Character limit**: 20 **Values**:  - `AutomatischIncasso` (NL) - `LastschriftDE` (Germany) - `LastschriftAT` (Austria) - `DemandeDePrelevement` (FR) - `DirectDebitUK` (UK) - `Domicil` (Belgium) - `LastschriftCH` (CH) - `RID` (Italy) - `OrdenDeDomiciliacion` (Spain)
	BankTransferType string `json:"BankTransferType,omitempty"`

	//  The business identification code for Swiss direct payment methods that use the Global Collect payment gateway. Use this field only for direct debit payments in Switzerland with Global Collect. **Character limit**: 11 **Values**: string of 11 characters or fewer
	BusinessIdentificationCode string `json:"BusinessIdentificationCode,omitempty"`

	//  The city of the customer's address. Use this field for direct debit payment methods. **Character limit**:80 **Values**:  string of 80 characters or fewer
	City string `json:"City,omitempty"`

	//  The two-letter country code of the customer's address. Use this field for direct debit payment methods. **Character limit**: 2 **Values**: a valid country code
	Country string `json:"Country,omitempty"`

	//  The first line of the card holder's address, which is often a street address or business name. Use this field for credit card and direct debit payment methods. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	CreditCardAddress1 string `json:"CreditCardAddress1,omitempty"`

	//  The second line of the card holder's address. Use this field for credit card and direct debit payment methods. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	CreditCardAddress2 string `json:"CreditCardAddress2,omitempty"`

	//  The city of the card holder's address. Use this field for credit card and direct debit payment methods **Character limit**: 40 **Values**: a string of 40 characters or fewer
	CreditCardCity string `json:"CreditCardCity,omitempty"`

	//  The country of the card holder's address.
	CreditCardCountry string `json:"CreditCardCountry,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods. **Character limit**: 2 **Values**: a two-digit number, 01 - 12
	CreditCardExpirationMonth int32 `json:"CreditCardExpirationMonth,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods. **Character limit**: 4 **Values**: a four-digit number
	CreditCardExpirationYear int32 `json:"CreditCardExpirationYear,omitempty"`

	//  The full name of the card holder. Use this field for credit card and direct debit payment methods. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	CreditCardHolderName string `json:"CreditCardHolderName,omitempty"`

	//  The billing address's zip code. This field is required only when you define a debit card or credit card payment. **Character limit**: 20 **Values**: a string of 20 characters or fewer
	CreditCardPostalCode string `json:"CreditCardPostalCode,omitempty"`

	//  The billing address's state. Use this field is if the `CreditCardCountry` value is either Canada or the US. State names must be spelled in full.
	CreditCardState string `json:"CreditCardState,omitempty"`

	//  The type of credit card or debit card. This field is required only when you define a debit card or credit card payment. **Character limit**: 32 **Values**: `AmericanExpress`, `Discover`, `MasterCard`, `Visa`
	CreditCardType string `json:"CreditCardType,omitempty"`

	//  The session ID of the user when the `PaymentMethod` was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently only Verifi supports this field. **Character limit**: 255 **Values**:
	DeviceSessionId string `json:"DeviceSessionId,omitempty"`

	//  An email address for the payment method in addition to the bill to contact email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	Email string `json:"Email,omitempty"`

	//  Indicates if the customer has an existing mandate or a new mandate. A mandate is a signed authorization for UK and NL customers. When you are migrating mandates from another system, be sure to set this field correctly. If you indicate that a new mandate is an existing mandate or vice-versa, then transactions fail. This field is used only for the direct debit payment method. **Character limit**: 3 **Values**: `Yes`, `No`
	ExistingMandate string `json:"ExistingMandate,omitempty"`

	//  The customer's first name. This field is used only for the direct debit payment method. **Character limit**: 30 **Values**: a string of 30 characters or fewer
	FirstName string `json:"FirstName,omitempty"`

	//  The International Bank Account Number. This field is used only for the direct debit payment method. **Character limit**: 42 **Values**: a string of 42 characters or fewer
	IBAN string `json:"IBAN,omitempty"`

	//  The IP address of the user when the payment method was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently PayPal, CyberSource, Authorize.Net, and Verifi support this field. **Character limit**: 15 **Values**: a string of 15 characters or fewer
	IPAddress string `json:"IPAddress,omitempty"`

	//  The customer's last name. This field is used only for the direct debit payment method. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The date of the most recent transaction. **Character limit**: 29 **Values**: a valid date and time value
	LastTransactionDateTime time.Time `json:"LastTransactionDateTime,omitempty"`

	//  The status of the most recent transaction. **Character limit**: 39 **Values**: automatically generated
	LastTransactionStatus string `json:"LastTransactionStatus,omitempty"`

	//  The date when the mandate was created, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 29
	MandateCreationDate time.Time `json:"MandateCreationDate,omitempty"`

	//  The ID of the mandate. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 36 **Values**: a string of 36 characters or fewer
	MandateID string `json:"MandateID,omitempty"`

	//  Indicates if  the mandate was received. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 3 **Values**: `Yes`, `No `(case-sensitive)
	MandateReceived string `json:"MandateReceived,omitempty"`

	//  The date when the mandate was last updated, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 29
	MandateUpdateDate time.Time `json:"MandateUpdateDate,omitempty"`

	//  Specifies the number of allowable consecutive failures Zuora attempts with the payment method before stopping. **Values**: a valid number
	MaxConsecutivePaymentFailures int32 `json:"MaxConsecutivePaymentFailures,omitempty"`

	//  The retry interval setting, which prevents making a payment attempt if the last failed attempt was within the last specified number of hours. This field is required if the `UseDefaultRetryRule` field value is set to `false`. **Character limit**: 4 **Values**: a whole number between 1 and 1000, exclusive
	PaymentRetryWindow int32 `json:"PaymentRetryWindow,omitempty"`

	//  The PayPal billing agreement ID, which is a contract between two PayPal accounts. Typically, the selling party initiates a request to create a BAID, and sends it to buying party for acceptance. The seller can keep track of the BAID and use it for future charges against the buyer. This field is required when defining a PayPal payment method. **Character limit**: 64 **Values**: a string of 64 characters or fewer
	PaypalBaid string `json:"PaypalBaid,omitempty"`

	//  The email address associated with the account holder's PayPal account or of the PayPal account of the person paying for the service. This field is required only when you define a PayPal payment method. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	PaypalEmail string `json:"PaypalEmail,omitempty"`

	//  PayPal's Adaptive Payments API key. Zuora does not create this key, nor does it call PayPal to generate it. You must use PayPal's Adaptive Payments' API to generate this key, and then pass it to Zuora. Zuora uses this key to authorize future payments to PayPal's Adaptive Payments API. This field is required when you use PayPal Adaptive Payments gateway. **Character limit**: 32 **Values**: a valid PayPal Adaptive Payment pre-approval key
	PaypalPreapprovalKey string `json:"PaypalPreapprovalKey,omitempty"`

	//  Specifies the PayPal gateway: PayFlow Pro (Express Checkout) or Adaptive Payments. This field is required when you use PayPal Adaptive Payments or Payflow Pro (Express Checkout) gateways. **Character limit**: 32 **Values**: `ExpressCheckout`, `AdaptivePayments`
	PaypalType string `json:"PaypalType,omitempty"`

	//  The phone number that the account holder registered with the bank. This field is used for credit card validation when passing to a gateway. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	Phone string `json:"Phone,omitempty"`

	//  The zip code of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 20 **Values**: a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  A gateway unique identifier that replaces sensitive payment method data. SecondTokenId is conditionally required only when TokenID is being used to represent a gateway customer profile. SecondTokenId is used in the CC Reference Transaction payment method. **Character limit**: 64 **Values**: a string of 64 characters or fewer
	SecondTokenId string `json:"SecondTokenId,omitempty"`

	//  The state of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	State string `json:"State,omitempty"`

	//  The street name of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	StreetName string `json:"StreetName,omitempty"`

	//  The street number of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 30 **Values**: a string of 30 characters or fewer
	StreetNumber string `json:"StreetNumber,omitempty"`

	//  A gateway unique identifier that replaces sensitive payment method data or represents a gateway's unique customer profile. When TokenId is used to represent a customer profile, then SecondTokenId is conditionally required for representing the underlying tokenized payment method. TokenId is required for the CC Reference Transaction payment method. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TokenId string `json:"TokenId,omitempty"`

	//  The number of error payments that used this payment method. **Character limit**: **Values**: automatically generated
	TotalNumberOfErrorPayments int32 `json:"TotalNumberOfErrorPayments"`

	//  The number of successful payments that used this payment method. **Character limit**: **Values**: automatically generated
	TotalNumberOfProcessedPayments int32 `json:"TotalNumberOfProcessedPayments"`

	// The type of payment method.
	Type_ string `json:"Type"`

	//  Determines whether to use the default retry rules configured in the Zuora Payments settings. Set this to `true` to use the default retry rules. Set this to `false` to set the specific rules for this payment method. If you set this value to `false`, then the fields, `PaymentRetryWindow` and `MaxConsecutivePaymentFailures`, are required. **Character limit**: 5 **Values**: `t“rue`, `false`
	UseDefaultRetryRule bool `json:"UseDefaultRetryRule"`
}

type ProxyCreateProduct

type ProxyCreateProduct struct {

	//  Controls whether to allow your users to add or remove features while creating or amending a subscription. **Character** **limit**: n/a **Values**: true, false (default)
	AllowFeatureChanges bool `json:"AllowFeatureChanges,omitempty"`

	//  Category of the product. Used by Zuora Quotes Guided Product Selector. **Character** **limit**: 100 **Values**: One of the following:  - Base Products - Add On Services - Miscellaneous Products
	Category string `json:"Category,omitempty"`

	//  A descriptionof the product. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	// The date when the product expires and can't be subscribed to anymore, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveEndDate time.Time `json:"EffectiveEndDate"`

	// The date when the product becomes available and can be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveStartDate time.Time `json:"EffectiveStartDate"`

	// The name of the product. This information is displayed in the product catalog pages in the web-based UI. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name"`

	// The unique SKU for the product. **Character limit**: 50 **Values**: one of the following:  - leave null for automatic generated - an alphanumeric string of 50 characters or fewer
	SKU string `json:"SKU,omitempty"`
}

type ProxyCreateProductRatePlan

type ProxyCreateProductRatePlan struct {

	// A description of the product rate plan. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The date when the product rate plan expires and can't be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	//  The date when the product rate plan becomes available and can be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	// The name of the product rate plan. The name doesn't have to be unique in a Product Catalog, but the name has to be unique within a product. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name"`

	// The ID of the product that contains the product rate plan. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	ProductId string `json:"ProductId,omitempty"`
}

type ProxyCreateRefund

type ProxyCreateRefund struct {

	//  The ID of the account associated with this refund. Specify a value for this field only if you're creating an electronic non-referenced refund. Don't specify a value for any other type of refund; Zuora associates the refund automatically with the account from the associated payment. **Character limit**: 32 **Values**: a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The amount of the refund. The amount can't exceed the amount of the associated payment. If the original payment was applied to a single invoice, then you can create a partial refund. However, if the payment was applies to multiple invoices, then you can only make a partial refund through the web-based UI, not through the API. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`

	//  Use this field to record comments about the refund. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The status of the payment in the gateway. **Character limit**: 19 **Values**: automatically generated
	GatewayState string `json:"GatewayState"`

	//  Indicates how an external refund was issued to a customer. This field is required for an external refund. You can issue an external refund on an electronic payment. **Character limit**: 30 **Values**:  - `ACH` - `Cash` - `Check` - `CreditCard` - `Other` - `PayPal` - `WireTransfer` - `DebitCard` - `CreditCardReferenceTransaction`
	MethodType string `json:"MethodType,omitempty"`

	//  The unique ID of the payment method that the customer used to make the payment. Specify a value for this field only if you're creating an electronic non-referenced refund. **Character limit**: 32 **V****alues**: a valid payment method ID
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  The date of the refund, in `yyyy-mm-dd` format. The date of the refund cannot be before the payment date. Specify this field only for external refunds. Zuora automatically generates this field for electronic refunds. **Character limit**: 29
	RefundDate time.Time `json:"RefundDate,omitempty"`

	//  A payment gateway-specific field that maps Zuora to other gateways . **Character limit**: 35 **Values**:  - 3-byte company identifier &quot;*&quot; 18-byte descriptor - 7-byte company identifier &quot;*&quot; 14-byte descriptor - 12-byte company identifier &quot;*&quot; 9-byte descriptor
	SoftDescriptor string `json:"SoftDescriptor,omitempty"`

	//  A payment gateway-specific field that maps Zuora to other gateways . **Character limit**: 20 **Values**:  - Customer service phone number formatted as: `NNN-NNN-NNNN` or `NNN-AAAAAAA` - URL (non-e-Commerce): Transactions sent with a URL do not qualify for the best interchange rate - Email address
	SoftDescriptorPhone string `json:"SoftDescriptorPhone,omitempty"`

	//  Specifies whether the refund is a refund payment or a credit balance. This field is required when creating an non-referenced refund. If you creating an non-referenced refund, then set this value to `CreditBalance`. **Character limit**: 13 **Values**:  - `Payment` - `CreditBalance`
	SourceType string `json:"SourceType,omitempty"`

	//  Specifies if the refund is electronic or external. **Character limit**: 10 **Values**:  - `Electronic` - External
	Type_ string `json:"Type"`
}

type ProxyCreateTaxationItem

type ProxyCreateTaxationItem struct {

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The amount of taxes or VAT for which the customer has an exemption. **Character limit**: 16 **Values**: a decimal value
	ExemptAmount float64 `json:"ExemptAmount"`

	//  The ID of the specific invoice item that the taxation information applies to. **Character limit**: 32 **Values**: a valid invoice item ID
	InvoiceItemId string `json:"InvoiceItemId,omitempty"`

	//  The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city. **Character limit**: 32 **Values**: a string of 32 characterrs or fewer
	Jurisdiction string `json:"Jurisdiction,omitempty"`

	//  The identifier for the location based on the value of the `TaxCode` field. **Character limit**: 32 **Values**: automatically generated
	LocationCode string `json:"LocationCode,omitempty"`

	//  The name of the tax rate, such as sales tax or GST. This name is displayed on invoices. **Character limit**: 128 **Values**: a string of 128 characters or fewer
	Name string `json:"Name,omitempty"`

	//  The amount of the tax applied to the charge. **Character limit**: 16 **Values**: a decimal value
	TaxAmount float64 `json:"TaxAmount"`

	//  The tax code identifies which tax rules and tax rates to apply to a specific charge. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxCode string `json:"TaxCode,omitempty"`

	//  The description for the tax code. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TaxCodeDescription string `json:"TaxCodeDescription,omitempty"`

	//  The date that the tax is applied to the charge, in `yyyy-mm-dd` format. **Character limit**: 29
	TaxDate time.Time `json:"TaxDate,omitempty"`

	//  The tax rate applied to the charge. **Character limit**: 16 **Values**: a valid decimal value
	TaxRate float64 `json:"TaxRate"`

	//  The description of the tax rate. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TaxRateDescription string `json:"TaxRateDescription,omitempty"`

	//  The type of the tax rate applied to the charge. **Character limit**: 10 **Values**: `Percentage`, `FlatFee`
	TaxRateType string `json:"TaxRateType,omitempty"`
}

type ProxyCreateUnitOfMeasure

type ProxyCreateUnitOfMeasure struct {

	//  Indicates if the UOM is available for new product rate plans. The default value is `true`. **Character limit**: 5 **Values**: `true`, `false `
	Active bool `json:"Active,omitempty"`

	// The number of digits to the right of the decimal point that you want to measure for the unit. To use whole numbers only, set this value to 0. You can't change this value after this `UOM` is used in any product, subscription, or usage. **Character limit**: 1 **Values**: an integer between 0 and 9, exclusive
	DecimalPlaces int64 `json:"DecimalPlaces,omitempty"`

	// The name of the UOM that you want displayed on invoices. The default value is the `UomName` field value. **Character limit**: 50 **Values**: A string of 50 characters or fewer
	DisplayedAs string `json:"DisplayedAs,omitempty"`

	//  Specifies whether to round the UOM value up or down when the value exceeds the `DecimalPlaces` field value. The default value is `Up`. **Character limit**: 4 **Values**: `Up`, `Down`
	RoundingMode string `json:"RoundingMode,omitempty"`

	//  The name of the UOM, such as license or GB. This name is displayed in query results and in the web-based UI labels. If you want a different name to be displayed on invoices, then use the `DisplayedAs` field to provide the invoice label. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	UomName string `json:"UomName"`
}

type ProxyCreateUsage

type ProxyCreateUsage struct {

	//  The ID of the account associated with the usage data. This field is required if no value is specified for the `AccountNumber` field. **Character limit**: 32 **Values**: a valid account ID.
	AccountId string `json:"AccountId,omitempty"`

	//  The number of the account associated with the usage data. This field is required if no value is specified for the `AccountId` field. **Character limit**: 50 **Values**: a valid account number.
	AccountNumber string `json:"AccountNumber,omitempty"`

	//  The OrginalId of the rate plan charge related to the usage record, e.g., `2c9081a03c63c94c013c6873357a0117` **Character limit**: 32 **Values**: a valid rate plan charge OriginalID.
	ChargeId string `json:"ChargeId,omitempty"`

	//  The end date and time of a range of time when usage is tracked. Use this field for reporting; this field doesn't affect usage calculation. **Character limit**: 29 **Values**: a valid date and time value.
	EndDateTime time.Time `json:"EndDateTime,omitempty"`

	//  Indicates the number of units used. **Character limit**: 16 **Values**: a valid decimal amount equal to or greater than 0
	Quantity float64 `json:"Quantity,omitempty"`

	//  Indicates if the rating and billing engine (RBE) processed usage data for an invoice. **Character limit**: 9 **Values**: automatically generated to be one of the following values: `Importing`, `Pending`, `Processed`
	RbeStatus string `json:"RbeStatus,omitempty"`

	//  The start date and time of a range of time when usage is tracked. Zuora uses this field value to determine the usage date. Unlike the `EndDateTime`, the `StartDateTime` field does affect usage calculation. **Character limit**: 29 **Values**: a valid date and time value
	StartDateTime time.Time `json:"StartDateTime,omitempty"`

	//  The date when usage was submitted. **Character limit**: 29 **Values**: automatically generated
	SubmissionDateTime time.Time `json:"SubmissionDateTime,omitempty"`

	//  The ID of the subscription that contains the fees related to the usage data. **Character limit**: 32 **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  Specifies the units to measure usage. Units of measure are configured in the web-based UI. Your values depend on your configuration in **Billing Settings**. **Character limit**: **Values**: a valid unit of measure
	UOM string `json:"UOM,omitempty"`
}

type ProxyDeleteResponse

type ProxyDeleteResponse struct {

	//
	Id string `json:"id,omitempty"`

	//
	Success bool `json:"success,omitempty"`
}

type ProxyGetAccount

type ProxyGetAccount struct {

	// Unique account number assigned to the account. **Character limit**: 50 **Values**: one of the following:  - null to auto-generate - a string of 50 characters or fewer that doesn't begin with the default account number prefix
	AccountNumber string `json:"AccountNumber,omitempty"`

	// List of additional email addresses to receive emailed invoices. **Character limit**: 120 **Values**: comma-separated list of email addresses
	AdditionalEmailAddresses string `json:"AdditionalEmailAddresses,omitempty"`

	//  Indicates if associated invoices can be edited. **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	AllowInvoiceEdit bool `json:"AllowInvoiceEdit,omitempty"`

	//  Indicates if future payments are automatically collected when they're due during a Payment Run. **Character limit**: 5 **Values**: `true`, `false` (default)
	AutoPay bool `json:"AutoPay,omitempty"`

	// Current outstanding balance for the account. **Character limit**: 16 **Values**: automatically generated
	Balance float64 `json:"Balance,omitempty"`

	//  Organizes your customer accounts into groups to optimize your billing and payment operations. Required if you use the Subscribe call **Character limit**: 20 **Values**:any system-defined batch (`Batch1` - `Batch50 `or by name).
	Batch string `json:"Batch,omitempty"`

	// Billing cycle day setting option. **Character limit**: 9 **Values**: `AutoSet`, `ManualSet`
	BcdSettingOption string `json:"BcdSettingOption,omitempty"`

	// Billing cycle day (BCD) on which bill runs generate invoices for the account. **Character limit**: 2 **Values**: any activated system-defined bill cycle day (`1` - `31`)
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	// ID of the person to bill for the account. **Character limit**: 32 **Values**: a valid contact ID for the account
	BillToId string `json:"BillToId,omitempty"`

	// Associates the account with a specified communication profile. **Character limit**: 32 **Values**: a valid communication profile ID
	CommunicationProfileId string `json:"CommunicationProfileId,omitempty"`

	// ID of the Zuora user who created the Account object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// Date when the Account object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Total credit balance for the account. **Character limit**: 16 **Values**: automatically generated
	CreditBalance float64 `json:"CreditBalance,omitempty"`

	// CRM account ID for the account. A CRM is a customer relationship management system, such as Salesforce.com. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	CrmId string `json:"CrmId,omitempty"`

	//  Currency that the customer is billed in.
	Currency string `json:"Currency,omitempty"`

	// Name of the account's customer service representative, if applicable. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	CustomerServiceRepName string `json:"CustomerServiceRepName,omitempty"`

	// ID of the default payment method for the account. This field is required if the AutoPay field is set to `true`. **Character limit**: 32 **Values**: a valid ID for an existing payment method
	DefaultPaymentMethodId string `json:"DefaultPaymentMethodId,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// Indicates if the customer wants to receive invoices through email.  **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsEmail bool `json:"InvoiceDeliveryPrefsEmail,omitempty"`

	// Indicates if the customer wants to receive printed invoices, such as through postal mail. **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsPrint bool `json:"InvoiceDeliveryPrefsPrint,omitempty"`

	// The ID of the invoice template. Each customer account can use a specific invoice template for invoice generation. **Character limit**: 32 **Values**: a valid template ID configured in Zuora Billing Settings
	InvoiceTemplateId string `json:"InvoiceTemplateId,omitempty"`

	//  The date when the previous invoice was generated for the account. The field value is null if no invoice has ever been generated for the account. **Character limit**: 29 **Values**: automatically generated
	LastInvoiceDate time.Time `json:"LastInvoiceDate,omitempty"`

	// Name of the account as displayed in the Zuora UI. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Comments about the account. **Character limit**: 65,535 **Values**: a string of 65,535 characters
	Notes string `json:"Notes,omitempty"`

	// Identifier of the parent customer account for this Account object. Use this field if you have customer hierarchy enabled. **Character limit**: 32 **Values**: a valid account ID
	ParentId string `json:"ParentId,omitempty"`

	// Gateway used for processing electronic payments and refunds. **Character limit**: 40 **Values**: one of the following:  - a valid configured gateway name - Null to inherit the default value set in Payment Settings
	PaymentGateway string `json:"PaymentGateway,omitempty"`

	// Indicates when the customer pays for subscriptions. **Character limit**: 100 **Values**: a valid, active payment term defined in the web-based UI administrative settings
	PaymentTerm string `json:"PaymentTerm,omitempty"`

	// The number of the purchase order associated with this account. Purchase order information generally comes from customers. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	PurchaseOrderNumber string `json:"PurchaseOrderNumber,omitempty"`

	// The name of the sales representative associated with this account, if applicable. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	SalesRepName string `json:"SalesRepName,omitempty"`

	// ID of the person who bought the subscription associated with the account. **Character limit**: 32 **Values**: a valid contact ID for the account
	SoldToId string `json:"SoldToId,omitempty"`

	// Status of the account in the system. **Character limit**: 8 **Values**: one of the following:  - leave null if you're using the Subscribe call - if you're using `create()`: - `Draft` - `Active` - `Canceled`
	Status string `json:"Status,omitempty"`

	//  Unique code that identifies a company account in Avalara. Use this field to calculate taxes based on origin and sold-to addresses in Avalara. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Character limit**: 50 **Values**: a valid company code
	TaxCompanyCode string `json:"TaxCompanyCode,omitempty"`

	// ID of your customer's tax exemption certificate. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptCertificateID string `json:"TaxExemptCertificateID,omitempty"`

	// Type of the tax exemption certificate that your customer holds.  **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptCertificateType string `json:"TaxExemptCertificateType,omitempty"`

	// Description of the tax exemption certificate that your customer holds. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	TaxExemptDescription string `json:"TaxExemptDescription,omitempty"`

	// Date when the the customer's tax exemption starts. **Character limit**: 29 **Version notes**: requires Zuora Tax
	TaxExemptEffectiveDate time.Time `json:"TaxExemptEffectiveDate,omitempty"`

	// Date when the customer's tax exemption certificate expires  **Character limit**: 29 **Version notes**: requires Zuora Tax
	TaxExemptExpirationDate time.Time `json:"TaxExemptExpirationDate,omitempty"`

	// Indicates the jurisdiction in which the customer's tax exemption certificate was issued. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptIssuingJurisdiction string `json:"TaxExemptIssuingJurisdiction,omitempty"`

	//  Status of the account's tax exemption. Required if you use Zuora Tax. **Character limit**: 19 **Values**: one of the following:  - `Yes` - `No` - `PendingVerification`
	TaxExemptStatus string `json:"TaxExemptStatus,omitempty"`

	// Total balance of the account's invoices. **Character limit**: 16 **Values**: a valid currency value
	TotalInvoiceBalance float64 `json:"TotalInvoiceBalance,omitempty"`

	// ID of the user who last updated the account. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// Date when the account was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  EU Value Added Tax ID. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Character limit**: 25 **Values**: a valid Value Added Tax ID
	VATId string `json:"VATId,omitempty"`
}

type ProxyGetAmendment

type ProxyGetAmendment struct {

	//  Determines whether the subscription is automatically renewed, or whether it expires at the end of the term and needs to be manually renewed. **Required:** For amendment of type TermsAndConditions when changing the automatic renewal status of a subscription. **Values**: true, false
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  A unique alphanumeric string that identifies the amendment. **Character limit**: 50 **Values**: one of the following:  - `null` generates a value automatically - A string
	Code string `json:"Code,omitempty"`

	//  The date when the amendment's changes become effective for billing purposes. **Version notes**: --
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	//  The user ID of the person who created the amendment. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the amendment was created. **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The length of the period for the current subscription term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions` and TermType is set to `TERMED`. This field is not required if TermType is set to `EVERGREEN`. **Character limit**: **Values**: a valid number
	CurrentTerm int64 `json:"CurrentTerm,omitempty"`

	//  The period type for the current subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field can be updated when Status is `Draft`. - This field is used with the CurrentTerm field to specify the current subscription term.
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	//  The date when the customer accepts the amendment's changes to the subscription. **Required**: Only if the value of the Status field is set to PendingAcceptance. **Version notes**: --
	CustomerAcceptanceDate time.Time `json:"CustomerAcceptanceDate,omitempty"`

	//  A description of the amendment. **Character limit**: 500 **Values**: maximum 500 characters
	Description string `json:"Description,omitempty"`

	//  The date when the amendment's changes take effective. This field validates that the amendment's changes are within valid ranges of products and product rate plans. **Required**: For the cancellation amendments. Optional for other types of amendments. **Version notes**: --
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The name of the amendment. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. **Required**: If TermType is Termed **Values**: RENEW_WITH_SPECIFIC_TERM (default), RENEW_TO_EVERGREEN
	RenewalSetting string `json:"RenewalSetting,omitempty"`

	//  The term of renewal for the amended subscription. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. **Character limit**: **Values:** a valid number
	RenewalTerm int64 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. This field is used with the RenewalTerm field to specify the subscription renewal term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when service is activated. **Required**: Only if the value of the Status field is set to PendingActivation. **Version notes**: --
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	//  The date when the UpdateProduct amendment takes effect. This field is only applicable if there is already a future-dated UpdateProduct amendment on the subscription. **Required**: Only for the UpdateProduct amendments if there is already a future-dated UpdateProduct amendment on the subscription. **Version notes**: --
	SpecificUpdateDate time.Time `json:"SpecificUpdateDate,omitempty"`

	//  The status of the amendment. Type: string (enum) **Character limit**: 17 **Values**: one of the following:  - Draft (default, if left null) - Pending Activation - Pending Acceptance - Completed
	Status string `json:"Status,omitempty"`

	//  The ID of the subscription that the amendment changes. **Character limit**: 32 **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The date when the new terms and conditions take effect. **Required**: Only if the value of the Type field is set to TermsAndConditions. **Version notes**: --
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  Indicates if the subscription isTERMED or EVERGREEN.  - A TERMED subscription has an expiration date, and must be manually renewed. - An EVERGREEN subscription doesn't have an expiration date, and must be manually ended.  **Required**: Only when as part of an amendment of type TermsAndConditions &#65279;to change the term type of a subscription. Type: string **Character limit**: 9 **Values**: TERMED, EVERGREEN
	TermType string `json:"TermType,omitempty"`

	//  The type of amendment. **Character limit**: 18 **Values**: one of the following:  - Cancellation - NewProduct - OwnerTransfer - RemoveProduct - Renewal - UpdateProduct - TermsAndConditions - SuspendSubscription (This value is in **Limited Availability**.) - ResumeSubscription (This value is in **Limited Availability**.)
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the amendment. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the amendment was last updated. **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetBillRun

type ProxyGetBillRun struct {

	// ID of the account used for single account bill run.  **Character limit:** 32
	AccountId string `json:"AccountId,omitempty"`

	// Determines whether to auto send email or not once the bill run completes.  **Note:** You must enable the [Support Bill Run Auto-Post Billing](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Billing_Rules) rule to pass this field.
	AutoEmail bool `json:"AutoEmail,omitempty"`

	// Determines whether to auto post bill run or not once the bill run completes.  **Note:** You must enable the [Support Bill Run Auto-Post Billing](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Billing_Rules) rule to pass this field.
	AutoPost bool `json:"AutoPost,omitempty"`

	// Determines whether to auto renew subscription or not by this bill run once the bill run completes.
	AutoRenewal bool `json:"AutoRenewal,omitempty"`

	// Batch of accounts for this bill run.   **Character limit:** 20  **Values:** AllBatches or Batchn where n is a number between 1 and 50.
	Batch string `json:"Batch,omitempty"`

	// The day of the bill cycle.  **Character limit:** 32  **Values:** `AllBillCycleDays` or 01 - 31.
	BillCycleDay string `json:"BillCycleDay,omitempty"`

	// Number of the bill run.  **Character limit:** 50  **Values:** automatically generated
	BillRunNumber string `json:"BillRunNumber,omitempty"`

	// The user ID of the person who created the bill run.  **Character limit:** 32  **Values:** automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date and time when the bill run was created.  **Character limit:** 29  **Values:** automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// The date and time when the bill run was executed.
	ExecutedDate time.Time `json:"ExecutedDate,omitempty"`

	// ID of the object.  **Character limit:** 32  **Values:** automatically generated
	Id string `json:"Id,omitempty"`

	// Invoice date for this bill run.  **Character limit:** 29
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	// Indicates whether the invoice has been sent or not.   **Values:** automatically generated
	InvoicesEmailed bool `json:"InvoicesEmailed,omitempty"`

	// The last time emails were sent for this bill run.  **Character limit:** 29  **Values:** automatically generated
	LastEmailSentTime time.Time `json:"LastEmailSentTime,omitempty"`

	// Determines whether to suppress email for invoices with zero total or not for this bill run once the bill run completes. (Do not email invoices with 0 Invoice Total).
	NoEmailForZeroAmountInvoice bool `json:"NoEmailForZeroAmountInvoice,omitempty"`

	// The number of accounts processed by this bill run.  **Values:** automatically generated
	NumberOfAccounts int64 `json:"NumberOfAccounts,omitempty"`

	// The number of invoices generated by this  run.  **Values:** automatically generated
	NumberOfInvoices int64 `json:"NumberOfInvoices,omitempty"`

	// The status  for this bill run. See [Status Types](https://knowledgecenter.zuora.com/CB_Billing/J_Billing_Operations/G_Bill_Runs#Status_Types) for more information.  **Character limit:** 20  **Values:**     * `Pending`   * `Processing`   * `Completed`   * `Error`   * `Canceled`   * `Posted`
	Status string `json:"Status,omitempty"`

	// Target date for this bill run. See [Create Bill Run](https://knowledgecenter.zuora.com/CB_Billing/J_Billing_Operations/G_Bill_Runs/Creating_Bill_Runs) for more information.  **Character limit:** 29
	TargetDate time.Time `json:"TargetDate,omitempty"`

	// The user ID of the person who last updated the bill run.  **Character limit:** 32  **Values:** automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date and time when the bill run was last updated.  **Character limit:** 29  **Values:** automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetCommunicationProfile

type ProxyGetCommunicationProfile struct {

	//
	CreatedById string `json:"CreatedById,omitempty"`

	//
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//
	Description string `json:"Description,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//
	ProfileName string `json:"ProfileName,omitempty"`

	//
	UpdatedById string `json:"UpdatedById,omitempty"`

	//
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetContact

type ProxyGetContact struct {

	//  The Zuora account ID associated with this contact. This field is not required when you use the Subscribe call. This field is required for all other calls. **Character limit: **32 **Values: **a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The first line of the contact's address, which is often a street address or business name. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Address1 string `json:"Address1,omitempty"`

	//  The second line of the contact's address. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Address2 string `json:"Address2,omitempty"`

	//  The city of the contact's address. **Character limit**: 40 **Values: **a string of 40 characters or fewer
	City string `json:"City,omitempty"`

	//  The country of the contact's address.
	Country string `json:"Country,omitempty"`

	//  The country. May optionally be used by Zuora Tax to calculate county tax. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	County string `json:"County,omitempty"`

	// The ID of the Zuora user who created the contact. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the contact was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  A description for the contact. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The contact's fax number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	Fax string `json:"Fax,omitempty"`

	//  The contact's first name. **Character limit**: 100 **Values**: a string of the contact's first name
	FirstName string `json:"FirstName,omitempty"`

	//  The contact's home phone number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	HomePhone string `json:"HomePhone,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The contact's last name. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The contact's mobile phone number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	MobilePhone string `json:"MobilePhone,omitempty"`

	//  A nickname for the contact. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	NickName string `json:"NickName,omitempty"`

	//  An additional phone number for the contact. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	OtherPhone string `json:"OtherPhone,omitempty"`

	// The type of the `OtherPhone`. **Character limit**: 20 **Values**: `Work`, `Mobile`, `Home`, `Other`
	OtherPhoneType string `json:"OtherPhoneType,omitempty"`

	//  The contact's personal email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	PersonalEmail string `json:"PersonalEmail,omitempty"`

	//  The zip code for the contact's address. **Character limit:** 20 **Values: **a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  The state or province of the contact's address.
	State string `json:"State,omitempty"`

	// If using Zuora Tax rules
	TaxRegion string `json:"TaxRegion,omitempty"`

	//  The ID of the user who lasted updated the contact. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the contact was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  The contact's business email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	WorkEmail string `json:"WorkEmail,omitempty"`

	//  The contact's business phone number. **Character limit**: 40 **notes**: -- **Values**: a string of 40 characters or fewer
	WorkPhone string `json:"WorkPhone,omitempty"`
}

type ProxyGetCreditBalanceAdjustment

type ProxyGetCreditBalanceAdjustment struct {

	//  The account ID of the credit balance's account. Zuora generates this value from the source transaction. **Character limit**: 32 **V****alues**: automatically generated from:  - CreditBalanceAdjustment.SourceTransactionId or - CreditBalanceAdjustment.SourceTransactionNumber
	AccountId string `json:"AccountId,omitempty"`

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The date when the credit balance adjustment is applied. **Character limit**: 29 **Values**: automatically generated
	AdjustmentDate time.Time `json:"AdjustmentDate,omitempty"`

	//  The amount of the adjustment. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`

	//  The date when the credit balance adjustment was canceled. **Character limit**: 29 **Values**: automatically generated
	CancelledOn time.Time `json:"CancelledOn,omitempty"`

	//  Use this field to record comments about the credit balance adjustment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The user ID of the person who created the credit balance adjustment. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the credit balance adjustmentwas generated. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//
	IntegrationIdNS string `json:"IntegrationId__NS,omitempty"`

	//
	IntegrationStatusNS string `json:"IntegrationStatus__NS,omitempty"`

	//  A unique identifier for the credit balance adjustment. Zuora generates this number in the format, <em>CBA-xxxxxxxx</em>, such as CBA-00375919. **Character limit**: 255 **Values**: automatically generated
	Number string `json:"Number,omitempty"`

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  The ID of the payment that the credit balance adjustment is for. **Character limit**: 32 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  The ID of the object that the credit balance adjustment is applied to. You must specify a value for either the `SourceTransactionId` field or the `SourceTransactionNumber` field. **Character limit**: 32 **Values**: one of the following:  - InvoiceId - PaymentId - RefundId
	SourceTransactionId string `json:"SourceTransactionId,omitempty"`

	//  The number of the object that the credit balance adjustment is applied to. You must specify a value for either the `SourceTransactionId` field or the `SourceTransactionNumber` field. **Character limit**: 50 **Values**: one of the following:  - InvoiceNumber - PaymentNumber - RefundNumber
	SourceTransactionNumber string `json:"SourceTransactionNumber,omitempty"`

	//  The source of the credit balance adjustment. **Character limit**: **Values**: automatically generated; one of the following:  - Invoice - Payment - Refund
	SourceTransactionType string `json:"SourceTransactionType,omitempty"`

	//  The status of the credit balance adjustment. **Character limit**: 9 **Values**: automatically generated; one of the following:  - Processed - Canceled
	Status string `json:"Status,omitempty"`

	//
	SyncDateNS string `json:"SyncDate__NS,omitempty"`

	//  Indicates the status of the credit balance adjustment's transfer to an external accounting system, such as NetSuite. **Character limit**: **Values**: one of the following:  - Processing - Yes - Error - Ignore
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	// Create Query Filter
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the credit balance adjustment. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the credit balance adjustment was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetExport

type ProxyGetExport struct {

	//  The currencies that you want to convert transaction amounts into. You can specify any number of currencies. Specify the currencies using their Foreign Currency Conversion enabled to use this field. **Character limit**: **Values**: a list of valid currency codes
	ConvertToCurrencies string `json:"ConvertToCurrencies,omitempty"`

	//  The user ID of the person who created the export. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the import was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  Exports a secure version of encrypted data source fields. such as the AchAccountNumber field of the PaymentMethod object and the DefaultPaymentMethod data souce objects. **Character limit**: 5 **Values:** true, false
	Encrypted bool `json:"Encrypted,omitempty"`

	//  The ID of the file generated by an export query. This file is automatically generated when an Export object is created. Use this file ID with [Get files](https://www.zuora.com/developer/api-reference/#operation/GET_Files) to download the export file. **Character limit**: 32 **Values**: automatically generated
	FileId string `json:"FileId,omitempty"`

	//  The format that you want the export file to use. **Character limit**: 5
	Format string `json:"Format,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The name of the export. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Name string `json:"Name,omitempty"`

	// [Export ZOQL](https://knowledgecenter.zuora.com/DC_Developers/M_Export_ZOQL) query.
	Query string `json:"Query,omitempty"`

	//  The number of records or rows exported. This field value is null until the export status is Completed. **Character limit**: **Values**: automatically generated
	Size int32 `json:"Size,omitempty"`

	//  The status of the export. Type: string (enum) **Character limit**: 10 **Values**: automatically generated to be one of the following values:  - Pending - Processing - Completed - Canceled - Failed
	Status string `json:"Status,omitempty"`

	//  The reason for the given status. Use this information to help ascertain why an export failed. **Character limi**t: 255 **Values**: automatically generated
	StatusReason string `json:"StatusReason,omitempty"`

	//  The ID of the user who last updated the export. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the expotr was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  Indicates if you want the resulting export file to be compressed into a zip file. **Character limit**: **Values**: true, false (default)
	Zip bool `json:"Zip,omitempty"`
}

type ProxyGetFeature

type ProxyGetFeature struct {

	//  Internal Zuora ID of the user who created the feature **Character limit**: 32
	CreatedById string `json:"CreatedById,omitempty"`

	//  Date and time when the feature was created **Character limit**: 29
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  Description of the feature **Character limit**: 1000
	Description string `json:"Description,omitempty"`

	//  Unique code of the feature **Character limit**: 255
	FeatureCode string `json:"FeatureCode,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  Name of the feature **Character limit**: 255
	Name string `json:"Name,omitempty"`

	//  Status of the feature, Active or Inactive **Character limit**: 8
	Status string `json:"Status,omitempty"`

	//  Internal Zuora ID of the user who last updated the feature **Character limit**: 32
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  Date and time when the feature was last updated **Character limit**: 29
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetImport

type ProxyGetImport struct {

	//  The user ID of the person who created the import.  **Character limit**: 32  **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the import was created.  **Character limit**: 29  **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The type of item imported.  **Character limit**: 7  **Values**: Usage
	ImportType string `json:"ImportType,omitempty"`

	// The number of records successfully imported.  **Values**: automatically generated
	ImportedCount int32 `json:"ImportedCount,omitempty"`

	//  A check to validate the import file's integrity.  **Character limit:** 32  **System-generated:** no  **Values**: a string of 32 characters or fewer
	Md5 string `json:"Md5,omitempty"`

	//  A descriptive name for the import.  **Character limit:** 100  **Values:** one of the following:  - a string of 100 characters or fewer - if NULL default is: `import <ImportType_value>`
	Name string `json:"Name,omitempty"`

	//  The URL for your import file, which contains your records for upload. When you upload the file, Zuora assigns it to this address.  **Values:** automatic dynamically-generated URL
	OriginalResourceUrl string `json:"OriginalResourceUrl,omitempty"`

	//  The URL for the import result file, which is a zipped CSV file.  **Values**: automatic dynamically-generated URL
	ResultResourceUrl string `json:"ResultResourceUrl,omitempty"`

	// The status of the import process.  **Values**: automatically generated using one of the following values:  - Pending - Processing - Completed - Failed
	Status string `json:"Status,omitempty"`

	//  The reason for the system-generated status. Use this information if the import fails.  **Character limit**: 2000  **Values**: automatically generated error message
	StatusReason string `json:"StatusReason,omitempty"`

	//  The number of records in the import file.  **Character limit**:  **Values**: automatically generated
	TotalCount int32 `json:"TotalCount,omitempty"`

	//  The ID of the user who last updated the import.  **Character limit**: 32  **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the import was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoice

type ProxyGetInvoice struct {

	//
	AccountId string `json:"AccountId,omitempty"`

	//  The amount of the invoice adjustments associated with the invoice. **Character limi**t: 16 **Values**: a valid currency amount
	AdjustmentAmount float64 `json:"AdjustmentAmount,omitempty"`

	//  The sum of all charges and taxes associated with the invoice. **Character limit**: 16 **Values**: automatically generated
	Amount float64 `json:"Amount,omitempty"`

	//  The sum of all charges associated with the invoice. Taxes are excluded from this value. **Character limit**: 16 **Values**: automatically generated
	AmountWithoutTax float64 `json:"AmountWithoutTax,omitempty"`

	//  The remaining balance of the invoice after all payments, adjustments, and refunds are applied. **Character limit**: 16 **Values**: automatically generated
	Balance float64 `json:"Balance,omitempty"`

	//  Required
	Body string `json:"Body,omitempty"`

	//  Additional information related to the invoice that a Zuora user added to the invoice. **Character limit**: 255 **Values:** a string of 255 characters or fewer
	Comments string `json:"Comments,omitempty"`

	//  The user ID of the person who created the invoice. If a bill run generated the invoice, then the value is the user ID of person who created the bill run. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the invoice was generated. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The currency amount of the adjustment applied to the customer's credit balance. **Character limit**: 16 **Values**: a valid currency amount This field is only available if the [Zuora Global Support](http://support.zuora.com/) to enable this feature.
	CreditBalanceAdjustmentAmount float64 `json:"CreditBalanceAdjustmentAmount,omitempty"`

	//  The date by which the payment for this invoice is due. **Character limit**: 29 **Version notes**: --
	DueDate time.Time `json:"DueDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  Specifies whether the invoice includes one-time charges. You can use this field only with the Generate call for the Invoice object. **Character limit**: 5 **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesOneTime bool `json:"IncludesOneTime,omitempty"`

	//  Specifies whether the invoice includes recurring charges. You can use this field only with the Generate call for the Invoice object. **Character limit**: 5 **Values**: automatically generated from one of the following: `True` (default), `False`
	IncludesRecurring bool `json:"IncludesRecurring,omitempty"`

	//  Specifies whether the invoice includes usage charges. You can use this field only with the Generate call for the Invoice object. **Character limit**: 5 **Values**: automatically generated from one of the following: `True `(default), `False`
	IncludesUsage bool `json:"IncludesUsage,omitempty"`

	//  Specifies the date on which to generate the invoice. **Character limit**: 29 **Version notes**: --
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//  The unique identification number for the invoice. This number is returned as a string. **Character limit**: 32 **Values**: automatically generated
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	//  The date when the invoice was last emailed. **Character limit**: 29 **Values**: automatically generated
	LastEmailSentDate time.Time `json:"LastEmailSentDate,omitempty"`

	//  The amount of payments applied to the invoice. **Character limit**: 16 **Value**s: automatically generated
	PaymentAmount float64 `json:"PaymentAmount,omitempty"`

	//  The user ID of the person who moved the invoice to Posted status. **Character limit**: 32 **Values**: automatically generated
	PostedBy string `json:"PostedBy,omitempty"`

	//  The date when the invoice was posted. **Character limit:** 29 **Values**: automatically generated
	PostedDate time.Time `json:"PostedDate,omitempty"`

	//  Specifies the amount of a refund that was applied against an earlier payment on the invoice. **Character limit**: 16 **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount,omitempty"`

	//  The status of the invoice in the system. This status is not the status of the payment of the invoice, just the status of the invoice itself. **Character limit**: 8 **Values**: one of the following:  -  Draft (default, automatically set upon invoice creation)  -  Posted  -  Canceled
	Status string `json:"Status,omitempty"`

	//  This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in this bill run. **Character limit**: 29 **Version notes**: --
	TargetDate time.Time `json:"TargetDate,omitempty"`

	//  The total amount of the taxes applied to the invoice. **Character limit**: 16 **Values**: automatically generated
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  The total amount of the invoice that is exempt from taxation. **Character limit**: 16 **Values**: automatically generated
	TaxExemptAmount float64 `json:"TaxExemptAmount,omitempty"`

	//  Specifies whether or not the invoice was transferred to an external accounting system, such as NetSuite. **Character limit**: 10 **Values**: Processing, Yes, Error, Ignore
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoiceAdjustment

type ProxyGetInvoiceAdjustment struct {

	//  The ID of the account that owns the invoice. **Character limit**: 32 **Values**: inherited from Account.ID for the invoice owner
	AccountId string `json:"AccountId,omitempty"`

	// The accounting code for the invoice adjustment.
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The date when the invoice adjustment is applied. This date must be the same as the invoice's date or later. **Character limit**: 29 **Values**: Leave null to automatically generate the current date
	AdjustmentDate time.Time `json:"AdjustmentDate,omitempty"`

	//  A unique string to identify an individual invoice adjustment. **Character limit**: 255 **Values**: automatically generated
	AdjustmentNumber string `json:"AdjustmentNumber,omitempty"`

	//  The amount of the invoice adjustment. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`

	//  The ID of the Zuora user who canceled the invoice adjustment. Zuora generates this read-only field only if the adjustment is canceled. **Character limit**: 32 **Values**: automatically generated
	CancelledById string `json:"CancelledById,omitempty"`

	//  The date when the invoice adjustment is canceled. Zuora generates this read-only field if this adjustment is canceled. **Character limit**: 29 **Values**: automatically generated
	CancelledOn time.Time `json:"CancelledOn,omitempty"`

	//  Use this field to record comments about the invoice adjustment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comments string `json:"Comments,omitempty"`

	//  The user ID of the person who created the invoice adjustment. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date the invoice adjustment was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The name of the account that owns the associated invoice.  **Character limit**: 50  **Values**: inherited from `Account.Name`  **Note**: This value changes if `Account.Name` is updated. The values of `UpdatedById` and `UpdatedDate` for the `InvoiceAdjustment` do not change when `Account.Name` is updated.
	CustomerName string `json:"CustomerName,omitempty"`

	//  The unique account number of the customer's account.  **Character limit**: 70  **Values**: inherited from `Account.AccountNumber`  **Note**: This value changes if `Account.AccountNumber` is updated. The values of `UpdatedById` and `UpdatedDate` for the `InvoiceAdjustment` do not change when `Account.AccountNumber` is updated.
	CustomerNumber string `json:"CustomerNumber,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The amount that changes the balance of the associated invoice. **Character limit**: 16 **Values**: automatically calculated
	ImpactAmount float64 `json:"ImpactAmount,omitempty"`

	//  The ID of the invoice associated with the adjustment. This field is required if you don't specify a value for the `InvoiceNumber` field. **Character limit**: 32 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  The unique identification number for the associated invoice. This field is required if you don't specify a value for the `InvoiceId` field. **Character limit**: 32 **Values**: a valid invoice number
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  A code to reference an object external to Zuora. For example, you can use this field to reference a case number in an external system. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  The status of the invoice adjustment. This field is required in the Query call, but is automatically generated in other calls. **Character limit**: 9 **Values**: `Canceled`, `Processed`
	Status string `json:"Status,omitempty"`

	//  Indicates the status of the adjustment's transfer to an external accounting system, such as NetSuite. **Character limit**: 10 **Values**: `Processing`, `Yes`, `Error`, `Ignore`
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//  Indicates whether the adjustment credits or debits the invoice amount. **Character limit**: 6 **Values**: `Credit`, `Charge`
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the invoice. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoiceItem

type ProxyGetInvoiceItem struct {

	//  The accounting code for the item's charge. Accounting codes group transactions that contain similar accounting attributes. **Character limit**: 100 **Values**: inherited from `RatePlanCharge.AccountingCode`
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  Associates a discount invoice item to a specific invoice item.  **Character limit**: 32  **Values**: inherited from `InvoiceItem.Id` for the invoice item that the discount charge is applied to
	AppliedToInvoiceItemId string `json:"AppliedToInvoiceItemId,omitempty"`

	//  The amount being charged for the invoice item. This amount doesn't include taxes regardless if the charge's tax mode is inclusive or exclusive. **Character limit**: **Values**: automatically calculated from multiple fields in multiple objects
	ChargeAmount float64 `json:"ChargeAmount,omitempty"`

	//  The date when the Invoice Item is created . **Character limit**: 29 **Values**: automatically generated
	ChargeDate time.Time `json:"ChargeDate,omitempty"`

	//  The name of the invoice item's charge. **Character limi**t: 50 **Values: **inherited from `RatePlanCharge.Name`
	ChargeName string `json:"ChargeName,omitempty"`

	//  The user ID of the person who created the invoice item. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date the invoice item was created. **Character limit:** 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The ID of the invoice that's associated with this invoice item. **Character limit**: 32 **Values**: inherited from `Invoice.Id`
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  Identifies the kind of charge where 0 is a charge, 1 is a discount, 2 is a prepayment, and 3 is a tax. The returned value is text not decimal on data sources. **Character limit**: **Values: **  - 0: charge - 1: discount - 2: prepayment - 3: tax
	ProcessingType float64 `json:"ProcessingType,omitempty"`

	//  A description of the product associated with this invoice item.  **Character limit**: 500  **Values**: inherited from `Product.Description`  **Note**: This value changes if `Product.Description` is updated. The values of `UpdatedById` and `UpdatedDate` for the `InvoiceItem` do not change when `Product.Description` is updated.
	ProductDescription string `json:"ProductDescription,omitempty"`

	//  The name of the product associated with this invoice item.  **Character limit**: 255  **Values**: inherited from `Product.Name`  **Note**: This value changes if `Product.Name` is updated. The values of `UpdatedById` and `UpdatedDate` for the `InvoiceItem` do not change when `Product.Name` is updated.
	ProductName string `json:"ProductName,omitempty"`

	//  The number of units for this invoice item. **Values**: inherited from `RatePlanCharge.Quantity`
	Quantity float64 `json:"Quantity,omitempty"`

	//  The ID of the rate plan charge that's associated with this invoice item. **Character limit**: 32 **Values**: inherited from `RatePlanCharge.Id`
	RatePlanChargeId string `json:"RatePlanChargeId,omitempty"`

	//  The date when revenue recognition is triggered. **Character limit**: 29 **Values**: generated from `InvoiceItem.RevRecTriggerCondition`
	RevRecStartDate time.Time `json:"RevRecStartDate,omitempty"`

	//  The unique SKU for the product associated with this invoice item. **Character limit**: 255 **Values**: inherited from `Product.SKU`
	SKU string `json:"SKU,omitempty"`

	//  The end date of the service period associated with this invoice item. Service ends one second before the date in this value. **Character limit**: 29 **Values**: automatically generated
	ServiceEndDate time.Time `json:"ServiceEndDate,omitempty"`

	//  The start date of the service period associated with this invoice item. If the associated charge is a one-time fee, then this date is the date of that charge. **Character limit:** 29 **Values**: automatically generated
	ServiceStartDate time.Time `json:"ServiceStartDate,omitempty"`

	//  The ID of the subscription associated with the invoice item. **Character limit**: 32 **Values**: inherited from `Subscription.Id`
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The amount of tax applied to the invoice item's charge. **Character limit**: **Values**: calculated from multiple fields in the ProductRatePlanCharge object
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  Specifies the tax code for taxation rules. **Character limit**: 6 **Values**: inherited from `ProductRatePlanCharge.TaxCode`
	TaxCode string `json:"TaxCode,omitempty"`

	//  The amount of the invoice item's charge that's tax exempt. **Character limit**: **Values**: calculated from multiple fields in the ProductRatePlanCharge object
	TaxExemptAmount float64 `json:"TaxExemptAmount,omitempty"`

	//  The tax mode of the invoice item. **Character limit**: 12 **Values**: `TaxExclusive`, `TaxInclusive`
	TaxMode string `json:"TaxMode,omitempty"`

	//  Specifies the units to measure usage. **Character limit**: **Values**: inherited from `ProductRatePlanCharge.UOM`
	UOM string `json:"UOM,omitempty"`

	//  The per-unit price of the invoice item. **Character limit**: **Values**: calculated from multiple fields in ProductRatePlanCharge and ProductRatePlanChargeTier objets
	UnitPrice float64 `json:"UnitPrice,omitempty"`

	//  The ID of the user who last updated the invoice item. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice item was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoiceItemAdjustment

type ProxyGetInvoiceItemAdjustment struct {

	//  The ID of the account that owns the invoice. **Values**: inherited from `Account.ID` for the invoice owner
	AccountId string `json:"AccountId,omitempty"`

	//  The accounting code for the invoice item. Accounting codes group transactions that contain similar accounting attributes. **Character limit**: 100 **Values**: inherited from `InvoiceItem.AccountingCode`
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The date when the invoice item adjustment is applied, in `yyyy-mm-dd` format. This date must be the same as the invoice's date or later. **Character limit**: 29
	AdjustmentDate time.Time `json:"AdjustmentDate,omitempty"`

	//  A unique string to identify an individual invoice item adjustment. **Character limit**: 255 **Values**: automatically generated
	AdjustmentNumber string `json:"AdjustmentNumber,omitempty"`

	//  The amount of the invoice item adjustment. The value of Amount must be positive. Use the required parameter Type to either credit or charge (debit) this amount on the invoice. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`

	//  The ID of the Zuora user who canceled the invoice item adjustment. Zuora generates this read-only field only if the adjustment is canceled. **Character limit**: 32 **Values**: automatically generated
	CancelledById string `json:"CancelledById,omitempty"`

	//  The date when the invoice item adjustment is canceled. Zuora generates this read-only field if this adjustment is canceled. **Character limit**: 29 **Values**: automatically generated
	CancelledDate time.Time `json:"CancelledDate,omitempty"`

	//  Use this field to record comments about the invoice item adjustment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The user ID of the person who created the invoice item. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date the invoice item was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The name of the account that owns the associated invoice.  **Character limit**: 50  **Values**: inherited from `Account.Name`  **Note**: This value changes if `Account.Name` is updated. The values of `UpdatedById` and `UpdatedDate` for the `InvoiceItemAdjustment` do not change when `Account.Name` is updated.
	CustomerName string `json:"CustomerName,omitempty"`

	//  The unique account number of the customer's account.  **Character limit**: 50  **Values**: inherited from `Account.AccountNumber`  **Note**: This value changes if `Account.AccountNumber` is updated. The values of `UpdatedById` and `UpdatedDate` for the `InvoiceItemAdjustment` do not change when `Account.AccountNumber` is updated.
	CustomerNumber string `json:"CustomerNumber,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The ID of the invoice associated with the adjustment. The adjustment invoice item is in this invoice. This field is optional if you specify a value for the `InvoiceNumber` field. **Character limit**: 3 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  The name of the invoice item's charge. This field is required in the Query call, but is inherited in other calls. **Character limit**: 255 **Values**: inherited from `InvoiceItem.ChargeName`
	InvoiceItemName string `json:"InvoiceItemName,omitempty"`

	//  The unique identification number for the invoice that contains the invoice item. This field is optional if you specify a value for the `InvoiceId` field. **Character limit**: 32 **Values**: a valid invoice number
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  A code to reference an object external to Zuora. For example, you can use this field to reference a case number in an external system. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  The end date of the service period associated with the invoice item. Service ends one second before the date in this value.  **Character limit**: 29
	ServiceEndDate time.Time `json:"ServiceEndDate,omitempty"`

	//  The start date of the service period associated with the invoice item. Service ends one second before the date in this value.  **Character limit**: 29
	ServiceStartDate time.Time `json:"ServiceStartDate,omitempty"`

	//  The ID of the item specified in the SourceType field. **Character limit**: 32 **Values**: a valid invoice item ID or taxation item ID
	SourceId string `json:"SourceId,omitempty"`

	//  The type of adjustment. **Character limit**: 13 **Values**: InvoiceDetail, Tax
	SourceType string `json:"SourceType,omitempty"`

	//  The status of the invoice item adjustment. This field is required in the Query call, but is automatically generated in other calls. **Character limit**: 9 **Values**: Canceled, Processed
	Status string `json:"Status,omitempty"`

	//  Indicates the status of the adjustment's transfer to an external accounting system, such as NetSuite. **Character limit**: 10 **Values**: Processing, Yes, Error, Ignore
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//  Query Filter
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the invoice item. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice item was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoicePayment

type ProxyGetInvoicePayment struct {

	//  The amount of the payment. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`

	//  The user ID of the person who created the invoice payment. **Character limit**: 32 **V****alues**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the invoice payment was generated. **Character limit**: 29 **V****alues**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The unique ID of the invoice associated with this invoice payment. **Character limit**: 32 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  The unique ID of the payment associated with this invoice payment. **Character limit**: 32 **V****alues**: a valid payment ID
	PaymentId string `json:"PaymentId,omitempty"`

	// Specifies the amount of a refund applied against this InvoicePayment. **Character limit**: 16 **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount,omitempty"`

	//  The ID of the user who last updated the invoice payment. **Character limit**: 32 **V****alues**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice payment was last updated. **Character limit**: 29 **V****alues**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoiceSplit

type ProxyGetInvoiceSplit struct {

	// The ID of the Zuora user who created the InvoiceSplit object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the InvoiceSplit object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The ID of the original invoice that the InvoiceSplit object splits. This field becomes read-only after the InvoiceSplit object is created. **Character limit**: 32 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId,omitempty"`

	// The ID of the Zuora user who last updated the invoice split. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date when the invoice split was last updated. **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetInvoiceSplitItem

type ProxyGetInvoiceSplitItem struct {

	//  The ID of the Zuora user who created the InvoiceSplitItem object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the InvoiceSplitItem was created. **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The generation date of the new split invoice, in `yyyy-mm-dd` format. **Character limit**: 29
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//  The new invoice after the split. **Character limit**: 32 **Values**: automatically generated
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  The ID of the invoice split associated with the individual invoice split item. **Character limit**: 32 **Values**: a valid invoice split ID
	InvoiceSplitId string `json:"InvoiceSplitId,omitempty"`

	//  Indicates when the customer pays the split invoice. **Values**: a valid, active payment term
	PaymentTerm string `json:"PaymentTerm,omitempty"`

	//  Specifies the percentage of the original invoice that you want to be the balance of the split invoice. The total of the SplitPercentage field values for all of the InvoiceSplitItem objects in an InvoiceSplit object must equal 100. **Values**:
	SplitPercentage float64 `json:"SplitPercentage,omitempty"`

	//  The ID of the Zuora user who last updated the invoice split. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the invoice split was last updated. **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetPayment

type ProxyGetPayment struct {

	//  The unique account ID for the customer that the payment is for. **Character limit**: 32 **Values**: a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The amount of the payment. **Character limit**: 16 **Values**: a valid currency value
	Amount float64 `json:"Amount,omitempty"`

	//  The amount of the payment to apply to a credit balance. This field is required in the Create call when the `AppliedInvoiceAmount` field value is null. **Character limit**: 16 **Values**: a valid currency value
	AppliedCreditBalanceAmount float64 `json:"AppliedCreditBalanceAmount,omitempty"`

	//  The authorization transaction ID from the payment gateway. Use this field for electronic payments, such as credit cards. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	AuthTransactionId string `json:"AuthTransactionId,omitempty"`

	//  The first six digits of the credit card or debit card used for the payment, when applicable. **Character limit**: 6 **Values**: automatically generated
	BankIdentificationNumber string `json:"BankIdentificationNumber,omitempty"`

	//  The date when the payment was canceled. **Character limit**: 29 **Values**: automatically generated
	CancelledOn time.Time `json:"CancelledOn,omitempty"`

	//  Additional information related to the payment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The user ID of the person who created the `Payment` object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the Payment object was created in the Zuora system. **Character limit**: 29 **Values** automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The date when the payment takes effect, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//  Name of the gateway instance that processes the payment. When creating a Payment, this must be a valid gateway instance name and this gateway must support the specific payment method. If not specified, the default gateway on the Account will be used.
	Gateway string `json:"Gateway,omitempty"`

	//  A merchant-specified natural key value that can be passed to the electronic payment gateway when a payment is created. If not specified, the PaymentNumber will be passed in instead. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	GatewayOrderId string `json:"GatewayOrderId,omitempty"`

	//  The message returned from the payment gateway for the payment. This message is gateway-dependent. **Character limit**: 500 **Values**: automatically generated
	GatewayResponse string `json:"GatewayResponse,omitempty"`

	//  The code returned from the payment gateway for the payment. This code is gateway-dependent. **Character limit**: 20 **Values**: automatically generated
	GatewayResponseCode string `json:"GatewayResponseCode,omitempty"`

	//  The status of the payment in the gateway; use for reconciliation. **Character limit**: 19 **Values**: automatically generated
	GatewayState string `json:"GatewayState,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The date when a payment was marked and waiting for batch submission to the payment process. **Character limit**: 29 **Values**: automatically generated
	MarkedForSubmissionOn time.Time `json:"MarkedForSubmissionOn,omitempty"`

	//  The ID of the payment method used for the payment. Required for Create. **Character limit**: 32 **Values**: automatically generated
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//  The unique ID of the payment method snapshot which is a copy of the particular Payment Method used in a transaction. **Character limit**: 32 **Values**: a valid payment method snapshot ID
	PaymentMethodSnapshotId string `json:"PaymentMethodSnapshotId,omitempty"`

	//  The unique identification number of a payment. For example: P-00000028. **Character limit**: 32 **Values**: automatically generated
	PaymentNumber string `json:"PaymentNumber,omitempty"`

	//  The transaction ID returned by the payment gateway. Use this field to reconcile payments between your gateway and Z-Payments. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  The amount of the payment that is refunded. This field is null if no refund is made against the payment. **Character limit**: 16 **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount,omitempty"`

	//  The transaction ID returned by the payment gateway if there is an additional transaction for the payment. Use this field to reconcile payments between your gateway and Zuora Payments. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	SecondPaymentReferenceId string `json:"SecondPaymentReferenceId,omitempty"`

	//  The date when the payment was settled in the payment processor. This field is used by the Spectrum gateway only and not applicable to other gateways. **Character limit**: 29 **Values**: automatically generated
	SettledOn time.Time `json:"SettledOn,omitempty"`

	//  A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi. **Character limit**: 35 **Values**: `[SDMerchantName]*[SDProductionInfo]`
	SoftDescriptor string `json:"SoftDescriptor,omitempty"`

	//  A payment gateway-specific field that maps to Zuora for the gateways, Orbital, Vantiv and Verifi. **Character limit**: 20 **Values**: `[SDPhone]`
	SoftDescriptorPhone string `json:"SoftDescriptorPhone,omitempty"`

	//  Indicates how the payment was created, whether through API, manually, import, or payment run. **Character limit**: **Values**: Payment Run, Import, Manually, and API
	Source string `json:"Source,omitempty"`

	//  Name of the source. **Character limit**: **Values**: Payment Run number or a file name.
	SourceName string `json:"SourceName,omitempty"`

	//  The status of the payment in Zuora. The value depends on the type of payment. **Character limit**: 11 **Values**: one of the following:  -  Electronic payments: `Processed`, `Error`, `Voided`  -  External payments: `Processed`, `Canceled` * Update of status can change value from `Processed` to `Canceled` when the payment type is external.
	Status string `json:"Status,omitempty"`

	//  The date when the payment was submitted. **Character limit:** 29 **Values**: automatically generated
	SubmittedOn time.Time `json:"SubmittedOn,omitempty"`

	//  Indicates if the payment was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite. **Character limit**: 11 **Values**: `Processing`, `Yes`, `Error`, `Ignore`
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//  Indicates if the payment is external or electronic. **Character limit**: 10 **Values**: `External`, `Electronic`
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the payment. **Character limit**: **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the payment was last updated. **Character limit**: **Values** **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetPaymentMethod

type ProxyGetPaymentMethod struct {

	//  The ID of the customer account associated with this payment method. This field is not required for the account ID.
	AccountId string `json:"AccountId,omitempty"`

	//  The nine-digit routing number or ABA number used by banks. Use this field for ACH payment methods. **Character limit**: 9 **Values**: a string of 9 characters or fewer
	AchAbaCode string `json:"AchAbaCode,omitempty"`

	//  The name of the account holder, which can be either a person or a company. Use this field for ACH payment methods. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	AchAccountName string `json:"AchAccountName,omitempty"`

	//  This is a masked displayable version of the ACH account number, used for security purposes. For example: `XXXXXXXXX54321`. Use this field for ACH payment methods. **Character limit**: 32 **Values**: automatically generated
	AchAccountNumberMask string `json:"AchAccountNumberMask,omitempty"`

	//  The type of bank account associated with the ACH payment. Use this field for ACH payment methods. **Character limit**: 16 **Values**:  - `BusinessChecking` - `Checking` - `Saving`
	AchAccountType string `json:"AchAccountType,omitempty"`

	//  Line 1 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress1 string `json:"AchAddress1,omitempty"`

	//  Line 2 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress2 string `json:"AchAddress2,omitempty"`

	//  The name of the bank where the ACH payment account is held. Use this field for ACH payment methods. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	AchBankName string `json:"AchBankName,omitempty"`

	//  Specifies whether a payment method is available in Zuora. The default value is `false`. **Character limit**: 5 **Values**: `true`, `false`
	Active bool `json:"Active,omitempty"`

	//  The branch code of the bank used for direct debit. Use this field for direct debit payment methods. **Character limit**: 10 **Values**:  string of 10 characters or fewer
	BankBranchCode string `json:"BankBranchCode,omitempty"`

	// The check digit in the international bank account number, which confirms the validity of the account. Use this field for direct debit payment methods. **Character limit**: 4 **Values**:  string of 4 characters or fewer
	BankCheckDigit string `json:"BankCheckDigit,omitempty"`

	//  The city of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:70 **Values**:  string of 70 characters or fewer
	BankCity string `json:"BankCity,omitempty"`

	//  The sort code or number that identifies the bank. This is also known as the sort code. This field is required for direct debit payment methods. **Character limit**: 18 **Values**:  string of 18 characters or fewer
	BankCode string `json:"BankCode,omitempty"`

	//  The first six digits of the payment method's number, such as the credit card number or account number. Banks use this number to identify a payment method. **Character limit**: 6 **Values**:  string of 6 characters or fewer
	BankIdentificationNumber string `json:"BankIdentificationNumber,omitempty"`

	//  The name of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:80 **Values**:  string of 80 characters or fewer
	BankName string `json:"BankName,omitempty"`

	//  The zip code or postal code of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:20 **Values**:  string of 20 characters or fewer
	BankPostalCode string `json:"BankPostalCode,omitempty"`

	//  The name of the street of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:60 **Values**:  string of 60 characters or fewer
	BankStreetName string `json:"BankStreetName,omitempty"`

	//  The number of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:10 **Values**:  string of 10 characters or fewer
	BankStreetNumber string `json:"BankStreetNumber,omitempty"`

	//  The name on the direct debit bank account. Use this field for direct debit payment methods. **Character limit**: 60 **Values**:  string of 60 characters or fewer
	BankTransferAccountName string `json:"BankTransferAccountName,omitempty"`

	//  This is a masked displayable version of the bank account number, used for security purposes. For example: `XXXXXXXXX54321`. **Character limit**: 32 **Values**: automatically generated
	BankTransferAccountNumberMask string `json:"BankTransferAccountNumberMask,omitempty"`

	//  The type of the customer's bank account. Use this field for direct debit payment methods. **Character limit**: 11 **Values**: `DirectDebit`
	BankTransferAccountType string `json:"BankTransferAccountType,omitempty"`

	//  Specifies the type of direct debit transfer. The value of this field is dependent on the country of the user. Use this field is used for direct debit payment methods. **Character limit**: 20 **Values**:  - `AutomatischIncasso` (NL) - `LastschriftDE` (Germany) - `LastschriftAT` (Austria) - `DemandeDePrelevement` (FR) - `DirectDebitUK` (UK) - `Domicil` (Belgium) - `LastschriftCH` (CH) - `RID` (Italy) - `OrdenDeDomiciliacion` (Spain)
	BankTransferType string `json:"BankTransferType,omitempty"`

	//  The business identification code for Swiss direct payment methods that use the Global Collect payment gateway. Use this field only for direct debit payments in Switzerland with Global Collect. **Character limit**: 11 **Values**: string of 11 characters or fewer
	BusinessIdentificationCode string `json:"BusinessIdentificationCode,omitempty"`

	//  The city of the customer's address. Use this field for direct debit payment methods. **Character limit**:80 **Values**:  string of 80 characters or fewer
	City string `json:"City,omitempty"`

	//  The two-letter country code of the customer's address. Use this field for direct debit payment methods. **Character limit**: 2 **Values**: a valid country code
	Country string `json:"Country,omitempty"`

	//  The user ID of the person who created the `PaymentMethod` object when there is a login user in the user session. In Hosted Payment Method and Zuora Checkout pages, this field is set to 3 as there is no login user to initiate a user session. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `PaymentMethod` object was created in the Zuora system. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The first line of the card holder's address, which is often a street address or business name. Use this field for credit card and direct debit payment methods. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	CreditCardAddress1 string `json:"CreditCardAddress1,omitempty"`

	//  The second line of the card holder's address. Use this field for credit card and direct debit payment methods. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	CreditCardAddress2 string `json:"CreditCardAddress2,omitempty"`

	//  The city of the card holder's address. Use this field for credit card and direct debit payment methods **Character limit**: 40 **Values**: a string of 40 characters or fewer
	CreditCardCity string `json:"CreditCardCity,omitempty"`

	//  The country of the card holder's address.
	CreditCardCountry string `json:"CreditCardCountry,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods. **Character limit**: 2 **Values**: a two-digit number, 01 - 12
	CreditCardExpirationMonth int32 `json:"CreditCardExpirationMonth,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods. **Character limit**: 4 **Values**: a four-digit number
	CreditCardExpirationYear int32 `json:"CreditCardExpirationYear,omitempty"`

	//  The full name of the card holder. Use this field for credit card and direct debit payment methods. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	CreditCardHolderName string `json:"CreditCardHolderName,omitempty"`

	//  A masked version of the credit or debit card number. **Character limit**: 32 **Values**: automatically generated
	CreditCardMaskNumber string `json:"CreditCardMaskNumber,omitempty"`

	//  The billing address's zip code. This field is required only when you define a debit card or credit card payment. **Character limit**: 20 **Values**: a string of 20 characters or fewer
	CreditCardPostalCode string `json:"CreditCardPostalCode,omitempty"`

	//  The billing address's state. Use this field is if the `CreditCardCountry` value is either Canada or the US. State names must be spelled in full.
	CreditCardState string `json:"CreditCardState,omitempty"`

	//  The type of credit card or debit card. This field is required only when you define a debit card or credit card payment. **Character limit**: 32 **Values**: `AmericanExpress`, `Discover`, `MasterCard`, `Visa`
	CreditCardType string `json:"CreditCardType,omitempty"`

	//  The session ID of the user when the `PaymentMethod` was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently only Verifi supports this field. **Character limit**: 255 **Values**:
	DeviceSessionId string `json:"DeviceSessionId,omitempty"`

	//  An email address for the payment method in addition to the bill to contact email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	Email string `json:"Email,omitempty"`

	//  Indicates if the customer has an existing mandate or a new mandate. A mandate is a signed authorization for UK and NL customers. When you are migrating mandates from another system, be sure to set this field correctly. If you indicate that a new mandate is an existing mandate or vice-versa, then transactions fail. This field is used only for the direct debit payment method. **Character limit**: 3 **Values**: `Yes`, `No`
	ExistingMandate string `json:"ExistingMandate,omitempty"`

	//  The customer's first name. This field is used only for the direct debit payment method. **Character limit**: 30 **Values**: a string of 30 characters or fewer
	FirstName string `json:"FirstName,omitempty"`

	//  The International Bank Account Number. This field is used only for the direct debit payment method. **Character limit**: 42 **Values**: a string of 42 characters or fewer
	IBAN string `json:"IBAN,omitempty"`

	//  The IP address of the user when the payment method was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently PayPal, CyberSource, Authorize.Net, and Verifi support this field. **Character limit**: 15 **Values**: a string of 15 characters or fewer
	IPAddress string `json:"IPAddress,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The date of the last failed attempt to collect payment with this payment method. **Character limit**: 29 **Values**: automatically generated
	LastFailedSaleTransactionDate time.Time `json:"LastFailedSaleTransactionDate,omitempty"`

	//  The customer's last name. This field is used only for the direct debit payment method. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The date of the most recent transaction. **Character limit**: 29 **Values**: a valid date and time value
	LastTransactionDateTime time.Time `json:"LastTransactionDateTime,omitempty"`

	//  The status of the most recent transaction. **Character limit**: 39 **Values**: automatically generated
	LastTransactionStatus string `json:"LastTransactionStatus,omitempty"`

	//  The date when the mandate was created, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 29
	MandateCreationDate time.Time `json:"MandateCreationDate,omitempty"`

	//  The ID of the mandate. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 36 **Values**: a string of 36 characters or fewer
	MandateID string `json:"MandateID,omitempty"`

	//  Indicates if  the mandate was received. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 3 **Values**: `Yes`, `No `(case-sensitive)
	MandateReceived string `json:"MandateReceived,omitempty"`

	//  The date when the mandate was last updated, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 29
	MandateUpdateDate time.Time `json:"MandateUpdateDate,omitempty"`

	//  Specifies the number of allowable consecutive failures Zuora attempts with the payment method before stopping. **Values**: a valid number
	MaxConsecutivePaymentFailures int32 `json:"MaxConsecutivePaymentFailures,omitempty"`

	// The name of the payment method.
	Name string `json:"Name,omitempty"`

	//  The number of consecutive failed payment for this payment method. It is reset to 0 upon successful payment. You can use the API to update the field value to 0. **Character limit**: **Values**: a positive whole number
	NumConsecutiveFailures int32 `json:"NumConsecutiveFailures,omitempty"`

	//  Specifies the status of the payment method. It is set to Active on creation. **Character limit**: 6 **Values**: `Active` or `Closed`
	PaymentMethodStatus string `json:"PaymentMethodStatus,omitempty"`

	//  The retry interval setting, which prevents making a payment attempt if the last failed attempt was within the last specified number of hours. This field is required if the `UseDefaultRetryRule` field value is set to `false`. **Character limit**: 4 **Values**: a whole number between 1 and 1000, exclusive
	PaymentRetryWindow int32 `json:"PaymentRetryWindow,omitempty"`

	//  The PayPal billing agreement ID, which is a contract between two PayPal accounts. Typically, the selling party initiates a request to create a BAID, and sends it to buying party for acceptance. The seller can keep track of the BAID and use it for future charges against the buyer. This field is required when defining a PayPal payment method. **Character limit**: 64 **Values**: a string of 64 characters or fewer
	PaypalBaid string `json:"PaypalBaid,omitempty"`

	//  The email address associated with the account holder's PayPal account or of the PayPal account of the person paying for the service. This field is required only when you define a PayPal payment method. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	PaypalEmail string `json:"PaypalEmail,omitempty"`

	//  PayPal's Adaptive Payments API key. Zuora does not create this key, nor does it call PayPal to generate it. You must use PayPal's Adaptive Payments' API to generate this key, and then pass it to Zuora. Zuora uses this key to authorize future payments to PayPal's Adaptive Payments API. This field is required when you use PayPal Adaptive Payments gateway. **Character limit**: 32 **Values**: a valid PayPal Adaptive Payment pre-approval key
	PaypalPreapprovalKey string `json:"PaypalPreapprovalKey,omitempty"`

	//  Specifies the PayPal gateway: PayFlow Pro (Express Checkout) or Adaptive Payments. This field is required when you use PayPal Adaptive Payments or Payflow Pro (Express Checkout) gateways. **Character limit**: 32 **Values**: `ExpressCheckout`, `AdaptivePayments`
	PaypalType string `json:"PaypalType,omitempty"`

	//  The phone number that the account holder registered with the bank. This field is used for credit card validation when passing to a gateway. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	Phone string `json:"Phone,omitempty"`

	//  The zip code of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 20 **Values**: a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  A gateway unique identifier that replaces sensitive payment method data. SecondTokenId is conditionally required only when TokenID is being used to represent a gateway customer profile. SecondTokenId is used in the CC Reference Transaction payment method. **Character limit**: 64 **Values**: a string of 64 characters or fewer
	SecondTokenId string `json:"SecondTokenId,omitempty"`

	//  The state of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	State string `json:"State,omitempty"`

	//  The street name of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	StreetName string `json:"StreetName,omitempty"`

	//  The street number of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 30 **Values**: a string of 30 characters or fewer
	StreetNumber string `json:"StreetNumber,omitempty"`

	//  A gateway unique identifier that replaces sensitive payment method data or represents a gateway's unique customer profile. When TokenId is used to represent a customer profile, then SecondTokenId is conditionally required for representing the underlying tokenized payment method. TokenId is required for the CC Reference Transaction payment method. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TokenId string `json:"TokenId,omitempty"`

	//  The number of error payments that used this payment method. **Character limit**: **Values**: automatically generated
	TotalNumberOfErrorPayments int32 `json:"TotalNumberOfErrorPayments,omitempty"`

	//  The number of successful payments that used this payment method. **Character limit**: **Values**: automatically generated
	TotalNumberOfProcessedPayments int32 `json:"TotalNumberOfProcessedPayments,omitempty"`

	// The type of payment method.
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the payment method. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the payment method was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  Determines whether to use the default retry rules configured in the Zuora Payments settings. Set this to `true` to use the default retry rules. Set this to `false` to set the specific rules for this payment method. If you set this value to `false`, then the fields, `PaymentRetryWindow` and `MaxConsecutivePaymentFailures`, are required. **Character limit**: 5 **Values**: `t“rue`, `false`
	UseDefaultRetryRule bool `json:"UseDefaultRetryRule,omitempty"`
}

type ProxyGetPaymentMethodSnapshot

type ProxyGetPaymentMethodSnapshot struct {

	// The ID of the customer account associated with this payment method.
	AccountId string `json:"AccountId,omitempty"`

	// The nine-digit routing number or ABA number used by banks. Applicable to ACH payment methods.
	AchAbaCode string `json:"AchAbaCode,omitempty"`

	// The name of the account holder, which can be either a person or a company. Applicable to ACH payment methods.
	AchAccountName string `json:"AchAccountName,omitempty"`

	// This is a masked displayable version of the ACH account number, used for security purposes. For example: `XXXXXXXXX54321`.
	AchAccountNumberMask string `json:"AchAccountNumberMask,omitempty"`

	// The type of bank account associated with the ACH payment.
	AchAccountType string `json:"AchAccountType,omitempty"`

	// The name of the bank where the ACH payment account is held.
	AchBankName string `json:"AchBankName,omitempty"`

	// The branch code of the bank used for direct debit.
	BankBranchCode string `json:"BankBranchCode,omitempty"`

	// The check digit in the international bank account number, which confirms the validity of the account. Applicable to direct debit payment methods.
	BankCheckDigit string `json:"BankCheckDigit,omitempty"`

	// The city of the direct debit bank.
	BankCity string `json:"BankCity,omitempty"`

	// The sort code or number that identifies the bank. This is also known as the sort code.
	BankCode string `json:"BankCode,omitempty"`

	// The first six digits of the payment method's number, such as the credit card number or account number. Banks use this number to identify a payment method.
	BankIdentificationNumber string `json:"BankIdentificationNumber,omitempty"`

	// The name of the direct debit bank.
	BankName string `json:"BankName,omitempty"`

	// The zip code or postal code of the direct debit bank.
	BankPostalCode string `json:"BankPostalCode,omitempty"`

	// The name of the street of the direct debit bank.
	BankStreetName string `json:"BankStreetName,omitempty"`

	// The number of the direct debit bank.
	BankStreetNumber string `json:"BankStreetNumber,omitempty"`

	// The name on the direct debit bank account.
	BankTransferAccountName string `json:"BankTransferAccountName,omitempty"`

	// This is a masked displayable version of the bank account number, used for security purposes. For example: `XXXXXXXXX54321`.
	BankTransferAccountNumberMask string `json:"BankTransferAccountNumberMask,omitempty"`

	// The type of the customer's bank account. Applicable to direct debit payment methods.
	BankTransferAccountType string `json:"BankTransferAccountType,omitempty"`

	// Specifies the type of direct debit transfer. The value of this field is dependent on the country of the user.  Possible Values:    * `AutomatischIncasso` (NL)  * `LastschriftDE` (Germany)  * `LastschriftAT` (Austria)  * `DemandeDePrelevement` (FR)  * `DirectDebitUK` (UK)  * `Domicil` (Belgium)  * `LastschriftCH` (CH)  * `RID` (Italy)  * `OrdenDeDomiciliacion` (Spain)
	BankTransferType string `json:"BankTransferType,omitempty"`

	// The business identification code for Swiss direct payment methods that use the Global Collect payment gateway. Only applicable to direct debit payments in Switzerland with Global Collect.
	BusinessIdentificationCode string `json:"BusinessIdentificationCode,omitempty"`

	// The city of the customer's address. Applicable to debit payment methods.
	City string `json:"City,omitempty"`

	// The two-letter country code of the customer's address. Applicable to direct debit payment methods.
	Country string `json:"Country,omitempty"`

	// The first line of the card holder's address, which is often a street address or business name. Applicable to credit card and direct debit payment methods.
	CreditCardAddress1 string `json:"CreditCardAddress1,omitempty"`

	// The second line of the card holder's address. Applicable to credit card and direct debit payment methods.
	CreditCardAddress2 string `json:"CreditCardAddress2,omitempty"`

	// The city of the card holder's address. Applicable to credit card and direct debit payment methods.
	CreditCardCity string `json:"CreditCardCity,omitempty"`

	// The country of the card holder's address.
	CreditCardCountry string `json:"CreditCardCountry,omitempty"`

	// The expiration month of the credit card or debit card. Applicable to credit card and direct debit payment methods.
	CreditCardExpirationMonth int32 `json:"CreditCardExpirationMonth,omitempty"`

	// The expiration month of the credit card or debit card. Applicable to credit card and direct debit payment methods.
	CreditCardExpirationYear int32 `json:"CreditCardExpirationYear,omitempty"`

	// The full name of the card holder. Applicable to credit card and direct debit payment methods.
	CreditCardHolderName string `json:"CreditCardHolderName,omitempty"`

	// A masked version of the credit or debit card number.
	CreditCardMaskNumber string `json:"CreditCardMaskNumber,omitempty"`

	// The billing address's zip code.
	CreditCardPostalCode string `json:"CreditCardPostalCode,omitempty"`

	// The billing address's state. Applicable if `CreditCardCountry` is either Canada or the US.
	CreditCardState string `json:"CreditCardState,omitempty"`

	// The type of credit card or debit card.
	CreditCardType string `json:"CreditCardType,omitempty"`

	// The session ID of the user when the `PaymentMethod` was created or updated.
	DeviceSessionId string `json:"DeviceSessionId,omitempty"`

	// An email address for the payment method in addition to the bill to contact email address.
	Email string `json:"Email,omitempty"`

	// Indicates if the customer has an existing mandate or a new mandate. Only applicable to direct debit payment methods.
	ExistingMandate string `json:"ExistingMandate,omitempty"`

	// The customer's first name. Only applicable to direct debit payment methods.
	FirstName string `json:"FirstName,omitempty"`

	// The International Bank Account Number. Only applicable to direct debit payment methods.
	IBAN string `json:"IBAN,omitempty"`

	// The IP address of the user when the payment method was created or updated.
	IPAddress string `json:"IPAddress,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// The date of the last failed attempt to collect payment with this payment method.
	LastFailedSaleTransactionDate time.Time `json:"LastFailedSaleTransactionDate,omitempty"`

	// The customer's last name. Only applicable to direct debit payment methods.
	LastName string `json:"LastName,omitempty"`

	// The date of the most recent transaction.
	LastTransactionDateTime time.Time `json:"LastTransactionDateTime,omitempty"`

	// The status of the most recent transaction.
	LastTransactionStatus string `json:"LastTransactionStatus,omitempty"`

	// The date when the mandate was created, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. Only applicable to direct debit payment methods.
	MandateCreationDate time.Time `json:"MandateCreationDate,omitempty"`

	// The ID of the mandate. A mandate is a signed authorization for UK and NL customers. Only applicable to direct debit payment methods.
	MandateID string `json:"MandateID,omitempty"`

	// Indicates if  the mandate was received. A mandate is a signed authorization for UK and NL customers. Only applicable to direct debit payment methods.
	MandateReceived string `json:"MandateReceived,omitempty"`

	// The date when the mandate was last updated, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. Only applicable to direct debit payment methods.
	MandateUpdateDate time.Time `json:"MandateUpdateDate,omitempty"`

	// The number of allowable consecutive failures Zuora attempts with the payment method before stopping.
	MaxConsecutivePaymentFailures int32 `json:"MaxConsecutivePaymentFailures,omitempty"`

	// The name of the payment method.
	Name string `json:"Name,omitempty"`

	// The number of consecutive failed payment for the payment method.
	NumConsecutiveFailures int32 `json:"NumConsecutiveFailures,omitempty"`

	// Object identifier of the payment method.
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	// Specifies the status of the payment method.
	PaymentMethodStatus string `json:"PaymentMethodStatus,omitempty"`

	// The retry interval setting, which prevents making a payment attempt if the last failed attempt was within the last specified number of hours.
	PaymentRetryWindow int32 `json:"PaymentRetryWindow,omitempty"`

	// The PayPal billing agreement ID, which is a contract between two PayPal accounts.
	PaypalBaid string `json:"PaypalBaid,omitempty"`

	// The email address associated with the account holder's PayPal account or of the PayPal account of the person paying for the service.
	PaypalEmail string `json:"PaypalEmail,omitempty"`

	// PayPal's Adaptive Payments API key.
	PaypalPreapprovalKey string `json:"PaypalPreapprovalKey,omitempty"`

	// Specifies the PayPal gateway: PayFlow Pro (Express Checkout) or Adaptive Payments.
	PaypalType string `json:"PaypalType,omitempty"`

	// The phone number that the account holder registered with the bank. This field is used for credit card validation when passing to a gateway.
	Phone string `json:"Phone,omitempty"`

	// The zip code of the customer's address. Only applicable to direct debit payment methods.
	PostalCode string `json:"PostalCode,omitempty"`

	// A gateway unique identifier that replaces sensitive payment method data. Applicable to CC Reference Transaction payment methods.
	SecondTokenId string `json:"SecondTokenId,omitempty"`

	// The state of the customer's address. Only applicable to direct debit payment methods.
	State string `json:"State,omitempty"`

	// The street name of the customer's address. Only applicable to direct debit payment methods.
	StreetName string `json:"StreetName,omitempty"`

	// The street number of the customer's address. Only applicable to direct debit payment methods.
	StreetNumber string `json:"StreetNumber,omitempty"`

	// A gateway unique identifier that replaces sensitive payment method data or represents a gateway's unique customer profile. Applicable to CC Reference Transaction payment methods.
	TokenId string `json:"TokenId,omitempty"`

	// The number of error payments that used this payment method.
	TotalNumberOfErrorPayments int32 `json:"TotalNumberOfErrorPayments,omitempty"`

	// The number of successful payments that used this payment method.
	TotalNumberOfProcessedPayments int32 `json:"TotalNumberOfProcessedPayments,omitempty"`

	// The type of payment method.
	Type_ string `json:"Type,omitempty"`

	// Determines whether to use the default retry rules configured in the Zuora Payments settings.
	UseDefaultRetryRule bool `json:"UseDefaultRetryRule,omitempty"`
}

type ProxyGetPaymentMethodTransactionLog

type ProxyGetPaymentMethodTransactionLog struct {

	//
	Gateway string `json:"Gateway,omitempty"`

	//
	GatewayReasonCode string `json:"GatewayReasonCode,omitempty"`

	//
	GatewayReasonCodeDescription string `json:"GatewayReasonCodeDescription,omitempty"`

	//
	GatewayTransactionType string `json:"GatewayTransactionType,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//
	PaymentMethodType string `json:"PaymentMethodType,omitempty"`

	//
	RequestString string `json:"RequestString,omitempty"`

	//
	ResponseString string `json:"ResponseString,omitempty"`

	//
	TransactionDate time.Time `json:"TransactionDate,omitempty"`

	//
	TransactionId string `json:"TransactionId,omitempty"`
}

type ProxyGetPaymentTransactionLog

type ProxyGetPaymentTransactionLog struct {

	//
	AVSResponseCode string `json:"AVSResponseCode,omitempty"`

	//
	BatchId string `json:"BatchId,omitempty"`

	//
	CVVResponseCode string `json:"CVVResponseCode,omitempty"`

	//
	Gateway string `json:"Gateway,omitempty"`

	//
	GatewayReasonCode string `json:"GatewayReasonCode,omitempty"`

	//
	GatewayReasonCodeDescription string `json:"GatewayReasonCodeDescription,omitempty"`

	//
	GatewayState string `json:"GatewayState,omitempty"`

	//
	GatewayTransactionType string `json:"GatewayTransactionType,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//
	PaymentId string `json:"PaymentId,omitempty"`

	//
	RequestString string `json:"RequestString,omitempty"`

	//
	ResponseString string `json:"ResponseString,omitempty"`

	//
	TransactionDate time.Time `json:"TransactionDate,omitempty"`

	//
	TransactionId string `json:"TransactionId,omitempty"`
}

type ProxyGetProduct

type ProxyGetProduct struct {

	//  Controls whether to allow your users to add or remove features while creating or amending a subscription. **Character** **limit**: n/a **Values**: true, false (default)
	AllowFeatureChanges bool `json:"AllowFeatureChanges,omitempty"`

	//  Category of the product. Used by Zuora Quotes Guided Product Selector. **Character** **limit**: 100 **Values**: One of the following:  - Base Products - Add On Services - Miscellaneous Products
	Category string `json:"Category,omitempty"`

	// The ID of the Zuora user who created the `Product` object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `Product` object was created. **Character limit**: n/a **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  A descriptionof the product. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	// The date when the product expires and can't be subscribed to anymore, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	// The date when the product becomes available and can be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// The name of the product. This information is displayed in the product catalog pages in the web-based UI. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	// The unique SKU for the product. **Character limit**: 50 **Values**: one of the following:  - leave null for automatic generated - an alphanumeric string of 50 characters or fewer
	SKU string `json:"SKU,omitempty"`

	// The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetProductFeature

type ProxyGetProductFeature struct {

	// The ID of the Zuora user who created the Account object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the Account object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  Internal Zuora ID of the product feature. This field is not editable. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	FeatureId string `json:"FeatureId,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  Id of the product to which the feature belongs. This field is not editable. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	ProductId string `json:"ProductId,omitempty"`

	// The ID of the user who last updated the account. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date when the account was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetProductRatePlan

type ProxyGetProductRatePlan struct {

	// The ID of the Zuora user who created the `ProductRatePlan` object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `ProductRatePlan` object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// A description of the product rate plan. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The date when the product rate plan expires and can't be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	//  The date when the product rate plan becomes available and can be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// The name of the product rate plan. The name doesn't have to be unique in a Product Catalog, but the name has to be unique within a product. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	// The ID of the product that contains the product rate plan. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	ProductId string `json:"ProductId,omitempty"`

	// The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetProductRatePlanCharge

type ProxyGetProductRatePlanCharge struct {

	// The accounting code for the charge. Accounting codes group transactions that contain similar accounting attributes. **Character limit**: 100 **Values**: an active accounting code in your Zuora Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	// Specifies the type of charges that you want a specific discount to apply to. All field values are case sensitive: note that these values are in all-caps. **Character limit**: 21 **Values**: one of the following:  - `ONETIME (1)` - `RECURRING (2)` - `USAGE (4)` - `ONETIMERECURRING (3)` - `ONETIMEUSAGE (5)` - `RECURRINGUSAGE (6)` - `ONETIMERECURRINGUSAGE (7)`
	ApplyDiscountTo string `json:"ApplyDiscountTo,omitempty"`

	//  Sets the bill cycle day (BCD) for the charge. The BCD determines which day of the month customer is billed. The BCD value in the account can override the BCD in this object. **Character limit**: 2 **Values**: a valid BCD integer, 1 - 31
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	//  Specifies how to determine the billing day for the charge. **Character limit**: 20 **Values**: one of the following:  - `DefaultFromCustomer` - `SpecificDayofMonth:` - `SubscriptionStartDay` - `ChargeTriggerDay` - `SpecificDayofWeek` **Note**:  - If you set this field to `SpecificDayofMonth`, you must specify which day of the month as the billing day for the charge in the BillCycleDay field. - If you set this field to `SpecificDayofWeek`, you must specify which day of the week as the billing day for the charge in the WeeklyBillCycleDay field.
	BillCycleType string `json:"BillCycleType,omitempty"`

	//  The billing period for the charge. The start day of the billing period is also called the bill cycle day (BCD). **Character limit**: 15 **Values**: one of the following  - `Month` - `Quarter` - `Annual` - `Semi-Annual` - `Specific Months` - `Subscription Term` (This value is in **Limited Availability**.) - `Week` - `Specific Weeks` **Note**: Specify the number of months or weeks in the SpecificBillingPeriod field if you set this field to `Specific Months` or `Specific Weeks`.
	BillingPeriod string `json:"BillingPeriod,omitempty"`

	//  Aligns charges within the same subscription if multiple charges begin on different dates. **Character limit**: 24 **Values**: one of the following:  - `AlignToCharge` - `AlignToSubscriptionStart` - `AlignToTermStart`
	BillingPeriodAlignment string `json:"BillingPeriodAlignment,omitempty"`

	//  The billing timing for the charge. You can choose to bill in advance or in arrears for recurring charge types. This field is not used in one-time or usage based charge types. **Character limit**: **Values**: one of the following:  - `In Advance` - `In Arrears`  This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	BillingTiming string `json:"BillingTiming,omitempty"`

	//  Determines how to calculate charges. Charge models must be individually activated in Zuora Billing administration. **Character limit**: 27 **Values**: one of the following:  - `Discount-Fixed Amount` - `Discount-Percentage` - `Flat Fee Pricing` - `Per Unit Pricing` - `Overage Pricing` - `Tiered Pricing` - `Tiered with Overage Pricing` - `Volume Pricing`
	ChargeModel string `json:"ChargeModel,omitempty"`

	//  Specifies the type of charge. **Character limit**: 9 **Values**: one of the following:  - `OneTime` - `Recurring` - `Usage`
	ChargeType string `json:"ChargeType,omitempty"`

	// The ID of the Zuora user who created the `ProductRatePlanCharge` object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the  `ProductRatePlanCharge` object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The default quantity of units, such as the number of authors in a hosted wiki service. This field is required if you use a per-unit pricing model. **Character limit**: 16 **Values**: a valid quantity value
	DefaultQuantity float64 `json:"DefaultQuantity,omitempty"`

	//  The name of the deferred revenue account for this charge. **Character limit**: 100 **Values**: an active accounting code in your Zuora Chart of Accounts This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	DeferredRevenueAccount string `json:"DeferredRevenueAccount,omitempty"`

	// A description of the charge. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	//  Specifies if the discount applies to just the product rate plan, the entire subscription, or to any activity in the account. **Character limit**: 12 **Values**: one of the following:  - `rateplan` - `subscription`, `account`
	DiscountLevel string `json:"DiscountLevel,omitempty"`

	//  Defines when the charge ends after the charge trigger date. **Values**: one of the following:  - `SubscriptionEnd`: The charge ends on the subscription end date after a specified period based on the trigger date of the charge. This is the default value. - `FixedPeriod`: The charge ends after a specified period based on the trigger date of the charge. If you set this field to `FixedPeriod`, you must specify the length of the period and a period type by defining the `UpToPeriods` and `UpToPeriodsType` fields. **Note**: If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.
	EndDateCondition string `json:"EndDateCondition,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// Specifies the number of units in the base set of units. **Character limit**: 16 **Values**: a positive decimal value
	IncludedUnits float64 `json:"IncludedUnits,omitempty"`

	//
	LegacyRevenueReporting bool `json:"LegacyRevenueReporting,omitempty"`

	// The list price base for the product rate plan charge. **Values**: one of the following:  - `Per Month` - `Per Billing Period` - `Per Week`
	ListPriceBase string `json:"ListPriceBase,omitempty"`

	//  Specifies the maximum number of units for this charge. Use this field and the `MinQuantity` field to create a range of units allowed in a product rate plan charge. **Character limit**: 16 **Values**: a positive decimal value
	MaxQuantity float64 `json:"MaxQuantity,omitempty"`

	// Specifies the minimum number of units for this charge. Use this field and the `MaxQuantity` field to create a range of units allowed in a product rate plan charge. **Character limit**: 16 **Values**: a positive decimal value
	MinQuantity float64 `json:"MinQuantity,omitempty"`

	// The name of the product rate plan charge. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model. **Character limit**: **Values**: a positive whole number
	NumberOfPeriod int64 `json:"NumberOfPeriod,omitempty"`

	// Determines when to calculate overage charges. If the value of the SmoothingMode field is not specified, the value of this field is ignored. **Character limit**: 20 **Values**: one of the following:  - `EndOfSmoothingPeriod`: This option is used by default. The overage is charged at the end of the smoothing period. - `PerBillingPeriod`: The overage is charged on-demand rather than waiting until the end of the smoothing period.
	OverageCalculationOption string `json:"OverageCalculationOption,omitempty"`

	//  Determines whether to credit the customer with unused units of usage. **Character limit**: 20 **Values**: one of the following:  - `NoCredit` - `CreditBySpecificRate`
	OverageUnusedUnitsCreditOption string `json:"OverageUnusedUnitsCreditOption,omitempty"`

	//  Applies an automatic price change when a termed subscription is renewed. **Character limit**: **Values**: one of the following:  - `NoChange` (default) - `SpecificPercentageValue` - `UseLatestProductCatalogPricing`
	PriceChangeOption string `json:"PriceChangeOption,omitempty"`

	//  Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Use this field if you set the value to `SpecificPercentageValue`. **Character limit**: 16 **Values**: a decimal value between -100 and 100
	PriceIncreasePercentage float64 `json:"PriceIncreasePercentage,omitempty"`

	//  The ID of the product rate plan associated with this product rate plan charge. **Character limit**: 32 **Values**: a valid product rate plan ID
	ProductRatePlanId string `json:"ProductRatePlanId,omitempty"`

	//  The name of the recognized revenue account for this charge.  - Required when the Allow Blank Accounting Code setting is No. - Optional when the Allow Blank Accounting Code setting is Yes.  **Character limit**: 100 **Values**: an active accounting code in your Zuora Chart of Accounts This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	RecognizedRevenueAccount string `json:"RecognizedRevenueAccount,omitempty"`

	// Associates this product rate plan charge with a specific revenue recognition code. **Character limit**: 70 **Values**: a valid revenue recognition code
	RevRecCode string `json:"RevRecCode,omitempty"`

	//  Specifies when revenue recognition begins. **Character limit**: 22 **Values**: one of the following:  - `ContractEffectiveDate` - `ServiceActivationDate` - `CustomerAcceptanceDate`
	RevRecTriggerCondition string `json:"RevRecTriggerCondition,omitempty"`

	// Determines when to recognize the revenue for this charge. **Character limit**: 25 **Values**: one of the following:  - `Recognize upon invoicing` - `Recognize daily over time`
	RevenueRecognitionRuleName string `json:"RevenueRecognitionRuleName,omitempty"`

	//  Specifies the smoothing model for an overage smoothing charge model. **Character limit**: 22 **Values**: one of the following:  - `RollingWindow` - `Rollover`
	SmoothingModel string `json:"SmoothingModel,omitempty"`

	//  Customizes the number of months or weeks for the charges billing period. This field is required if you set the value of the BillingPeriod field to `Specific Months` or `Specific Weeks`. **Values**: a positive integer
	SpecificBillingPeriod int64 `json:"SpecificBillingPeriod,omitempty"`

	//  Specifies the tax code for taxation rules. Required when the Taxable field is set to `True`.  **Character limit**: 64  **Values**: a valid tax code  **Note**: This value affects the tax calculation of rate plan charges that come from the `ProductRatePlanCharge`.
	TaxCode string `json:"TaxCode,omitempty"`

	//  Determines how to define taxation for the charge. Required when the Taxable field is set to `True`.  **Character limit**: 12  **Values**: one of the following:  - `TaxExclusive` - `TaxInclusive`  **Note**: This value affects the tax calculation of rate plan charges that come from the `ProductRatePlanCharge`.
	TaxMode string `json:"TaxMode,omitempty"`

	//  Determines whether the charge is taxable. When set to `True`, the TaxMode and TaxCode fields are required when creating or updating th ProductRatePlanCharge object.  **Character limit**: 5  **Values**: `True`, `False`  **Note**: This value affects the tax calculation of rate plan charges that come from the `ProductRatePlanCharge`.
	Taxable bool `json:"Taxable,omitempty"`

	//  Specifies when to start billing the customer for the charge. **Character limit**: 18 **Values**: one of the following:  - `ContractEffective` is the date when the subscription's contract goes into effect and the charge is ready to be billed. - `ServiceActivation` is the date when the services or products for a subscription have been activated and the customers have access. - `CustomerAcceptance` is when the customer accepts the services or products for a subscription.
	TriggerEvent string `json:"TriggerEvent,omitempty"`

	//  Specifies the units to measure usage. **Character limit**: 25 **Values**: a configured unit of measure **Note**: You must specify this field when creating the following charge models:  - Per Unit Pricing - Volume Pricing - Overage Pricing - Tiered Pricing - Tiered with Overage Pricing
	UOM string `json:"UOM,omitempty"`

	//  Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends. **Character limit**: 5 **Values**: a whole number between 0 and 65535, exclusive **Note**:  - You must use this field together with the `UpToPeriodsType` field to specify the time period. This field is applicable only when the `EndDateCondition` field is set to `FixedPeriod`. - If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods int64 `json:"UpToPeriods,omitempty"`

	//  The period type used to define when the charge ends. **Character limit**: -- **Values**: one of the following:  - `Billing Periods` (default) - `Days` - `Weeks` - `Months` - Years **Note**:  - You must use this field together with the `UpToPeriods` field to specify the time period. - This field is applicable only when the `EndDateCondition` field is set to `FixedPeriod`.
	UpToPeriodsType string `json:"UpToPeriodsType,omitempty"`

	// The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	// Determines whether to define a new accounting code for the new discount charge. **Character limit**: 5 **Values**: `True`, `False`
	UseDiscountSpecificAccountingCode bool `json:"UseDiscountSpecificAccountingCode,omitempty"`

	//  Applies the tenant-level percentage uplift value for an automatic price change to a termed subscription's renewal. **Character limit**: 5 **Values**: `true`, `false`
	UseTenantDefaultForPriceChange bool `json:"UseTenantDefaultForPriceChange,omitempty"`

	//  Specifies which day of the week as the bill cycle day (BCD) for the charge. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Values**: one of the following:  - `Sunday` - `Monday` - `Tuesday` - `Wednesday` - `Thursday` - `Friday` - `Saturday`
	WeeklyBillCycleDay string `json:"WeeklyBillCycleDay,omitempty"`
}

type ProxyGetProductRatePlanChargeTier

type ProxyGetProductRatePlanChargeTier struct {

	// The ID of the Zuora user who created the ProductRatePlanChargeTier object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the ProductRatePlanChargeTier object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// The code corresponding to the currency for the tier's price. **Character limit**: 3 **Values**: a valid currency code
	Currency string `json:"Currency,omitempty"`

	// The end number of a range of units for the tier. **Character limit**: 16 **Values**: any positive decimal value
	EndingUnit float64 `json:"EndingUnit,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The price of the tier if the charge is a flat fee, or the price of each unit in the tier if the charge model is tiered pricing. **Character limit**: 16 **Values**: a valid currency value
	Price float64 `json:"Price,omitempty"`

	// Indicates if pricing is a flat fee or is per unit. This field is for tiered and volume pricing models only. **Character limit**: 8 **Values**: `FlatFee`, `PerUnit` **Note:** The values `Flat Fee` and `Per Unit` (with spaces) is valid for create or update calls.
	PriceFormat string `json:"PriceFormat,omitempty"`

	//  The starting number of a range of units for the tier. **Character limit**: 16 **Values**: any positive decimal value
	StartingUnit float64 `json:"StartingUnit,omitempty"`

	//  A unique number that identifies the tier that the price applies to. **Character limit**: 20 **Values**: automatically generated
	Tier int32 `json:"Tier,omitempty"`

	//  The ID of the user who last updated the product rate plan charge tier. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the product rate plan charge tier was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetRatePlan

type ProxyGetRatePlan struct {

	//  The ID of the amendment associated with the rate plan. This field only applies to amendment rate plans. **Character limit**: 32 **Values**: a valid amendment ID
	AmendmentId string `json:"AmendmentId,omitempty"`

	// The type of amendment associated with the rate plan. This field only applies to amendment rate plans.
	AmendmentType string `json:"AmendmentType,omitempty"`

	// The ID of the Zuora user who created the RatePlan object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the `RatePlan` object was last updated. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// The name of the rate plan.  **Values**: inherited from `ProductRatePlan.Name`
	Name string `json:"Name,omitempty"`

	// The ID of the subscription that the rate plan belongs to. **Character limit**: 32 **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The ID of the user who last updated the rate plan. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the rate plan was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetRatePlanCharge

type ProxyGetRatePlanCharge struct {

	// The accounting code for the charge. Accounting codes group transactions that contain similar accounting attributes.  **Character limit**: 100  **Values**: inherited from `ProductRatePlanCharge.AccountingCode`  **Note**: This value changes if `ProductRatePlanCharge.AccountingCode` is updated. The values of `UpdatedById` and `UpdatedDate` for the `RatePlanCharge` do not change when `ProductRatePlanCharge.AccountingCode` is updated.
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  Specifies the type of charges a specific discount applies to. **Character limit**: 21 **Values**: inherited from `ProductRatePlanCharge.ApplyDiscountTo`
	ApplyDiscountTo string `json:"ApplyDiscountTo,omitempty"`

	//  Indicates the charge's billing cycle day (BCD), which is when bill runs generate invoices for charges associated with the product rate plan charge or the account. **Character limit**: 2 **Values**: inherited from `ProductRatePlanCharge.BillCycleDay`
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	//  Specifies how to determine the billing day for the charge. **Character limit**: 20 **Values**: inherited from `ProductRatePlanCharge.BillCycleType` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	BillCycleType string `json:"BillCycleType,omitempty"`

	//  Allows billing period to be overridden on rate plan charge. ****Values**: **inherited from `ProductRatePlanCharge.BillingPeriod` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	BillingPeriod string `json:"BillingPeriod,omitempty"`

	//  Aligns charges within the same subscription if multiple charges begin on different dates. **Character limit**: 24 **Values**: inherited from `ProductRatePlanCharge.BillingPeriodAlignment`
	BillingPeriodAlignment string `json:"BillingPeriodAlignment,omitempty"`

	//  The billing timing for the charge. You can choose to bill in advance or in arrears for recurring charge types. This field is not used in one-time or usage based charge types. **Character limit**: **Values**: one of the following:  - `In Advance` - `In Arrears` **Note:** You can override the value inherited from the Product Rate Plan Charge when a subscription has a recurring charge type. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	BillingTiming string `json:"BillingTiming,omitempty"`

	//  Determines how to evaluate charges. Charge models must be individually activated in the web-based UI. **Character limit**: 29 **Values**: inherited from `ProductRatePlanCharge.ChargeModel`
	ChargeModel string `json:"ChargeModel,omitempty"`

	//  A unique number that identifies the charge. This number is returned as a string. **Character limit**: 50 **Values**: one of the following:  - automatically generated if left null - a unique number of 50 characters or fewer
	ChargeNumber string `json:"ChargeNumber,omitempty"`

	//  Specifies the type of charge. **Character limit**: 9 **Values**: inherited from `ProductRatePlanCharge.ChargeType`
	ChargeType string `json:"ChargeType,omitempty"`

	//  The date through which a customer has been billed for the charge. **Character limit**: 29 **Values**: automatically generated
	ChargedThroughDate time.Time `json:"ChargedThroughDate,omitempty"`

	// The ID of the Zuora user who created the `RatePlanCharge` object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `RatePlanCharge` object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// A delta monthly recurring charge is the change in monthly recurring revenue caused by an amendment or a new subscription. **Character limit**: 16 **Values**: automatically generated
	DMRC float64 `json:"DMRC,omitempty"`

	//  After an Amendment, the change in the total contract value (TCV) amount for this charge, compared with its previous value. **Character limit**: 16 **Values**: automatically generated
	DTCV float64 `json:"DTCV,omitempty"`

	//  A description of the charge. **Character limit**: 500 **Values**: inherited from `ProductRatePlanCharge.Description`
	Description string `json:"Description,omitempty"`

	// Specifies if the discount applies to just the product rate plan, the entire subscription, or to any activity in the account. **Character limit**: 12 **Values**: inherited from `ProductRatePlanCharge.DiscountLevel`
	DiscountLevel string `json:"DiscountLevel,omitempty"`

	//  The date when the segmented charge ends or ended. **Character limit**: 16 **Values**: automatically generated
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	//  The date when the segmented charge starts or started. **Character limit**: 16 **Values**: automatically generated
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	//  Defines when the charge ends after the charge trigger date. This field can be updated when **Status** is `Draft`. **Values**: one of the following:  - `SubscriptionEnd`: The charge ends on the subscription end date after the charge trigger date. This is the default value. - `FixedPeriod`: The charge ends after a specified period based on the trigger date of the charge. If you set this field to `FixedPeriod`, you must specify the length of the period and a period type by defining the `UpToPeriods` and `UpToPeriodsType` fields. - `SpecificEndDate`: The specific date on which the charge ends. If you set this field to `SpecificEndDate`, you must specify the specific date by defining the `SpecificEndDate` field.  **Note**: If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.
	EndDateCondition string `json:"EndDateCondition,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	// Indicates if the segment of the rate plan charge is the most recent segment. **Character limit**: 5 **Values**: automatically generated: `true`, `false`
	IsLastSegment bool `json:"IsLastSegment,omitempty"`

	// The list price base for the product rate plan charge. **Values**: one of the following:  - `Per Month` - `Per Billing Period` - `Per Week`
	ListPriceBase string `json:"ListPriceBase,omitempty"`

	// Monthly recurring revenue (MRR) is the amount of recurring charges in a given month. The MRR calculation doesn't include one-time charges nor usage charges. **Character limit**: 16 **Values**: automatically generated
	MRR float64 `json:"MRR,omitempty"`

	// The name of the rate plan charge. **Character limit**: 100 **Values**: automatically generated
	Name string `json:"Name,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model. **Character limit**: 5 **Values**: inherited from `ProductRatePlanCharge.NumberOfPeriod`
	NumberOfPeriods int64 `json:"NumberOfPeriods,omitempty"`

	// The original ID of the rate plan charge. **Character limit**: 32 **Values**: automatically generated
	OriginalId string `json:"OriginalId,omitempty"`

	// Determines when to calculate overage charges. If the value of the SmoothingMode field is null (not specified and not inherited from ProductRatePlanCharge.SmoothingMode), the value of this field is ignored. **Character limit**: 20 **Values**: inherited from `ProductRatePlanCharge.OverageCalculationOption`
	OverageCalculationOption string `json:"OverageCalculationOption,omitempty"`

	//  Determines whether to credit the customer with unused units of usage. **Character limit**: 20 **Values**: inherited from `ProductRatePlanCharge.OverageUnusedUnitsCreditOption`
	OverageUnusedUnitsCreditOption string `json:"OverageUnusedUnitsCreditOption,omitempty"`

	//  Applies an automatic price change when a termed subscription is renewed. **Character limit**: **Values**: one of the following:  - `NoChange` (default) - `SpecificPercentageValue` - `UseLatestProductCatalogPricing`
	PriceChangeOption string `json:"PriceChangeOption,omitempty"`

	//  Specifies the percentage to increase or decrease the price of renewed subscriptions. **Character limit**: 16 **Values**: a decimal value between -100 and 100
	PriceIncreasePercentage float64 `json:"PriceIncreasePercentage,omitempty"`

	//  The date until when charges have been processed. When billing in arrears, such as usage, this field value is the the same as the `ChargedThroughDate` value. This date is the earliest date when a charge can be amended. **Character limit**: 29 **Values**: automatically generated
	ProcessedThroughDate time.Time `json:"ProcessedThroughDate,omitempty"`

	//  The default quantity of units, such as the number of authors in a hosted wiki service. Valid for all charge models except for Flat Fee pricing. **Character limit**: 16 **Values**: a valid quantity value
	Quantity float64 `json:"Quantity,omitempty"`

	//  The ID of the rate plan associated with the rate plan charge. **Character limit**: 32 **Values**: inherited from `RatePlan.Id`
	RatePlanId string `json:"RatePlanId,omitempty"`

	//  Associates this product rate plan charge with a specific revenue recognition code.  **Character limit**: 70  **Values**: inherited from `ProductRatePlanCharge.RevRecCode` or a valid revenue recognition code  **Note**: Unless overridden, this value changes if `ProductRatePlanCharge.RevRecCode` is updated. The values of `UpdatedById` and `UpdatedDate` for the `RatePlanCharge` do not change when `ProductRatePlanCharge.RevRecCode` is updated.
	RevRecCode string `json:"RevRecCode,omitempty"`

	//  Specifies when revenue recognition begins.  **Character limit**: 22  **Values**: inherited from `ProductRatePlanCharge.RevRecTriggerCondition` or one of the following:  -  `ContractEffectiveDate`  -  `ServiceActivationDate`  -  `CustomerAcceptanceDate`  Note: Unless overridden, this value changes if `ProductRatePlanCharge.RevRecTriggerCondition` is updated. The values of `UpdatedById` and `UpdatedDate` for the `RatePlanCharge` do not change when `ProductRatePlanCharge.RevRecTriggerCondition` is updated.
	RevRecTriggerCondition string `json:"RevRecTriggerCondition,omitempty"`

	//  Specifies the Revenue Recognition Rule that you want the Rate Plan Charge to use. This field can be updated when **Status** is `Draft`. By default, the Revenue Recognition Rule is inherited from the Product Rate Plan Charge. For Amend calls, you can use this field only for NewProduct amendments. For Update calls, you can use this field only to update subscriptions in draft status. Note that if you use this field to specify a Revenue Recognition Rule for the Rate Plan Charge, the rule will remain as specified even if you later change the rule used by the corresponding Product Rate Plan Charge.  **Character limit**: n/a  **Values**: inherited from `ProductRatePlanCharge.RevenueRecognitionRuleName` or the name of an active Revenue Recognition Rule  **Note**: Unless overridden, this value changes if `ProductRatePlanCharge.RevenueRecognitionRuleName` is updated. The values of `UpdatedById` and `UpdatedDate` for the `RatePlanCharge` do not change when `ProductRatePlanCharge.RevenueRecognitionRuleName` is updated.
	RevenueRecognitionRuleName string `json:"RevenueRecognitionRuleName,omitempty"`

	//  The identifying number of the subscription rate plan segment. Segments are numbered sequentially, starting with 1. **Character limit**: 2 **Values**: automatically generated
	Segment int32 `json:"Segment,omitempty"`

	//  Customizes the number of months or weeks for the charges billing period. This field is required if you set the value of the BillingPeriod field to `Specific Months` or `Specific Weeks`. **Character limit**: 5 **Values**: inherited from `ProductRatePlanCharge.BillingPeriod` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	SpecificBillingPeriod int64 `json:"SpecificBillingPeriod,omitempty"`

	//  The specific date on which the charge ends, in `yyyy-mm-dd` format. **Character limit**: 29 **Note**:  - This field is only applicable when the `EndDateCondition` field is set to `SpecificEndDate`. - If the subscription ends before the specific end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the specific end date.
	SpecificEndDate time.Time `json:"SpecificEndDate,omitempty"`

	//  The total contract value (TCV) is the value of a single rate plan charge in a subscription over the lifetime of the subscription. This value does not represent all charges on the subscription. The TCV includes recurring charges and one-time charges, but it doesn't include usage charge. **Character limit**: 16 **Values**: automatically generated
	TCV float64 `json:"TCV,omitempty"`

	//  The date when the charge becomes effective and billing begins, in `yyyy-mm-dd` format. This field is required if the `TriggerEvent` field value is `SpecificDate`. **Character limit**: 29
	TriggerDate time.Time `json:"TriggerDate,omitempty"`

	//  Specifies when to start billing the customer for the charge. **Note: **This field can be passed through the Subscribe and Amend calls and will override the default value set on the Product Rate Plan Charge. **Character limit**: 18 **Values**: inherited from `ProductRatePlanCharge.TriggerEvent` and can be one of the following values:  - `ContractEffective `is the date when the subscription's contract goes into effect and the charge is ready to be billed. - `ServiceActivationDate `is when the services or products for a subscription have been activated and the customers have access. - `CustomerAcceptance `is when the customer accepts the services or products for a subscription. - SpecificDate is valid only on the RatePlanCharge.
	TriggerEvent string `json:"TriggerEvent,omitempty"`

	//  Specifies the units to measure usage. **Character limit**: 25 **Values**: inherited from `ProductRatePlanCharge.UOM`
	UOM string `json:"UOM,omitempty"`

	//  Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends. **Character limit**: 5 **Values**: inherited from `ProductRatePlanCharge.UpToPeriods` **Note**:  - You must use this field together with the `UpToPeriodsType` field to specify the time period. This field is only applicable only when the `EndDateCondition` field is set to `FixedPeriod`. - You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment. - Use this field to override the value in `ProductRatePlanCharge.UpToPeriod`. - If you override the value in this field, enter a whole number between 0 and 65535, exclusive. - If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods int64 `json:"UpToPeriods,omitempty"`

	//  The period type used to define when the charge ends. This field can be updated when **Status** is `Draft`. **Values**: one of the following:  - `Billing Periods` (default) - `Days` - `Weeks` - `Months` - `Years` **Note**:  - You must use this field together with the `UpToPeriods` field to specify the time period. - This field is only applicable only when the `EndDateCondition` field is set to `FixedPeriod`.
	UpToPeriodsType string `json:"UpToPeriodsType,omitempty"`

	// The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  The version of the rate plan charge. Each time a charge is amended, Zuora creates a new version of the rate plan charge. **Character limit**: 5 **Values**: automatically generated
	Version int64 `json:"Version,omitempty"`

	//  Specifies which day of the week as the bill cycle day (BCD) for the charge. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Values**: one of the following:  - `Sunday` - `Monday` - `Tuesday` - `Wednesday` - `Thursday` - `Friday` - `Saturday`
	WeeklyBillCycleDay string `json:"WeeklyBillCycleDay,omitempty"`
}

type ProxyGetRatePlanChargeTier

type ProxyGetRatePlanChargeTier struct {

	// The ID of the Zuora user who created the RatePlanChargeTier object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the RatePlanChargeTier object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The end number of a range of units for the tier. **Character limit**: 16 **Values**: any positive decimal value
	EndingUnit float64 `json:"EndingUnit,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The price of the tier if the charge is a flat fee, or the price of each unit in the tier if the change model is tiered pricing. **Character limit**: 16 **Values**: any positive decimal value
	Price float64 `json:"Price,omitempty"`

	//  Indicates if the price is a flat fee or is per unit. **Character limit**: 8 **Values**: `Flat Fee`, `Per Unit`
	PriceFormat string `json:"PriceFormat,omitempty"`

	//  The ID of the subscription or amendment rate plan charge associated with this tier. You can't create an unassociated tier. **Character limit**: 32 **Values**: inherited from `RatePlanCharge.Id`.
	RatePlanChargeId string `json:"RatePlanChargeId,omitempty"`

	//  The start number of a range of units for the tier. **Character limit**: 16 **Values**: any positive decimal value
	StartingUnit float64 `json:"StartingUnit,omitempty"`

	//  A unique number that identifies the tier that the price applies to. **Character limit**: 20 **Values**: automatically generated
	Tier int32 `json:"Tier,omitempty"`

	// The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetRefund

type ProxyGetRefund struct {

	//  The ID of the account associated with this refund. Specify a value for this field only if you're creating an electronic non-referenced refund. Don't specify a value for any other type of refund; Zuora associates the refund automatically with the account from the associated payment. **Character limit**: 32 **Values**: a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The accounting code for the payment or invoice line item that the refund applies to. If there is no accounting code, then this value is null. Accounting codes group transactions that contain similar accounting attributes. **Character limit**: 50 **Values**: automatically generated
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The amount of the refund. The amount can't exceed the amount of the associated payment. If the original payment was applied to a single invoice, then you can create a partial refund. However, if the payment was applies to multiple invoices, then you can only make a partial refund through the web-based UI, not through the API. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`

	//  The date the refund was cancelled. **Values**: automatically generated
	CancelledOn time.Time `json:"CancelledOn,omitempty"`

	//  Use this field to record comments about the refund. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The ID of the Zuora user who created the `Refund` object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `Refund` object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The gateway that processed the original payment. Zuora uses this same gateway for the corresponding refund. If this payment gateway is no longer active, then the electronic refund fails. A gateway is an online service provider that connects an online shopping cart to a payment processor. **Values**: automatically inherited from the `Payment` object
	Gateway string `json:"Gateway,omitempty"`

	//  The message returned from the payment gateway for the refund. This message is gateway-dependent. **Character limit**: 500 **Values**: automatically generated
	GatewayResponse string `json:"GatewayResponse,omitempty"`

	//  The code returned from the payment gateway for the payment. This code is gateway-dependent. **Character limit**: 20 **System****Values**: automatically generated
	GatewayResponseCode string `json:"GatewayResponseCode,omitempty"`

	//  The status of the payment in the gateway. **Character limit**: 19 **Values**: automatically generated
	GatewayState string `json:"GatewayState,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The date when a payment was marked and waiting for batch submission to the payment process. **Character limit**: 29 **Values**: automatically generated
	MarkedForSubmissionOn time.Time `json:"MarkedForSubmissionOn,omitempty"`

	//  Indicates how an external refund was issued to a customer. This field is required for an external refund. You can issue an external refund on an electronic payment. **Character limit**: 30 **Values**:  - `ACH` - `Cash` - `Check` - `CreditCard` - `Other` - `PayPal` - `WireTransfer` - `DebitCard` - `CreditCardReferenceTransaction`
	MethodType string `json:"MethodType,omitempty"`

	//  The unique ID of the payment method that the customer used to make the payment. Specify a value for this field only if you're creating an electronic non-referenced refund. **Character limit**: 32 **V****alues**: a valid payment method ID
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//  The unique ID of the payment method snapshot which is a copy of the particular Payment Method used in a transaction. **Character limit**: 32 **V****alues**: a valid payment method snapshot ID
	PaymentMethodSnapshotId string `json:"PaymentMethodSnapshotId,omitempty"`

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  The transaction ID returned by the payment gateway for an electronic refund. Use this field to reconcile refunds between your gateway and Zuora Payments. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceID string `json:"ReferenceID,omitempty"`

	//  The date of the refund, in `yyyy-mm-dd` format. The date of the refund cannot be before the payment date. Specify this field only for external refunds. Zuora automatically generates this field for electronic refunds. **Character limit**: 29
	RefundDate time.Time `json:"RefundDate,omitempty"`

	//  The unique identifier of the refund. **Character limit**: 50 **Values**: automatically generated
	RefundNumber string `json:"RefundNumber,omitempty"`

	//  The date and time when the refund was issued. **Character limit**: 29 **Values**: automatically generated
	RefundTransactionTime time.Time `json:"RefundTransactionTime,omitempty"`

	//  The transaction ID returned by the payment gateway if there is an additional transaction for the payment. Use this field to reconcile payments between your gateway and Zuora Payments. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	SecondRefundReferenceId string `json:"SecondRefundReferenceId,omitempty"`

	//  The date when the payment was settled in the payment processor. This field is used by the Spectrum gateway only and not applicable to other gateways. **Character limit**: 29 **Values**: automatically generated
	SettledOn time.Time `json:"SettledOn,omitempty"`

	//  A payment gateway-specific field that maps Zuora to other gateways . **Character limit**: 35 **Values**:  - 3-byte company identifier &quot;*&quot; 18-byte descriptor - 7-byte company identifier &quot;*&quot; 14-byte descriptor - 12-byte company identifier &quot;*&quot; 9-byte descriptor
	SoftDescriptor string `json:"SoftDescriptor,omitempty"`

	//  A payment gateway-specific field that maps Zuora to other gateways . **Character limit**: 20 **Values**:  - Customer service phone number formatted as: `NNN-NNN-NNNN` or `NNN-AAAAAAA` - URL (non-e-Commerce): Transactions sent with a URL do not qualify for the best interchange rate - Email address
	SoftDescriptorPhone string `json:"SoftDescriptorPhone,omitempty"`

	//  Specifies whether the refund is a refund payment or a credit balance. This field is required when creating an non-referenced refund. If you creating an non-referenced refund, then set this value to `CreditBalance`. **Character limit**: 13 **Values**:  - `Payment` - `CreditBalance`
	SourceType string `json:"SourceType,omitempty"`

	//  The status of the refund. **Character limit**: 10 **Values**: automatically generated:  - `Canceled` - `Error` - `Processed` - `Processing`
	Status string `json:"Status,omitempty"`

	//  The date when the payment was submitted. **Character limit**: 29 **Values**: automatically generated
	SubmittedOn time.Time `json:"SubmittedOn,omitempty"`

	//  Specifies whether or not the object has been transferred to an external accounting system. Use this field for integrations with accounting systems such as NetSuite. **Character limit**: 10 **Values**: automatically generated:  - `Processing` - `Yes` - `Error` - `Ignore`
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//  Specifies if the refund is electronic or external. **Character limit**: 10 **Values**:  - `Electronic` - External
	Type_ string `json:"Type,omitempty"`

	//  The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetRefundInvoicePayment

type ProxyGetRefundInvoicePayment struct {

	//  The ID of the Zuora user who created the RefundInvoicePayment object. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the RefundInvoicePayment object was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The unique ID of the invoice associated with this refund invoice payment. **Character limit**: 32 **Values**: a valid invoice ID
	InvoiceId string `json:"InvoiceId,omitempty"`

	//  The ID of the `InvoicePayment.Id`
	InvoicePaymentId string `json:"InvoicePaymentId,omitempty"`

	// Specifies the amount of a refund applied against a payment. **Character limit**: 16 **Values**: automatically generated
	RefundAmount float64 `json:"RefundAmount,omitempty"`

	//  The ID of the Refund object **Character limit**: 32 **Values**: inherited from `Refund.Id`
	RefundId string `json:"RefundId,omitempty"`

	//  The ID of the last user to update the object. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetRefundTransactionLog

type ProxyGetRefundTransactionLog struct {

	//
	BatchId string `json:"BatchId,omitempty"`

	//
	Gateway string `json:"Gateway,omitempty"`

	//
	GatewayReasonCode string `json:"GatewayReasonCode,omitempty"`

	//
	GatewayReasonCodeDescription string `json:"GatewayReasonCodeDescription,omitempty"`

	//
	GatewayState string `json:"GatewayState,omitempty"`

	//
	GatewayTransactionType string `json:"GatewayTransactionType,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//
	RefundId string `json:"RefundId,omitempty"`

	//
	RequestString string `json:"RequestString,omitempty"`

	//
	ResponseString string `json:"ResponseString,omitempty"`

	//
	TransactionDate time.Time `json:"TransactionDate,omitempty"`

	//
	TransactionId string `json:"TransactionId,omitempty"`
}

type ProxyGetSubscription

type ProxyGetSubscription struct {

	//  This field can be updated when **Status** is `Draft`. The ID of a valid account ID.
	AccountId string `json:"AccountId,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Indicates if the subscription automatically renews at the end of the term. **Values**: `true`, `false`
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  The date on which the subscription was canceled.
	CancelledDate time.Time `json:"CancelledDate,omitempty"`

	//  The date when the customer accepts the contract. This field can be updated when **Status** is `Draft`.
	ContractAcceptanceDate time.Time `json:"ContractAcceptanceDate,omitempty"`

	//  The date when the contract takes effect. This field can be updated when **Status** is `Draft`. **Note**: This field is required in the subscribe call. If you set the value of this field to null and both the ServiceActivationDate and ContractAcceptanceDate fields are not required, the subscribe call still returns success, but the new subscription is in `DRAFT` status. To activate the subscription, you must set a valid date to this field.
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	//  The Bundle product structures from Zuora Quotes if you utilize Bundling in Salesforce. Do not change the value in this field. **Character limit**: 32 **Values**: N/A
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	// The user ID of the person who created the subscription. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date the subscription was created. This value is the same as the OriginalCreatedDate value until the subscription is amended. **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The account ID that created the subscription or the amended subscription. **Character limit**: 32 **Values**: automatically generated
	CreatorAccountId string `json:"CreatorAccountId,omitempty"`

	//  The account ID that owns the invoices associated with the subscription or the amended subscription. **Character limit**: 32 **Values**: automatically generated
	CreatorInvoiceOwnerId string `json:"CreatorInvoiceOwnerId,omitempty"`

	//  The length of the period for the current subscription term. If TermType is set to `TERMED`, this field is required and must be greater than `0`. If TermType is set to `EVERGREEN`, this value is ignored. Default is `0`. **Character limit**: 20 **Values**: automatically generated
	CurrentTerm int32 `json:"CurrentTerm,omitempty"`

	//  The period type for the current subscription term. This field is used with the CurrentTerm field to specify the current subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The length of the period for the first subscription term. This field can be updated when Status is `Draft`. **Required**: If TermType is Termed **Character limit**: 20 **Values**: any valid number. The default value is 0.
	InitialTerm int32 `json:"InitialTerm,omitempty"`

	//  The period type for the first subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field can be updated when Status is `Draft`. - This field is used with the InitialTerm field to specify the initial subscription term.
	InitialTermPeriodType string `json:"InitialTermPeriodType,omitempty"`

	//  This field can be updated when **Status** is `Draft`. A valid account ID.
	InvoiceOwnerId string `json:"InvoiceOwnerId,omitempty"`

	//  Determines if the subscription is invoiced separately. If `TRUE`, then all charges for this subscription are collected into the subscription's own invoice. **V****alues**: `TRUE`, `FALSE `(default)
	IsInvoiceSeparate bool `json:"IsInvoiceSeparate,omitempty"`

	//  The unique identifier of the subscription. If you don't specify a value, then Zuora generates a name automatically. Whether auto-generated or manually specified, the subscription name must be unique. Otherwise an error will occur. **Character limit**: 100 **Values**: one of the following:  - leave null to automatically generate - a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Use this field to record comments about the subscription. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Notes string `json:"Notes,omitempty"`

	//  The closing date of the Opportunity. This field is used in Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: **Values**: populated by Zuora Quotes
	OpportunityCloseDateQT time.Time `json:"OpportunityCloseDate__QT,omitempty"`

	//  The unique identifier of the Opportunity. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 100 **Values**: populated by Zuora Quotes
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	//  The date when the subscription was originally created. This value is the same as the CreatedDate value until the subscription is amended. **Values**: automatically generated
	OriginalCreatedDate time.Time `json:"OriginalCreatedDate,omitempty"`

	//  The original ID of this subscription. **Values**: automatically generated
	OriginalId string `json:"OriginalId,omitempty"`

	//  The subscription ID immediately prior to the current subscription. **Character limit**: 32 **Values**: automatically generated
	PreviousSubscriptionId string `json:"PreviousSubscriptionId,omitempty"`

	//  The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal or Churn. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 32 **Values**: populated by Zuora Quotes
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	//  The unique identifier of the Quote. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 32 **Values**: populated by Zuora Quotes
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	//  The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 32 **Values**: populated by Zuora Quotes
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. **Required**: If TermType is Termed **Values**: `RENEW_WITH_SPECIFIC_TERM `(default), `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"RenewalSetting,omitempty"`

	//  The length of the period for the subscription renewal term. This field can be updated when **Status** is `Draft`. **Required**: If TermType is Termed. **Character limit**: 20 **Values**: one of the following:  - leave null to default to `0` - any number
	RenewalTerm int32 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field is used with the RenewalTerm field to specify the subscription renewal term. - This field can be updated when Status is `Draft`.
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when the subscription is activated. This field can be updated when **Status** is `Draft`.
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	//  The status of the subscription. **Character limit**: 17 **Values**: automatically generated **Possible values**: one of the following:  - `Draft` - `PendingActivation` - `PendingAcceptance` - `Active` - `Cancelled` - `Expired` - `Suspended` (This value is in **Limited Availability**.)
	Status string `json:"Status,omitempty"`

	//  The date when the subscription term ends, where the subscription ends at midnight the day before. For example, if the SubscriptionEndDate is 12/31/2016, the subscriptions ends at midnight (00:00:00 hours) on 12/30/2016. This date is the same as the term end date or the cancelation date, as appropriate. **Character limit**: 29 **Values**: automatically generated
	SubscriptionEndDate time.Time `json:"SubscriptionEndDate,omitempty"`

	//  The date when the subscription term starts. This date is the same as the start date of the original term, which isn't necessarily the start date of the current or new term. **Character limit**: 29 **Values**: automatically generated
	SubscriptionStartDate time.Time `json:"SubscriptionStartDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. The date when the subscription term ends. If the subscription is evergreen, the TermEndDate value is null or is the cancelation date, as appropriate. **Character limit**: 29 **Values**: automatically generated
	TermEndDate time.Time `json:"TermEndDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. The date when the subscription term begins. If this is a renewal subscription, then this date is different from the subscription start date. **Character limit**: 29 **Version notes**: --
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Indicates if a subscription is termed or evergreen. **Character limit**: 9 **Values**: `TERMED`, `EVERGREEN`
	TermType string `json:"TermType,omitempty"`

	//  The ID of the user who last updated the subscription. **Character limit:** 32 **Values: **automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the subscription was last updated. **Character limit:** 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  The version number of the subscription. **Values**: automatically generated
	Version int32 `json:"Version,omitempty"`
}

type ProxyGetSubscriptionProductFeature

type ProxyGetSubscriptionProductFeature struct {

	//
	CreatedById string `json:"CreatedById,omitempty"`

	//  Date and time when the product feature was added to the subscription. **Character limit**: 29 **Values**:
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  Description of the subscription product feature. **Character limit**: 500 **Values**:
	Description string `json:"Description,omitempty"`

	//  Unique code of the feature. **Character limit**: 255 **Values**:
	FeatureCode string `json:"FeatureCode,omitempty"`

	//  Internal Zuora ID of the feature. **Character limit**: 32 **Values**:
	FeatureId string `json:"FeatureId,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  Name of the feature. **Character limit**: 255 **Values**:
	Name string `json:"Name,omitempty"`

	//  Id of the product rate plan to which the feature belongs. **Character limit**: 32 **Values**:
	RatePlanId string `json:"RatePlanId,omitempty"`

	//  Internal Zuora ID of the user who last updated the subscription product feature. **Character limit**: 32 **Values**:
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  Date and time when the subscription product feature was last updated. **Character limit**: 29 **Values**:
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetTaxationItem

type ProxyGetTaxationItem struct {

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The ID of the user who created the taxation item. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the payment was created in the Zuora system. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The amount of taxes or VAT for which the customer has an exemption. **Character limit**: 16 **Values**: a decimal value
	ExemptAmount float64 `json:"ExemptAmount,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  The ID of the specific invoice item that the taxation information applies to. **Character limit**: 32 **Values**: a valid invoice item ID
	InvoiceItemId string `json:"InvoiceItemId,omitempty"`

	//  The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city. **Character limit**: 32 **Values**: a string of 32 characterrs or fewer
	Jurisdiction string `json:"Jurisdiction,omitempty"`

	//  The identifier for the location based on the value of the `TaxCode` field. **Character limit**: 32 **Values**: automatically generated
	LocationCode string `json:"LocationCode,omitempty"`

	//  The name of the tax rate, such as sales tax or GST. This name is displayed on invoices. **Character limit**: 128 **Values**: a string of 128 characters or fewer
	Name string `json:"Name,omitempty"`

	//  The amount of the tax applied to the charge. **Character limit**: 16 **Values**: a decimal value
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  The tax code identifies which tax rules and tax rates to apply to a specific charge. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxCode string `json:"TaxCode,omitempty"`

	//  The description for the tax code. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TaxCodeDescription string `json:"TaxCodeDescription,omitempty"`

	//  The date that the tax is applied to the charge, in `yyyy-mm-dd` format. **Character limit**: 29
	TaxDate time.Time `json:"TaxDate,omitempty"`

	//  The tax rate applied to the charge. **Character limit**: 16 **Values**: a valid decimal value
	TaxRate float64 `json:"TaxRate,omitempty"`

	//  The description of the tax rate. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TaxRateDescription string `json:"TaxRateDescription,omitempty"`

	//  The type of the tax rate applied to the charge. **Character limit**: 10 **Values**: `Percentage`, `FlatFee`
	TaxRateType string `json:"TaxRateType,omitempty"`

	//  The ID of the user who last updated the taxation item. **Character limit**: **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// The date when the taxation item was last updated. **Character limit**: **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetUnitOfMeasure

type ProxyGetUnitOfMeasure struct {

	//  Indicates if the UOM is available for new product rate plans. The default value is `true`. **Character limit**: 5 **Values**: `true`, `false `
	Active bool `json:"Active,omitempty"`

	//  The ID of the Zuora user who created the UOM. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the UOM was created. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// The number of digits to the right of the decimal point that you want to measure for the unit. To use whole numbers only, set this value to 0. You can't change this value after this `UOM` is used in any product, subscription, or usage. **Character limit**: 1 **Values**: an integer between 0 and 9, exclusive
	DecimalPlaces int64 `json:"DecimalPlaces,omitempty"`

	// The name of the UOM that you want displayed on invoices. The default value is the `UomName` field value. **Character limit**: 50 **Values**: A string of 50 characters or fewer
	DisplayedAs string `json:"DisplayedAs,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  Specifies whether to round the UOM value up or down when the value exceeds the `DecimalPlaces` field value. The default value is `Up`. **Character limit**: 4 **Values**: `Up`, `Down`
	RoundingMode string `json:"RoundingMode,omitempty"`

	//  The name of the UOM, such as license or GB. This name is displayed in query results and in the web-based UI labels. If you want a different name to be displayed on invoices, then use the `DisplayedAs` field to provide the invoice label. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	UomName string `json:"UomName,omitempty"`

	// The ID of the user who lasted updated the UOM. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the UOM was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyGetUsage

type ProxyGetUsage struct {

	//  The ID of the account associated with the usage data. This field is required if no value is specified for the `AccountNumber` field. **Character limit**: 32 **Values**: a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The number of the account associated with the usage data. This field is required if no value is specified for the `AccountId` field. **Character limit**: 50 **Values**: a valid account number
	AccountNumber string `json:"AccountNumber,omitempty"`

	//  The OrginalId of the rate plan charge related to the usage record, e.g., `2c9081a03c63c94c013c6873357a0117` **Character limit**: 32 **Values**: a valid rate plan charge OriginalID
	ChargeId string `json:"ChargeId,omitempty"`

	//  The user ID of the person who uploaded the usage records. **Character limit**: 32 **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the invoice was generated. **Character limit**: 29 **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The end date and time of a range of time when usage is tracked. Use this field for reporting; this field doesn't affect usage calculation. **Character limit**: 29 **Values**: a valid date and time value
	EndDateTime time.Time `json:"EndDateTime,omitempty"`

	// Object identifier.
	Id string `json:"Id,omitempty"`

	//  Indicates the number of units used. **Character limit**: 16 **Values**: a valid decimal amount equal to or greater than 0
	Quantity float64 `json:"Quantity,omitempty"`

	//  Indicates if the rating and billing engine (RBE) processed usage data for an invoice. **Character limit**: 9 **Values**: automatically generated to be one of the following values: `Importing`, `Pending`, `Processed`
	RbeStatus string `json:"RbeStatus,omitempty"`

	//  Indicates if the usage records were imported from the web-based UI or the API. **Character limit**: 6 **Values**: automatically generated to be one of the following values: `API`, `Import`
	SourceType string `json:"SourceType,omitempty"`

	//  The start date and time of a range of time when usage is tracked. Zuora uses this field value to determine the usage date. Unlike the `EndDateTime`, the `StartDateTime` field does affect usage calculation. **Character limit**: 29 **Values**: a valid date and time value
	StartDateTime time.Time `json:"StartDateTime,omitempty"`

	//  The date when usage was submitted. **Character limit**: 29 **Values**: automatically generated
	SubmissionDateTime time.Time `json:"SubmissionDateTime,omitempty"`

	//  The ID of the subscription that contains the fees related to the usage data. **Character limit**: 32 **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  Specifies the units to measure usage. Units of measure are configured in the web-based UI. Your values depend on your configuration in **Billing Settings**. **Character limit**: **Values**: a valid unit of measure
	UOM string `json:"UOM,omitempty"`

	//  The ID of the user who last updated the usage upload. **Character limit**: 32 **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the usage upload was last updated. **Character limit**: 29 **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type ProxyModifyAccount

type ProxyModifyAccount struct {

	// Unique account number assigned to the account. **Character limit**: 50 **Values**: one of the following:  - null to auto-generate - a string of 50 characters or fewer that doesn't begin with the default account number prefix
	AccountNumber string `json:"AccountNumber,omitempty"`

	// List of additional email addresses to receive emailed invoices. **Character limit**: 120 **Values**: comma-separated list of email addresses
	AdditionalEmailAddresses string `json:"AdditionalEmailAddresses,omitempty"`

	//  Indicates if associated invoices can be edited. **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	AllowInvoiceEdit bool `json:"AllowInvoiceEdit,omitempty"`

	//  Indicates if future payments are automatically collected when they're due during a Payment Run. **Character limit**: 5 **Values**: `true`, `false` (default)
	AutoPay bool `json:"AutoPay,omitempty"`

	//  Organizes your customer accounts into groups to optimize your billing and payment operations. Required if you use the Subscribe call. **Character limit**: 20 **Values**:any system-defined batch (`Batch1` - `Batch50 `or by name).
	Batch string `json:"Batch,omitempty"`

	// Billing cycle day setting option. **Character limit**: 9 **Values**: `AutoSet`, `ManualSet`
	BcdSettingOption string `json:"BcdSettingOption,omitempty"`

	// Billing cycle day (BCD) on which bill runs generate invoices for the account. **Character limit**: 2 **Values**: any activated system-defined bill cycle day (`1` - `31`)
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	// ID of the person to bill for the account. **Character limit**: 32 **Values**: a valid contact ID for the account
	BillToId string `json:"BillToId,omitempty"`

	// Associates the account with a specified communication profile. **Character limit**: 32 **Values**: a valid communication profile ID
	CommunicationProfileId string `json:"CommunicationProfileId,omitempty"`

	// CRM account ID for the account. A CRM is a customer relationship management system, such as Salesforce.com. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	CrmId string `json:"CrmId,omitempty"`

	//  Currency that the customer is billed in.
	Currency string `json:"Currency,omitempty"`

	// Name of the account's customer service representative, if applicable. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	CustomerServiceRepName string `json:"CustomerServiceRepName,omitempty"`

	// ID of the default payment method for the account. This field is required if the AutoPay field is set to `true`. **Character limit**: 32 **Values**: a valid ID for an existing payment method
	DefaultPaymentMethodId string `json:"DefaultPaymentMethodId,omitempty"`

	// Indicates if the customer wants to receive invoices through email.  **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsEmail bool `json:"InvoiceDeliveryPrefsEmail,omitempty"`

	// Indicates if the customer wants to receive printed invoices, such as through postal mail. **Character limit**: 5 **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsPrint bool `json:"InvoiceDeliveryPrefsPrint,omitempty"`

	// The ID of the invoice template. Each customer account can use a specific invoice template for invoice generation. **Character limit**: 32 **Values**: a valid template ID configured in Zuora Billing Settings
	InvoiceTemplateId string `json:"InvoiceTemplateId,omitempty"`

	// Name of the account as displayed in the Zuora UI. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Comments about the account. **Character limit**: 65,535 **Values**: a string of 65,535 characters
	Notes string `json:"Notes,omitempty"`

	// Identifier of the parent customer account for this Account object. Use this field if you have customer hierarchy enabled. **Character limit**: 32 **Values**: a valid account ID
	ParentId string `json:"ParentId,omitempty"`

	// Gateway used for processing electronic payments and refunds. **Character limit**: 40 **Values**: one of the following:  - a valid configured gateway name - Null to inherit the default value set in Zuora Payment Settings
	PaymentGateway string `json:"PaymentGateway,omitempty"`

	// Indicates when the customer pays for subscriptions. **Character limit**: 100 **Values**: a valid, active payment term defined in the web-based UI administrative settings
	PaymentTerm string `json:"PaymentTerm,omitempty"`

	// The number of the purchase order associated with this account. Purchase order information generally comes from customers. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	PurchaseOrderNumber string `json:"PurchaseOrderNumber,omitempty"`

	// The name of the sales representative associated with this account, if applicable. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	SalesRepName string `json:"SalesRepName,omitempty"`

	// ID of the person who bought the subscription associated with the account. **Character limit**: 32 **Values**: a valid contact ID for the account
	SoldToId string `json:"SoldToId,omitempty"`

	// Status of the account in the system. **Character limit**: 8 **Values**: one of the following:  - leave null if you're using the Subscribe call - if you're using the Create call: - `Draft` - `Active` - `Canceled`
	Status string `json:"Status,omitempty"`

	//  Unique code that identifies a company account in Avalara. Use this field to calculate taxes based on origin and sold-to addresses in Avalara. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Character limit**: 50 **Values**: a valid company code
	TaxCompanyCode string `json:"TaxCompanyCode,omitempty"`

	// ID of your customer's tax exemption certificate. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptCertificateID string `json:"TaxExemptCertificateID,omitempty"`

	// Type of the tax exemption certificate that your customer holds.  **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptCertificateType string `json:"TaxExemptCertificateType,omitempty"`

	// Description of the tax exemption certificate that your customer holds. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	TaxExemptDescription string `json:"TaxExemptDescription,omitempty"`

	// Date when the the customer's tax exemption starts. **Character limit**: 29 **Version notes**: requires Zuora Tax
	TaxExemptEffectiveDate time.Time `json:"TaxExemptEffectiveDate,omitempty"`

	// Date when the customer's tax exemption certificate expires  **Character limit**: 29 **Version notes**: requires Zuora Tax
	TaxExemptExpirationDate time.Time `json:"TaxExemptExpirationDate,omitempty"`

	// Indicates the jurisdiction in which the customer's tax exemption certificate was issued. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxExemptIssuingJurisdiction string `json:"TaxExemptIssuingJurisdiction,omitempty"`

	//  Status of the account's tax exemption. Required if you use Zuora Tax. **Character limit**: 19 **Values**: one of the following:  - `Yes` - `No` - `PendingVerification`
	TaxExemptStatus string `json:"TaxExemptStatus,omitempty"`

	//  EU Value Added Tax ID. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  **Character limit**: 25 **Values**: a valid Value Added Tax ID
	VATId string `json:"VATId,omitempty"`
}

type ProxyModifyAmendment

type ProxyModifyAmendment struct {

	//  Determines whether the subscription is automatically renewed, or whether it expires at the end of the term and needs to be manually renewed. **Required:** For amendment of type TermsAndConditions when changing the automatic renewal status of a subscription. **Values**: true, false
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  The date when the amendment's changes become effective for billing purposes. **Version notes**: --
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	//  The length of the period for the current subscription term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions` and TermType is set to `TERMED`. This field is not required if TermType is set to `EVERGREEN`. **Character limit**: **Values**: a valid number
	CurrentTerm int64 `json:"CurrentTerm,omitempty"`

	//  The period type for the current subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field can be updated when Status is `Draft`. - This field is used with the CurrentTerm field to specify the current subscription term.
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	//  The date when the customer accepts the amendment's changes to the subscription. **Required**: Only if the value of the Status field is set to PendingAcceptance. **Version notes**: --
	CustomerAcceptanceDate time.Time `json:"CustomerAcceptanceDate,omitempty"`

	//  A description of the amendment. **Character limit**: 500 **Values**: maximum 500 characters
	Description string `json:"Description,omitempty"`

	//  The date when the amendment's changes take effective. This field validates that the amendment's changes are within valid ranges of products and product rate plans. **Required**: For the cancellation amendments. Optional for other types of amendments. **Version notes**: --
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//  The name of the amendment. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. **Required**: If TermType is Termed **Values**: RENEW_WITH_SPECIFIC_TERM (default), RENEW_TO_EVERGREEN
	RenewalSetting string `json:"RenewalSetting,omitempty"`

	//  The term of renewal for the amended subscription. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. **Character limit**: **Values:** a valid number
	RenewalTerm int64 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term. This field can be updated when Status is `Draft`. **Required**: Only if the value of the Type field is set to `TermsAndConditions`. This field is used with the RenewalTerm field to specify the subscription renewal term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when service is activated. **Required**: Only if the value of the Status field is set to PendingActivation. **Version notes**: --
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	//  The date when the UpdateProduct amendment takes effect. This field is only applicable if there is already a future-dated UpdateProduct amendment on the subscription. **Required**: Only for the UpdateProduct amendments if there is already a future-dated UpdateProduct amendment on the subscription.
	SpecificUpdateDate time.Time `json:"SpecificUpdateDate,omitempty"`

	//  The status of the amendment. Type: string (enum) **Character limit**: 17 **Values**: one of the following:  - Draft (default, if left null) - Pending Activation - Pending Acceptance - Completed
	Status string `json:"Status,omitempty"`

	//  The ID of the subscription that the amendment changes. **Character limit**: 32 **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The date when the new terms and conditions take effect. **Required**: Only if the value of the Type field is set to TermsAndConditions. **Version notes**: --
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  Indicates if the subscription isTERMED or EVERGREEN.  - A TERMED subscription has an expiration date, and must be manually renewed. - An EVERGREEN subscription doesn't have an expiration date, and must be manually ended.  **Required**: Only when as part of an amendment of type TermsAndConditions &#65279;to change the term type of a subscription. Type: string **Character limit**: 9 **Values**: TERMED, EVERGREEN
	TermType string `json:"TermType,omitempty"`

	//  The type of amendment. **Character limit**: 18 **Values**: one of the following:  - Cancellation - NewProduct - OwnerTransfer - RemoveProduct - Renewal - UpdateProduct - TermsAndConditions - SuspendSubscription (This value is in **Limited Availability**.) - ResumeSubscription (This value is in **Limited Availability**.)
	Type_ string `json:"Type,omitempty"`
}

type ProxyModifyBillRun

type ProxyModifyBillRun struct {

	// The status for this bill run. See [Status Types](https://knowledgecenter.zuora.com/CB_Billing/J_Billing_Operations/G_Bill_Runs#Status_Types) for more information.  To cancel a bill run, specify `Canceled`. To post a bill run, specify `Posted`.  **Character limit:** 20  **Values:**     * `Pending`   * `Processing`   * `Completed`   * `Error`   * `Canceled`   * `Posted`
	Status string `json:"Status"`
}

type ProxyModifyContact

type ProxyModifyContact struct {

	//  The Zuora account ID associated with this contact. This field is not required when you use the Subscribe call. This field is required for all other calls. **Character limit: **32 **Values: **a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The first line of the contact's address, which is often a street address or business name. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Address1 string `json:"Address1,omitempty"`

	//  The second line of the contact's address. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Address2 string `json:"Address2,omitempty"`

	//  The city of the contact's address. **Character limit**: 40 **Values: **a string of 40 characters or fewer
	City string `json:"City,omitempty"`

	//  The country of the contact's address.
	Country string `json:"Country,omitempty"`

	//  The country. May optionally be used by Zuora Tax to calculate county tax. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	County string `json:"County,omitempty"`

	//  A description for the contact. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The contact's fax number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	Fax string `json:"Fax,omitempty"`

	//  The contact's first name. **Character limit**: 100 **Values**: a string of the contact's first name
	FirstName string `json:"FirstName,omitempty"`

	//  The contact's home phone number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	HomePhone string `json:"HomePhone,omitempty"`

	//  The contact's last name. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The contact's mobile phone number. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	MobilePhone string `json:"MobilePhone,omitempty"`

	//  A nickname for the contact. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	NickName string `json:"NickName,omitempty"`

	//  An additional phone number for the contact. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	OtherPhone string `json:"OtherPhone,omitempty"`

	// The type of the `OtherPhone`. **Character limit**: 20 **Values**: `Work`, `Mobile`, `Home`, `Other`
	OtherPhoneType string `json:"OtherPhoneType,omitempty"`

	//  The contact's personal email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	PersonalEmail string `json:"PersonalEmail,omitempty"`

	//  The zip code for the contact's address. **Character limit:** 20 **Values: **a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  The state or province of the contact's address.
	State string `json:"State,omitempty"`

	// If using Zuora Tax rules
	TaxRegion string `json:"TaxRegion,omitempty"`

	//  The contact's business email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	WorkEmail string `json:"WorkEmail,omitempty"`

	//  The contact's business phone number. **Character limit**: 40 **notes**: -- **Values**: a string of 40 characters or fewer
	WorkPhone string `json:"WorkPhone,omitempty"`
}

type ProxyModifyInvoice

type ProxyModifyInvoice struct {

	//  The status of the invoice in the system. This status is not the status of the payment of the invoice, just the status of the invoice itself. **Character limit**: 8 **Values**: one of the following:  -  Draft (default, automatically set upon invoice creation)  -  Posted  -  Canceled
	Status string `json:"Status,omitempty"`

	//  Specifies whether or not the invoice was transferred to an external accounting system, such as NetSuite. **Character limit**: 10 **Values**: Processing, Yes, Error, Ignore
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`
}

type ProxyModifyInvoiceAdjustment

type ProxyModifyInvoiceAdjustment struct {

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  The status of the invoice adjustment. This field is required in the Query call, but is automatically generated in other calls. **Character limit**: 9 **Values**: `Canceled`, `Processed`
	Status string `json:"Status,omitempty"`

	//  Indicates the status of the adjustment's transfer to an external accounting system, such as NetSuite. **Character limit**: 10 **Values**: `Processing`, `Yes`, `Error`, `Ignore`
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`
}

type ProxyModifyInvoicePayment

type ProxyModifyInvoicePayment struct {

	//  The amount of the payment. **Character limit**: 16 **Values**: a valid currency amount
	Amount float64 `json:"Amount,omitempty"`
}

type ProxyModifyPayment

type ProxyModifyPayment struct {

	//  The unique account ID for the customer that the payment is for. **Character limit**: 32 **Values**: a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The amount of the payment. **Character limit**: 16 **Values**: a valid currency value
	Amount float64 `json:"Amount,omitempty"`

	//  Additional information related to the payment. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	Comment string `json:"Comment,omitempty"`

	//  The date when the payment takes effect, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//  The ID of the payment method used for the payment. Required for Create. **Character limit**: 32 **Values**: automatically generated
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//  The transaction ID returned by the payment gateway. Use this field to reconcile payments between your gateway and Zuora Payments. **Character limit**: 60 **Values**: a string of 60 characters or fewer
	ReferenceId string `json:"ReferenceId,omitempty"`

	//  The status of the payment in Zuora. The value depends on the type of payment. **Character limit**: 11 **Values**: one of the following:  -  Electronic payments: `Processed`, `Error`, `Voided`  -  External payments: `Processed`, `Canceled`  * Update of status can change value from `Processed` to `Canceled` when the payment type is external.
	Status string `json:"Status,omitempty"`

	//  Indicates if the payment was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite. **Character limit**: 11 **Values**: `Processing`, `Yes`, `Error`, `Ignore`
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`

	//  Indicates if the payment is external or electronic. **Character limit**: 10 **Values**: `External`, `Electronic`
	Type_ string `json:"Type,omitempty"`
}

type ProxyModifyPaymentMethod

type ProxyModifyPaymentMethod struct {

	//  The ID of the customer account associated with this payment method. This field is not required for the account ID.
	AccountId string `json:"AccountId,omitempty"`

	//  The nine-digit routing number or ABA number used by banks. Use this field for ACH payment methods. **Character limit**: 9 **Values**: a string of 9 characters or fewer
	AchAbaCode string `json:"AchAbaCode,omitempty"`

	//  The name of the account holder, which can be either a person or a company. Use this field for ACH payment methods. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	AchAccountName string `json:"AchAccountName,omitempty"`

	//  The type of bank account associated with the ACH payment. Use this field for ACH payment methods. **Character limit**: 16 **Values**:  - `BusinessChecking` - `Checking` - `Saving`
	AchAccountType string `json:"AchAccountType,omitempty"`

	//  Line 1 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress1 string `json:"AchAddress1,omitempty"`

	//  Line 2 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress2 string `json:"AchAddress2,omitempty"`

	//  The name of the bank where the ACH payment account is held. Use this field for ACH payment methods. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	AchBankName string `json:"AchBankName,omitempty"`

	//  The branch code of the bank used for direct debit. Use this field for direct debit payment methods. **Character limit**: 10 **Values**:  string of 10 characters or fewer
	BankBranchCode string `json:"BankBranchCode,omitempty"`

	// The check digit in the international bank account number, which confirms the validity of the account. Use this field for direct debit payment methods. **Character limit**: 4 **Values**:  string of 4 characters or fewer
	BankCheckDigit string `json:"BankCheckDigit,omitempty"`

	//  The city of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:70 **Values**:  string of 70 characters or fewer
	BankCity string `json:"BankCity,omitempty"`

	//  The sort code or number that identifies the bank. This is also known as the sort code. This field is required for direct debit payment methods. **Character limit**: 18 **Values**:  string of 18 characters or fewer
	BankCode string `json:"BankCode,omitempty"`

	//  The name of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:80 **Values**:  string of 80 characters or fewer
	BankName string `json:"BankName,omitempty"`

	//  The zip code or postal code of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:20 **Values**:  string of 20 characters or fewer
	BankPostalCode string `json:"BankPostalCode,omitempty"`

	//  The name of the street of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:60 **Values**:  string of 60 characters or fewer
	BankStreetName string `json:"BankStreetName,omitempty"`

	//  The number of the direct debit bank. Use this field for direct debit payment methods. **Character limit**:10 **Values**:  string of 10 characters or fewer
	BankStreetNumber string `json:"BankStreetNumber,omitempty"`

	//  The name on the direct debit bank account. Use this field for direct debit payment methods. **Character limit**: 60 **Values**:  string of 60 characters or fewer
	BankTransferAccountName string `json:"BankTransferAccountName,omitempty"`

	//  The business identification code for Swiss direct payment methods that use the Global Collect payment gateway. Use this field only for direct debit payments in Switzerland with Global Collect. **Character limit**: 11 **Values**: string of 11 characters or fewer
	BusinessIdentificationCode string `json:"BusinessIdentificationCode,omitempty"`

	//  The city of the customer's address. Use this field for direct debit payment methods. **Character limit**:80 **Values**:  string of 80 characters or fewer
	City string `json:"City,omitempty"`

	//  The two-letter country code of the customer's address. Use this field for direct debit payment methods. **Character limit**: 2 **Values**: a valid country code
	Country string `json:"Country,omitempty"`

	//  The first line of the card holder's address, which is often a street address or business name. Use this field for credit card and direct debit payment methods. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	CreditCardAddress1 string `json:"CreditCardAddress1,omitempty"`

	//  The second line of the card holder's address. Use this field for credit card and direct debit payment methods. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	CreditCardAddress2 string `json:"CreditCardAddress2,omitempty"`

	//  The city of the card holder's address. Use this field for credit card and direct debit payment methods **Character limit**: 40 **Values**: a string of 40 characters or fewer
	CreditCardCity string `json:"CreditCardCity,omitempty"`

	//  The country of the card holder's address.
	CreditCardCountry string `json:"CreditCardCountry,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods. **Character limit**: 2 **Values**: a two-digit number, 01 - 12
	CreditCardExpirationMonth int32 `json:"CreditCardExpirationMonth,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods. **Character limit**: 4 **Values**: a four-digit number
	CreditCardExpirationYear int32 `json:"CreditCardExpirationYear,omitempty"`

	//  The full name of the card holder. Use this field for credit card and direct debit payment methods. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	CreditCardHolderName string `json:"CreditCardHolderName,omitempty"`

	//  The billing address's zip code. This field is required only when you define a debit card or credit card payment. **Character limit**: 20 **Values**: a string of 20 characters or fewer
	CreditCardPostalCode string `json:"CreditCardPostalCode,omitempty"`

	//  The billing address's state. Use this field is if the `CreditCardCountry' value is either Canada or the US. State names must be spelled in full.
	CreditCardState string `json:"CreditCardState,omitempty"`

	//  The type of credit card or debit card. This field is required only when you define a debit card or credit card payment. **Character limit**: 32 **Values**: `AmericanExpress`, `Discover`, `MasterCard`, `Visa`
	CreditCardType string `json:"CreditCardType,omitempty"`

	//  The session ID of the user when the `PaymentMethod` was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently only Verifi supports this field. **Character limit**: 255 **Values**:
	DeviceSessionId string `json:"DeviceSessionId,omitempty"`

	//  An email address for the payment method in addition to the bill to contact email address. **Character limit**: 80 **Values**: a string of 80 characters or fewer
	Email string `json:"Email,omitempty"`

	//  Indicates if the customer has an existing mandate or a new mandate. A mandate is a signed authorization for UK and NL customers. When you are migrating mandates from another system, be sure to set this field correctly. If you indicate that a new mandate is an existing mandate or vice-versa, then transactions fail. This field is used only for the direct debit payment method. **Character limit**: 3 **Values**: `Yes`, `No`
	ExistingMandate string `json:"ExistingMandate,omitempty"`

	//  The customer's first name. This field is used only for the direct debit payment method. **Character limit**: 30 **Values**: a string of 30 characters or fewer
	FirstName string `json:"FirstName,omitempty"`

	//  The International Bank Account Number. This field is used only for the direct debit payment method. **Character limit**: 42 **Values**: a string of 42 characters or fewer
	IBAN string `json:"IBAN,omitempty"`

	//  The IP address of the user when the payment method was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently PayPal, CyberSource, Authorize.Net, and Verifi support this field. **Character limit**: 15 **Values**: a string of 15 characters or fewer
	IPAddress string `json:"IPAddress,omitempty"`

	//  The customer's last name. This field is used only for the direct debit payment method. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The date of the most recent transaction. **Character limit**: 29 **Values**: a valid date and time value
	LastTransactionDateTime time.Time `json:"LastTransactionDateTime,omitempty"`

	//  The status of the most recent transaction. **Character limit**: 39 **Values**: automatically generated
	LastTransactionStatus string `json:"LastTransactionStatus,omitempty"`

	//  The date when the mandate was created, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 29
	MandateCreationDate time.Time `json:"MandateCreationDate,omitempty"`

	//  The ID of the mandate. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 36 **Values**: a string of 36 characters or fewer
	MandateID string `json:"MandateID,omitempty"`

	//  Indicates if  the mandate was received. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 3 **Values**: `Yes`, `No `(case-sensitive)
	MandateReceived string `json:"MandateReceived,omitempty"`

	//  The date when the mandate was last updated, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method. **Character limit**: 29
	MandateUpdateDate time.Time `json:"MandateUpdateDate,omitempty"`

	//  Specifies the number of allowable consecutive failures Zuora attempts with the payment method before stopping. **Values**: a valid number
	MaxConsecutivePaymentFailures int32 `json:"MaxConsecutivePaymentFailures,omitempty"`

	//  The number of consecutive failed payment for this payment method. It is reset to 0 upon successful payment. You can use the API to update the field value to 0. **Character limit**: **Values**: a positive whole number
	NumConsecutiveFailures int32 `json:"NumConsecutiveFailures,omitempty"`

	//  Specifies the status of the payment method. It is set to Active on creation. **Character limit**: 6 **Values**: `Active` or `Closed`
	PaymentMethodStatus string `json:"PaymentMethodStatus,omitempty"`

	//  The retry interval setting, which prevents making a payment attempt if the last failed attempt was within the last specified number of hours. This field is required if the `UseDefaultRetryRule` field value is set to `false`. **Character limit**: 4 **Values**: a whole number between 1 and 1000, exclusive
	PaymentRetryWindow int32 `json:"PaymentRetryWindow,omitempty"`

	//  The phone number that the account holder registered with the bank. This field is used for credit card validation when passing to a gateway. **Character limit**: 40 **Values**: a string of 40 characters or fewer
	Phone string `json:"Phone,omitempty"`

	//  The zip code of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 20 **Values**: a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  The state of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 70 **Values**: a string of 70 characters or fewer
	State string `json:"State,omitempty"`

	//  The street name of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	StreetName string `json:"StreetName,omitempty"`

	//  The street number of the customer's address. This field is used only for the direct debit payment method. **Character limit**: 30 **Values**: a string of 30 characters or fewer
	StreetNumber string `json:"StreetNumber,omitempty"`

	//  Determines whether to use the default retry rules configured in the Zuora Payments settings. Set this to `true` to use the default retry rules. Set this to `false` to set the specific rules for this payment method. If you set this value to `false`, then the fields, `PaymentRetryWindow` and `MaxConsecutivePaymentFailures`, are required. **Character limit**: 5 **Values**: `t“rue`, `false`
	UseDefaultRetryRule bool `json:"UseDefaultRetryRule,omitempty"`
}

type ProxyModifyProduct

type ProxyModifyProduct struct {

	//  Controls whether to allow your users to add or remove features while creating or amending a subscription. **Character** **limit**: n/a **Values**: true, false (default)
	AllowFeatureChanges bool `json:"AllowFeatureChanges,omitempty"`

	//  Category of the product. Used by Zuora Quotes Guided Product Selector. **Character** **limit**: 100 **Values**: One of the following:  - Base Products - Add On Services - Miscellaneous Products
	Category string `json:"Category,omitempty"`

	//  A descriptionof the product. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	// The date when the product expires and can't be subscribed to anymore, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	// The date when the product becomes available and can be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	// The name of the product. This information is displayed in the product catalog pages in the web-based UI. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	// The unique SKU for the product. **Character limit**: 50 **Values**: one of the following:  - leave null for automatic generated - an alphanumeric string of 50 characters or fewer
	SKU string `json:"SKU,omitempty"`
}

type ProxyModifyProductRatePlan

type ProxyModifyProductRatePlan struct {

	// A description of the product rate plan. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The date when the product rate plan expires and can't be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	//  The date when the product rate plan becomes available and can be subscribed to, in `yyyy-mm-dd` format. **Character limit**: 29
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	// The name of the product rate plan. The name doesn't have to be unique in a Product Catalog, but the name has to be unique within a product. **Character limit**: 100 **Values**: a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	// The ID of the product that contains the product rate plan. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	ProductId string `json:"ProductId,omitempty"`
}

type ProxyModifyRefund

type ProxyModifyRefund struct {

	//  A code identifying the reason for the transaction. Must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code. **Character limit**: 32 **V****alues**: a valid reason code
	ReasonCode string `json:"ReasonCode,omitempty"`

	//  The status of the refund. **Character limit**: 10 **Values**: automatically generated:  - `Canceled` - `Error` - `Processed` - `Processing`
	Status string `json:"Status,omitempty"`

	//  Specifies whether or not the object has been transferred to an external accounting system. Use this field for integrations with accounting systems such as NetSuite. **Character limit**: 10 **Values**: automatically generated:  - `Processing` - `Yes` - `Error` - `Ignore`
	TransferredToAccounting string `json:"TransferredToAccounting,omitempty"`
}

type ProxyModifySubscription

type ProxyModifySubscription struct {

	//  This field can be updated when **Status** is `Draft`. The ID of a valid account ID.
	AccountId string `json:"AccountId,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Indicates if the subscription automatically renews at the end of the term. **Values**: `true`, `false`
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  The date of the Amendment object. **Values**: inherited from `Amendment.EffectiveDate`
	CancelledDate time.Time `json:"CancelledDate,omitempty"`

	//  The date when the customer accepts the contract. This field can be updated when **Status** is `Draft`.
	ContractAcceptanceDate time.Time `json:"ContractAcceptanceDate,omitempty"`

	//  The date when the contract takes effect. This field can be updated when **Status** is `Draft`. **Note**: This field is required in the Subscribe call. If you set the value of this field to null and both the ServiceActivationDate and ContractAcceptanceDate fields are not required, the Subscribe call still returns success, but the new subscription is in `DRAFT` status. To activate the subscription, you must set a valid date to this field.
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	//  The Bundle product structures from Zuora Quotes if you utilize Bundling in Salesforce. Do not change the value in this field. **Character limit**: 32 **Values**: N/A
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	//  The period type for the current subscription term. This field is used with the CurrentTerm field to specify the current subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	//  The length of the period for the first subscription term. This field can be updated when Status is `Draft`. **Required**: If TermType is Termed **Character limit**: 20 **Values**: any valid number. The default value is 0.
	InitialTerm int32 `json:"InitialTerm,omitempty"`

	//  The period type for the first subscription term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field can be updated when Status is `Draft`. - This field is used with the InitialTerm field to specify the initial subscription term.
	InitialTermPeriodType string `json:"InitialTermPeriodType,omitempty"`

	//  This field can be updated when **Status** is `Draft`. A valid account ID.
	InvoiceOwnerId string `json:"InvoiceOwnerId,omitempty"`

	//  Determines if the subscription is invoiced separately. If `TRUE`, then all charges for this subscription are collected into the subscription's own invoice. **Values**: `TRUE`, `FALSE `(default)
	IsInvoiceSeparate bool `json:"IsInvoiceSeparate,omitempty"`

	//  The unique identifier of the subscription. If you don't specify a value, then Zuora generates a name automatically. Whether auto-generated or manually specified, the subscription name must be unique. Otherwise an error will occur. **Character limit**: 100 **Values**: one of the following:  - leave null to automatically generate - a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Use this field to record comments about the subscription. **Character limit**: 500 **Values**: a string of 500 characters or fewer
	Notes string `json:"Notes,omitempty"`

	//  The closing date of the Opportunity. This field is used in Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: **Values**: populated by Zuora Quotes
	OpportunityCloseDateQT time.Time `json:"OpportunityCloseDate__QT,omitempty"`

	//  The unique identifier of the Opportunity. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 100 **Values**: populated by Zuora Quotes
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	//  The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal or Churn. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 32 **Values**: populated by Zuora Quotes
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	//  The unique identifier of the Quote. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 32 **Values**: populated by Zuora Quotes
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	//  The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes. **Character limit**: 32 **Values**: populated by Zuora Quotes
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. **Required**: If TermType is Termed **Values**: `RENEW_WITH_SPECIFIC_TERM `(default), `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"RenewalSetting,omitempty"`

	//  The length of the period for the subscription renewal term. This field can be updated when **Status** is `Draft`. **Required**: If TermType is Termed. **Character limit**: 20 **Values**: one of the following:  - leave null to default to `0` - any number
	RenewalTerm int32 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term. **Values**:  - `Month` (default) - `Year` - `Day` - `Week` **Note**:  - This field is used with the RenewalTerm field to specify the subscription renewal term. - This field can be updated when Status is `Draft`.
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when the subscription is activated. This field can be updated when **Status** is `Draft`. **Character limit**: 29
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	//  The status of the subscription. **Character limit**: 17 **Values**: automatically generated **Possible values**: one of the following:  - `Draft` - `PendingActivation` - `PendingAcceptance` - `Active` - `Cancelled` - `Expired` - `Suspended` (This value is in **Limited Availability**.)
	Status string `json:"Status,omitempty"`

	//  This field can be updated when **Status** is `Draft`. The date when the subscription term begins. If this is a renewal subscription, then this date is different from the subscription start date. **Character limit**: 29 **Version notes**: --
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Indicates if a subscription is termed or evergreen. **Character limit**: 9 **Values**: `TERMED`, `EVERGREEN`
	TermType string `json:"TermType,omitempty"`

	//  The version number of the subscription. **Values**: automatically generated
	Version int32 `json:"Version,omitempty"`
}

type ProxyModifyTaxationItem

type ProxyModifyTaxationItem struct {

	//  The Chart of Accounts
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  The amount of taxes or VAT for which the customer has an exemption. **Character limit**: 16 **Values**: a decimal value
	ExemptAmount float64 `json:"ExemptAmount,omitempty"`

	//  The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city. **Character limit**: 32 **Values**: a string of 32 characterrs or fewer
	Jurisdiction string `json:"Jurisdiction,omitempty"`

	//  The identifier for the location based on the value of the `TaxCode` field. **Character limit**: 32 **Values**: automatically generated
	LocationCode string `json:"LocationCode,omitempty"`

	//  The name of the tax rate, such as sales tax or GST. This name is displayed on invoices. **Character limit**: 128 **Values**: a string of 128 characters or fewer
	Name string `json:"Name,omitempty"`

	//  The amount of the tax applied to the charge. **Character limit**: 16 **Values**: a decimal value
	TaxAmount float64 `json:"TaxAmount,omitempty"`

	//  The tax code identifies which tax rules and tax rates to apply to a specific charge. **Character limit**: 32 **Values**: a string of 32 characters or fewer
	TaxCode string `json:"TaxCode,omitempty"`

	//  The description for the tax code. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TaxCodeDescription string `json:"TaxCodeDescription,omitempty"`

	//  The date that the tax is applied to the charge, in `yyyy-mm-dd` format. **Character limit**: 29
	TaxDate time.Time `json:"TaxDate,omitempty"`

	//  The tax rate applied to the charge. **Character limit**: 16 **Values**: a valid decimal value
	TaxRate float64 `json:"TaxRate,omitempty"`

	//  The description of the tax rate. **Character limit**: 255 **Values**: a string of 255 characters or fewer
	TaxRateDescription string `json:"TaxRateDescription,omitempty"`

	//  The type of the tax rate applied to the charge. **Character limit**: 10 **Values**: `Percentage`, `FlatFee`
	TaxRateType string `json:"TaxRateType,omitempty"`
}

type ProxyModifyUnitOfMeasure

type ProxyModifyUnitOfMeasure struct {

	//  Indicates if the UOM is available for new product rate plans. The default value is `true`. **Character limit**: 5 **Values**: `true`, `false `
	Active bool `json:"Active,omitempty"`

	// The number of digits to the right of the decimal point that you want to measure for the unit. To use whole numbers only, set this value to 0. You can't change this value after this `UOM` is used in any product, subscription, or usage. **Character limit**: 1 **Values**: an integer between 0 and 9, exclusive
	DecimalPlaces int64 `json:"DecimalPlaces,omitempty"`

	// The name of the UOM that you want displayed on invoices. The default value is the `UomName` field value. **Character limit**: 50 **Values**: A string of 50 characters or fewer
	DisplayedAs string `json:"DisplayedAs,omitempty"`

	//  Specifies whether to round the UOM value up or down when the value exceeds the `DecimalPlaces` field value. The default value is `Up`. **Character limit**: 4 **Values**: `Up`, `Down`
	RoundingMode string `json:"RoundingMode,omitempty"`

	//  The name of the UOM, such as license or GB. This name is displayed in query results and in the web-based UI labels. If you want a different name to be displayed on invoices, then use the `DisplayedAs` field to provide the invoice label. **Character limit**: 50 **Values**: a string of 50 characters or fewer
	UomName string `json:"UomName,omitempty"`
}

type ProxyModifyUsage

type ProxyModifyUsage struct {

	//  The end date and time of a range of time when usage is tracked. Use this field for reporting; this field doesn't affect usage calculation. **Character limit**: 29 **Values**: a valid date and time value
	EndDateTime time.Time `json:"EndDateTime,omitempty"`

	//  Indicates the number of units used. **Character limit**: 16 **Values**: a valid decimal amount equal to or greater than 0
	Quantity float64 `json:"Quantity,omitempty"`

	//  Indicates if the rating and billing engine (RBE) processed usage data for an invoice. **Character limit**: 9 **Values**: automatically generated to be one of the following values: `Importing`, `Pending`, `Processed`
	RbeStatus string `json:"RbeStatus,omitempty"`

	//  The start date and time of a range of time when usage is tracked. Zuora uses this field value to determine the usage date. Unlike the `EndDateTime`, the `StartDateTime` field does affect usage calculation. **Character limit**: 29 **Values**: a valid date and time value
	StartDateTime time.Time `json:"StartDateTime,omitempty"`

	//  The date when usage was submitted. **Character limit**: 29 **Values**: automatically generated
	SubmissionDateTime time.Time `json:"SubmissionDateTime,omitempty"`

	//  Specifies the units to measure usage. Units of measure are configured in the web-based UI. Your values depend on your configuration in **Billing Settings**. **Character limit**: **Values**: a valid unit of measure
	UOM string `json:"UOM,omitempty"`
}

type ProxyNoDataResponse

type ProxyNoDataResponse struct {

	//
	Done bool `json:"done,omitempty"`

	//
	Records []interface{} `json:"records,omitempty"`

	//
	Size int32 `json:"size,omitempty"`
}

type PutAcceptUserAccessResponseType

type PutAcceptUserAccessResponseType struct {

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type PutAccountType

type PutAccountType struct {

	// A list of additional email addresses to receive emailed invoices. Use a comma to separate each email address.  **Note:** Invoices are emailed to the email addresses specified in this field only when the `invoiceDeliveryPrefsEmail` field is `true`.
	AdditionalEmailAddresses []string `json:"additionalEmailAddresses,omitempty"`

	// Specifies whether future payments are to be automatically billed when they are due. Possible values are: `true`, `false`.
	AutoPay bool `json:"autoPay,omitempty"`

	// The alias name given to a batch. A string of 50 characters or less.
	Batch string `json:"batch,omitempty"`

	BillToContact PutAccountTypeBillToContact `json:"billToContact,omitempty"`

	// The ID of a communication profile.
	CommunicationProfileId string `json:"communicationProfileId,omitempty"`

	// CRM account ID for the account, up to 100 characters.
	CrmId string `json:"crmId,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Whether the customer wants to receive invoices through email.   The default value is `false`.
	InvoiceDeliveryPrefsEmail bool `json:"invoiceDeliveryPrefsEmail,omitempty"`

	// Whether the customer wants to receive printed invoices, such as through postal mail.  The default value is `false`.
	InvoiceDeliveryPrefsPrint bool `json:"invoiceDeliveryPrefsPrint,omitempty"`

	// Invoice template ID, configured in Billing Settings in the Zuora UI.
	InvoiceTemplateId string `json:"invoiceTemplateId,omitempty"`

	// Account name, up to 255 characters.
	Name string `json:"name,omitempty"`

	// A string of up to 65,535 characters.
	Notes string `json:"notes,omitempty"`

	// The name of the payment gateway instance. If null or left unassigned, the Account will use the Default Gateway.
	PaymentGateway string `json:"paymentGateway,omitempty"`

	SoldToContact PutAccountTypeSoldToContact `json:"soldToContact,omitempty"`

	//
	Tagging string `json:"tagging,omitempty"`

	TaxInfo PostAccountTypeTaxInfo `json:"taxInfo,omitempty"`
}

type PutAccountTypeBillToContact

type PutAccountTypeBillToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country; must be a valid country name or abbreviation. If using Zuora Tax, you must specify a country in the sold-to contact to calculate tax. A bill-to contact may be used if no sold-to contact is provided.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. May optionally be used by Zuora Tax to calculate county tax.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName"`

	// Home phone number, 40 characters or less.
	HomePhone string `json:"homePhone,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName"`

	// Mobile phone number, 40 characters or less.
	MobilePhone string `json:"mobilePhone,omitempty"`

	// Nickname for this contact
	Nickname string `json:"nickname,omitempty"`

	// Other phone number, 40 characters or less.
	OtherPhone string `json:"otherPhone,omitempty"`

	// Possible values are: `Work`, `Mobile`, `Home`, `Other`.
	OtherPhoneType string `json:"otherPhoneType,omitempty"`

	// Personal email address, 80 characters or less.
	PersonalEmail string `json:"personalEmail,omitempty"`

	// State; must be a valid state or province name or 2-character abbreviation. If using Zuora Tax, be aware that Zuora Tax requires a state (in the US) or province (in Canada) in this field for the sold-to contact to calculate tax, and that a bill-to contact may be used if no sold-to contact is provided.
	State string `json:"state,omitempty"`

	// If using Zuora Tax, a region string as optionally defined in your tax rules. Not required.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for bill-to contact information for this account.

type PutAccountTypeSoldToContact

type PutAccountTypeSoldToContact struct {

	// First address line, 255 characters or less.
	Address1 string `json:"address1,omitempty"`

	// Second address line, 255 characters or less.
	Address2 string `json:"address2,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country; must be a valid country name or abbreviation. If using Zuora Tax, you must specify a country in the sold-to contact to calculate tax. A bill-to contact may be used if no sold-to contact is provided.
	Country string `json:"country,omitempty"`

	// County; 32 characters or less. May optionally be used by Zuora Tax to calculate county tax.
	County string `json:"county,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Fax phone number, 40 characters or less.
	Fax string `json:"fax,omitempty"`

	// First name, 100 characters or less.
	FirstName string `json:"firstName"`

	// Home phone number, 40 characters or less.
	HomePhone string `json:"homePhone,omitempty"`

	// Last name, 100 characters or less.
	LastName string `json:"lastName"`

	// Mobile phone number, 40 characters or less.
	MobilePhone string `json:"mobilePhone,omitempty"`

	// Nickname for this contact
	Nickname string `json:"nickname,omitempty"`

	// Other phone number, 40 characters or less.
	OtherPhone string `json:"otherPhone,omitempty"`

	// Possible values are: `Work`, `Mobile`, `Home`, `Other`.
	OtherPhoneType string `json:"otherPhoneType,omitempty"`

	// Personal email address, 80 characters or less.
	PersonalEmail string `json:"personalEmail,omitempty"`

	// State; must be a valid state or province name or 2-character abbreviation. If using Zuora Tax, be aware that Zuora Tax  requires a state (in the US) or province (in Canada) in this field for the sold-to contact to calculate tax, and that a bill-to contact may be used if no sold-to contact is provided.
	State string `json:"state,omitempty"`

	// If using Zuora Tax, a region string as optionally defined in your tax rules. Not required.
	TaxRegion string `json:"taxRegion,omitempty"`

	// Work email address, 80 characters or less.
	WorkEmail string `json:"workEmail,omitempty"`

	// Work phone number, 40 characters or less.
	WorkPhone string `json:"workPhone,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

Container for optional sold-to contact.

type PutAccountingCodeType

type PutAccountingCodeType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Name of the account in your general ledger.  Field only available if you have Zuora Finance enabled. Maximum of 255 characters.
	GlAccountName string `json:"glAccountName,omitempty"`

	// Account number in your general ledger.  Field only available if you have Zuora Finance enabled. Maximum of 255 characters.
	GlAccountNumber string `json:"glAccountNumber,omitempty"`

	// Name of the accounting code.  Accounting code name must be unique. Maximum of 100 characters.
	Name string `json:"name,omitempty"`

	// Maximum of 2,000 characters.
	Notes string `json:"notes,omitempty"`

	// Accounting code type. You cannot change the type of an accounting code from `AccountsReceivable` to a different type.   Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	Type_ string `json:"type,omitempty"`
}

type PutAccountingPeriodType

type PutAccountingPeriodType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The end date of the accounting period in yyyy-mm-dd format, for example, \"2016-02-19\".
	EndDate time.Time `json:"endDate,omitempty"`

	// Fiscal year of the accounting period in yyyy format, for example, \"2016\".
	FiscalYear string `json:"fiscalYear,omitempty"`

	//
	FiscalQuarter int64 `json:"fiscal_quarter,omitempty"`

	// Name of the accounting period.  Accounting period name must be unique. Maximum of 100 characters.
	Name string `json:"name,omitempty"`

	// Notes about the accounting period.  Maximum of 255 characters.
	Notes string `json:"notes,omitempty"`

	// The start date of the accounting period in yyyy-mm-dd format, for example, \"2016-02-19\".
	StartDate time.Time `json:"startDate,omitempty"`
}

type PutAllocateManuallyType

type PutAllocateManuallyType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Cannot be duplicated.
	EventTypeSystemId string `json:"eventTypeSystemId,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// An array of revenue distributions. Represents how you want to distribute revenue for this revenue schedule. You can distribute revenue into a maximum of 250 accounting periods with one revenue schedule.
	RevenueDistributions []PostDistributionItemType `json:"revenueDistributions,omitempty"`
}

type PutAttachmentType

type PutAttachmentType struct {

	// Description of the attachment.
	Description string `json:"description,omitempty"`

	// File name of the attachment. The value should not contain the file extension. Only the file name without the extension can be edited.
	FileName string `json:"fileName,omitempty"`
}

type PutBasicSummaryJournalEntryType

type PutBasicSummaryJournalEntryType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Key name that represents the list of journal entry items.
	JournalEntryItems []PutJournalEntryItemType `json:"journalEntryItems,omitempty"`

	// Additional information about this record.  ***Character limit:*** 2,000
	Notes string `json:"notes,omitempty"`

	// Status shows whether the journal entry has been transferred to an accounting system.   This field cannot be changed after the summary journal entry has been canceled.  **Note:** The Zuora Finance ***Override Transferred to Accounting*** permission is required to change `transferredToAccounting` from `Yes` to any other value.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`
}

type PutCatalogType

type PutCatalogType struct {

	// The entity that you want to share the product with.
	ToEntityIds []string `json:"toEntityIds"`
}

type PutCreditMemoItemType

type PutCreditMemoItemType struct {

	// The amount of the credit memo item.
	Amount float64 `json:"amount,omitempty"`

	// Comments about the credit memo item.
	Comment string `json:"comment,omitempty"`

	FinanceInformation PutCreditMemoItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the credit memo item.
	Id string `json:"id"`

	// The service end date of the credit memo item.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The service start date of the credit memo item.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName,omitempty"`

	// Container for credit memo taxation items.
	TaxItems []PutCreditMemoTaxItemType `json:"taxItems,omitempty"`

	// The definable unit that you measure when determining charges.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PutCreditMemoItemTypeFinanceInformation

type PutCreditMemoItemTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`
}

Container for the finance information related to the credit memo item.

type PutCreditMemoTaxItemType

type PutCreditMemoTaxItemType struct {

	// The amount of the taxation item in the credit memo item.
	Amount float64 `json:"amount,omitempty"`

	FinanceInformation PutCreditMemoTaxItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the taxation item in the credit memo item.
	Id string `json:"id"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date that the tax is applied to the credit memo, in `yyyy-mm-dd` format.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	TaxExemptAmount float64 `json:"taxExemptAmount,omitempty"`

	// The name of taxation.
	TaxName string `json:"taxName,omitempty"`

	// The tax rate applied to the credit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the credit memo.
	TaxRateType string `json:"taxRateType,omitempty"`
}

type PutCreditMemoTaxItemTypeFinanceInformation

type PutCreditMemoTaxItemTypeFinanceInformation struct {

	// The accounting code that maps to an on account in your accounting system.
	OnAccountAccountingCode string `json:"onAccountAccountingCode,omitempty"`

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`
}

Container for the finance information related to the taxation item in the credit memo item.

type PutCreditMemoType

type PutCreditMemoType struct {

	// Whether the credit memo automatically applies to the invoice upon posting.
	AutoApplyUponPosting bool `json:"autoApplyUponPosting,omitempty"`

	// Comments about the credit memo.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the credit memo takes effect.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Whether the credit memo is excluded from the rule of automatically applying credit memos to invoices.
	ExcludeFromAutoApplyRules bool `json:"excludeFromAutoApplyRules,omitempty"`

	// Container for credit memo items.
	Items []PutCreditMemoItemType `json:"items,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`

	// Whether the credit memo is transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`
}

type PutDebitMemoItemType

type PutDebitMemoItemType struct {

	// The amount of the debit memo item.
	Amount float64 `json:"amount,omitempty"`

	// Comments about the debit memo item.
	Comment string `json:"comment,omitempty"`

	FinanceInformation PutDebitMemoItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the debit memo item.
	Id string `json:"id"`

	// The service end date of the debit memo item.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// The service start date of the debit memo item.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	// The name of the SKU.
	SkuName string `json:"skuName,omitempty"`

	// Container for debit memo taxation items.
	TaxItems []PutDebitMemoTaxItemType `json:"taxItems,omitempty"`

	// The definable unit that you measure when determining charges.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PutDebitMemoItemTypeFinanceInformation

type PutDebitMemoItemTypeFinanceInformation struct {

	// The accounting code for the deferred revenue, such as Monthly Recurring Liability.
	DeferredRevenueAccountingCode string `json:"deferredRevenueAccountingCode,omitempty"`

	// The accounting code for the recognized revenue, such as Monthly Recurring Charges or Overage Charges.
	RecognizedRevenueAccountingCode string `json:"recognizedRevenueAccountingCode,omitempty"`

	// The name of the revenue recognition rule governing the revenue schedule.
	RevenueRecognitionRuleName string `json:"revenueRecognitionRuleName,omitempty"`
}

Container for the finance information related to the debit memo item.

type PutDebitMemoTaxItemType

type PutDebitMemoTaxItemType struct {

	// The amount of the taxation item in the debit memo item.
	Amount float64 `json:"amount,omitempty"`

	FinanceInformation PutDebitMemoTaxItemTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The ID of the taxation item in the debit memo item.
	Id string `json:"id"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction,omitempty"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The tax code identifies which tax rules and tax rates to apply to a specific debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date that the tax is applied to the debit memo, in `yyyy-mm-dd` format.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The amount of taxes or VAT for which the customer has an exemption.
	TaxExemptAmount float64 `json:"taxExemptAmount,omitempty"`

	// The name of taxation.
	TaxName string `json:"taxName,omitempty"`

	// The tax rate applied to the debit memo.
	TaxRate float64 `json:"taxRate,omitempty"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the debit memo.
	TaxRateType string `json:"taxRateType,omitempty"`
}

type PutDebitMemoTaxItemTypeFinanceInformation

type PutDebitMemoTaxItemTypeFinanceInformation struct {

	// The accounting code for the sales taxes payable.
	SalesTaxPayableAccountingCode string `json:"salesTaxPayableAccountingCode,omitempty"`
}

Container for the finance information related to the taxation item in the debit memo item.

type PutDebitMemoType

type PutDebitMemoType struct {

	// Comments about the debit memo.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the debit memo takes effect.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Container for debit memo items.
	Items []PutDebitMemoItemType `json:"items,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code
	ReasonCode string `json:"reasonCode,omitempty"`

	// Whether the debit memo is transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`
}

type PutDenyUserAccessResponseType

type PutDenyUserAccessResponseType struct {

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type PutEntityConnectionsAcceptResponseType

type PutEntityConnectionsAcceptResponseType struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PutEntityConnectionsDenyResponseType

type PutEntityConnectionsDenyResponseType struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PutEntityConnectionsDisconnectResponseType

type PutEntityConnectionsDisconnectResponseType struct {

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PutEventRiDetailType

type PutEventRiDetailType struct {

	// Revenue items are listed in ascending order by the accounting period start date.  Include at least one custom field.
	RevenueItems []EventRevenueItemType `json:"revenueItems"`
}

type PutJournalEntryItemType

type PutJournalEntryItemType struct {

	// Name of the accounting code.  If the Journal Entry Item has a blank accounting code, enter the empty string.
	AccountingCodeName string `json:"accountingCodeName"`

	// Accounting code type.  Note that `On-Account Receivable` is only available if you enable the Advanced AR Settlement feature.
	AccountingCodeType string `json:"accountingCodeType,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Type of journal entry item.
	Type_ string `json:"type"`
}

type PutPaymentMethodResponseType

type PutPaymentMethodResponseType struct {

	// ID of the updated payment method.
	PaymentMethodId string `json:"paymentMethodId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PutPaymentMethodType

type PutPaymentMethodType struct {

	// First address line, 255 characters or less.
	AddressLine1 string `json:"addressLine1,omitempty"`

	// Second address line, 255 characters or less.
	AddressLine2 string `json:"addressLine2,omitempty"`

	// The full name as it appears on the card, e.g., \"John J Smith\", 50 characters or less.
	CardHolderName string `json:"cardHolderName,omitempty"`

	// City, 40 characters or less.
	City string `json:"city,omitempty"`

	// Country; must be a valid country name or abbreviation.
	Country string `json:"country,omitempty"`

	// Specify \"true\" to make this card the default payment method; otherwise, omit this parameter to keep the current default payment method.
	DefaultPaymentMethod bool `json:"defaultPaymentMethod,omitempty"`

	// Card holder's email address, 80 characters or less.
	Email string `json:"email,omitempty"`

	// Two-digit expiration month (01-12).
	ExpirationMonth string `json:"expirationMonth,omitempty"`

	// Four-digit expiration year.
	ExpirationYear string `json:"expirationYear,omitempty"`

	// Phone number, 40 characters or less.
	Phone string `json:"phone,omitempty"`

	// The CVV or CVV2 security code for the credit card or debit card. Only required if changing expirationMonth, expirationYear, or cardHolderName. To ensure PCI compliance, this value isn't stored and can't be queried.
	SecurityCode string `json:"securityCode,omitempty"`

	// State; must be a valid state name or 2-character abbreviation.
	State string `json:"state,omitempty"`

	// Zip code, 20 characters or less.
	ZipCode string `json:"zipCode,omitempty"`
}

type PutRefundType

type PutRefundType struct {

	// Comments about the refund.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation PutRefundTypeFinanceInformation `json:"financeInformation,omitempty"`

	// A code identifying the reason for the transaction. The value must be an existing reason code or empty. If you do not specify a value, Zuora uses the default reason code.
	ReasonCode string `json:"reasonCode,omitempty"`
}

type PutRefundTypeFinanceInformation

type PutRefundTypeFinanceInformation struct {

	// The accounting code that maps to a bank account in your accounting system.
	BankAccountAccountingCode string `json:"bankAccountAccountingCode,omitempty"`

	// Whether the payment was transferred to an external accounting system. Use this field for integration with accounting systems, such as NetSuite.
	TransferredToAccounting string `json:"transferredToAccounting,omitempty"`

	// The accounting code for the unapplied payment.
	UnappliedPaymentAccountingCode string `json:"unappliedPaymentAccountingCode,omitempty"`
}

Container for the finance information related to the refund.

type PutRenewSubscriptionResponseType

type PutRenewSubscriptionResponseType struct {

	// Invoice ID, if one is generated.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Payment amount, if payment is collected.
	PaidAmount string `json:"paidAmount,omitempty"`

	// Payment ID, if payment is collected.
	PaymentId string `json:"paymentId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Date the new subscription term ends, as yyyy-mm-dd.
	TermEndDate time.Time `json:"termEndDate,omitempty"`

	// Date the new subscription term begins, as yyyy-mm-dd.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Change in the subscription monthly recurring revenue as a result of the update. For a renewal, this is the MRR of the subscription in the new term.
	TotalDeltaMrr string `json:"totalDeltaMrr,omitempty"`

	// Change in the total contracted value of the subscription as a result of the update. For a renewal, this is the TCV of the subscription in the new term.
	TotalDeltaTcv string `json:"totalDeltaTcv,omitempty"`
}

type PutRenewSubscriptionType

type PutRenewSubscriptionType struct {

	// The closing date of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityCloseDateQT string `json:"OpportunityCloseDate_QT,omitempty"`

	// The unique identifier of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	OpportunityNameQT string `json:"OpportunityName_QT,omitempty"`

	// The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal, or Churn. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	QuoteBusinessTypeQT string `json:"QuoteBusinessType_QT,omitempty"`

	// The unique identifier of the Quote. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	QuoteNumberQT string `json:"QuoteNumber_QT,omitempty"`

	// The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	QuoteTypeQT string `json:"QuoteType_QT,omitempty"`

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.   To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.  Prerequisite: `invoice` must be `true`.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account.  If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is `false`.  **Prerequisite:** `invoice` must be `true`.   **Note:** This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` field to the minor version number in the request header.
	Collect string `json:"collect,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.   Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken. The default value is `false`.    This field is in Zuora REST API version control. Supported minor versions are `196.0` and `207.0`. To use this field in the method, you must set the zuora-version parameter to the minor version number in the request header.
	Invoice bool `json:"invoice,omitempty"`

	// **Note:** This field has been replaced by the invoice field and the collect field. invoiceCollect is available only for backward compatibility.  If `true` (default), an invoice is generated and payment collected automatically during the subscription process. If `false`, no invoicing or payment takes place. The invoice generated in this operation is only for this subscription, not for the entire customer account.  This field is in Zuora REST API version control. Supported minor versions are `186.0`, `187.0`, `188.0`, `189.0`, and `196.0`.
	InvoiceCollect bool `json:"invoiceCollect,omitempty"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.   Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in Zuora REST API version control. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).     The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.   **Note:** The credit memo is only available if you have the Avdanced AR Settlement feature enabled.   This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`
}

type PutRevenueScheduleResponseType

type PutRevenueScheduleResponseType struct {

	// The revenue event number created when a revenue event occurs.
	RevenueEventNumber string `json:"revenueEventNumber,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PutReverseInvoiceResponseType

type PutReverseInvoiceResponseType struct {
	CreditMemo PutReverseInvoiceResponseTypeCreditMemo `json:"creditMemo,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`
}

type PutReverseInvoiceResponseTypeCreditMemo

type PutReverseInvoiceResponseTypeCreditMemo struct {

	// ID of the credit memo.
	Id string `json:"id,omitempty"`
}

Container for the credit memo that is auto-generated when reversing invoices.

type PutReverseInvoiceType

type PutReverseInvoiceType struct {

	// The date when the credit memo was applied to the invoice that will be reversed, in `yyyy-mm-dd` format. The effective date must be later than or equal to the memo date.  Default value is today's date.
	ApplyEffectiveDate time.Time `json:"applyEffectiveDate,omitempty"`

	// The date when the credit memo was created, in `yyyy-mm-dd` format. The memo date must be later than or equal to the invoice date.  Default value is today's date.
	MemoDate time.Time `json:"memoDate,omitempty"`
}

type PutScAddType

type PutScAddType struct {

	// Specifies the type of charges that you want a specific discount to apply to.  Values:  * `ONETIME` * `RECURRING` * `USAGE` * `ONETIMERECURRING` * `ONETIMEUSAGE` * `RECURRINGUSAGE` * `ONETIMERECURRINGUSAGE`  Available for the following charge type for the Discount-Fixed Amount and Discount-Percentage charge models:  * Recurring
	ApplyDiscountTo string `json:"applyDiscountTo,omitempty"`

	// Sets the bill cycle day (BCD) for the charge. The BCD determines which day of the month customer is billed.  Values: `1`-`31`  Available for the following charge types:  * Recurring * Usage-based
	BillCycleDay string `json:"billCycleDay,omitempty"`

	// Specifies how to determine the billing day for the charge. When this field is set to `SpecificDayOfMonth`, set the `BillCycleDay` field. When this field is set to `SpecificDayOfWeek`, set the `weeklyBillCycleDay` field.  Values:  * `DefaultFromCustomer` * `SpecificDayOfMonth` * `SubscriptionStartDay` * `ChargeTriggerDay` * `SpecificDayOfWeek`  Available for the following charge types:  * Recurring * Usage-based
	BillCycleType string `json:"billCycleType,omitempty"`

	// Billing period for the charge. The start day of the billing period is also called the bill cycle day (BCD).  Values:  * `Month` * `Quarter` * `Semi_Annual` * `Annual` * `Eighteen_Months` * `Two_Years` * `Three_Years` * `Five_Years` * `Specific_Months` * `Subscription_Term` * `Week` * `Specific_Weeks`  Available for the following charge types:  * Recurring * Usage-based
	BillingPeriod string `json:"billingPeriod,omitempty"`

	// Aligns charges within the same subscription if multiple charges begin on different dates.  Values:  * `AlignToCharge` * `AlignToSubscriptionStart` * `AlignToTermStart`  Available for the following charge types:  * Recurring * Usage-based
	BillingPeriodAlignment string `json:"billingPeriodAlignment,omitempty"`

	// Billing timing for the charge for recurring charge types. Not avaliable for one time, usage and discount charges.  Values:  * `IN_ADVANCE` (default) * `IN_ARREARS`
	BillingTiming string `json:"billingTiming,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Description of the charge.
	Description string `json:"description,omitempty"`

	// Specifies the amount of fixed-amount discount.  Available for the following charge type for the Discount-Fixed Amount charge model:  * Recurring
	DiscountAmount string `json:"discountAmount,omitempty"`

	// Specifies if the discount applies to the product rate plan only , the entire subscription, or to any activity in the account.  Values:  * `rateplan` * `subscription` * `account`  Available for the following charge type for the Discount-Fixed Amount and Discount-Percentage charge models:  * Recurring
	DiscountLevel string `json:"discountLevel,omitempty"`

	// Specifies the percentage of a percentage discount.   Available for the following charge type for the Discount-Percentage charge model:  * Recurring
	DiscountPercentage string `json:"discountPercentage,omitempty"`

	// Defines when the charge ends after the charge trigger date. If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.  Values:  * `Subscription_End` * `Fixed_Period` * `Specific_End_Date`
	EndDateCondition string `json:"endDateCondition,omitempty"`

	// Specifies the number of units in the base set of units for this charge. Must be >=`0`.  Available for the following charge types for the Overage charge model:  * Recurring * Usage-based
	IncludedUnits string `json:"includedUnits,omitempty"`

	// The list price base for the product rate plan charge.  Values:  * `Per_Billing_Period` * `Per_Month` * `Per_Week`  Available for the following charge type for the Flat Fee, Per Unit, Volume Pricing, and Tiered Pricing charge models:  * Recurring
	ListPriceBase string `json:"listPriceBase,omitempty"`

	// Unique number that identifies the charge. System-generated if not provided.
	Number string `json:"number,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model.  Available for the following charge type for the Overage and Tiered with Overage charge models:  * Usage-based
	NumberOfPeriods int64 `json:"numberOfPeriods,omitempty"`

	// Price for units over the allowed amount.   Available for the following charge type for the Overage and Tiered with Overage charge models:  * Usage-based
	OveragePrice string `json:"overagePrice,omitempty"`

	// Determines whether to credit the customer with unused units of usage.  Values:  * `NoCredit` * `CreditBySpecificRate`  Available for the following charge type for the Overage and Tiered with Overage charge models:  * Usage-based
	OverageUnusedUnitsCreditOption string `json:"overageUnusedUnitsCreditOption,omitempty"`

	// Price for units in the subscription rate plan.  Supports all charge types for the Flat Fee and Per Unit charge models
	Price string `json:"price,omitempty"`

	// Applies an automatic price change when a termed subscription is renewed. The Zuora Billing Admin setting Enable Automatic Price Change When Subscriptions are Renewed?  must be set to Yes to use this field.  See Define Default Subscription Settings for more information on setting this option.  Values:  * `NoChange` (default) * `SpecificPercentageValue` * `UseLatestProductCatalogPricing`  Available for the following charge types:  * Recurring * Usage-based * Not available for the Fixed-Amount Discount charge model.
	PriceChangeOption string `json:"priceChangeOption,omitempty"`

	// Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Required if you set the `PriceChangeOption` field to `SpecificPercentageValue`.  Decimal between -100 and 100.  Available for the following charge types:  * Recurring * Usage-based  Not available for the Fixed-Amount Discount charge model.
	PriceIncreasePercentage string `json:"priceIncreasePercentage,omitempty"`

	//
	ProductRatePlanChargeId string `json:"productRatePlanChargeId"`

	// Number of units. Must be >=`0`.  Available for the following charge types for the Per Unit, Volume Pricing, and Tiered Pricing charge models:  * One-time * Recurring
	Quantity string `json:"quantity,omitempty"`

	// Specifies a rating group based on which usage records are rated.  **Note:** This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).  Values:  * `ByBillingPeriod` (default): The rating is based on all the usages in a billing period.        * `ByUsageStartDate`: The rating is based on all the usages on the same usage start date.  * `ByUsageRecord`: The rating is based on each usage record. * `ByUsageUpload`: The rating is based on all the usages in a uploaded usage file (.xls or .csv).  The `ByBillingPeriod` value can be applied for all charge models. The `ByUsageStartDate`, `ByUsageRecord`, and `ByUsageUpload` values can only be applied for per unit, volume pricing, and tiered pricing charge models. Use this field only for Usage charges. One-Time Charges and Recurring Charges return `NULL`.
	RatingGroup string `json:"ratingGroup,omitempty"`

	// Specifies the number of month or week for the charges billing period. Required if you set the value of the `billingPeriod` field to `Specific_Months` or `Specific_Weeks`.  Available for the following charge types:  * Recurring * Usage-based
	SpecificBillingPeriod int64 `json:"specificBillingPeriod,omitempty"`

	// Defines when the charge ends after the charge trigger date.  This field is only applicable when the `endDateCondition` field is set to `Specific_End_Date`.  If the subscription ends before the specific end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the specific end date.
	SpecificEndDate time.Time `json:"specificEndDate,omitempty"`

	// Container for Volume, Tiered or Tiered with Overage charge models. Supports the following charge types:  * One-time * Recurring * Usage-based
	Tiers []PostTierType `json:"tiers,omitempty"`

	// Specifies when to start billing the customer for the charge. Required if the `triggerEvent` field is set to `USD`.
	TriggerDate time.Time `json:"triggerDate,omitempty"`

	// Specifies when to start billing the customer for the charge.  Values:  * `UCE` * `USA` * `UCA` * `USD`
	TriggerEvent string `json:"triggerEvent,omitempty"`

	// Specifies the rate to credit a customer for unused units of usage. This field applies only for overage charge models when the `OverageUnusedUnitsCreditOption` field is set to `CreditBySpecificRate`.  Available for the following charge type for the Overage and Tiered with Overage charge models:  * Usage-based
	UnusedUnitsCreditRates string `json:"unusedUnitsCreditRates,omitempty"`

	// The period type used to define when the charge ends.   Values:  * `Billing_Periods` * `Days` * `Weeks` * `Months` * `Years`  You must use this field together with the `upToPeriods` field to specify the time period.  This field is applicable only when the `endDateCondition` field is set to `Fixed_Period`.
	UpToPeriods int64 `json:"upToPeriods,omitempty"`

	// The period type used to define when the charge ends.   Values:  * `Billing_Periods` * `Days` * `Weeks` * `Months` * `Years`  You must use this field together with the `upToPeriods` field to specify the time period.  This field is applicable only when the `endDateCondition` field is set to `Fixed_Period`.
	UpToPeriodsType string `json:"upToPeriodsType,omitempty"`
}

type PutScUpdateType

type PutScUpdateType struct {

	// Aligns charges within the same subscription if multiple charges begin on different dates.  Values:  * `AlignToCharge` * `AlignToSubscriptionStart` * `AlignToTermStart`  Available for the following charge types:  * Recurring * Usage-based
	BillingPeriodAlignment string `json:"billingPeriodAlignment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Description of the charge.
	Description string `json:"description,omitempty"`

	// Specifies the number of units in the base set of units for this charge. Must be >=0.  Available for the following charge types for the Overage charge model:  * `Recurring` * `Usage-based`
	IncludedUnits string `json:"includedUnits,omitempty"`

	// Price for units over the allowed amount.   Available for the following charge type for the Overage and Tiered with Overage charge models:  * Usage-based
	OveragePrice string `json:"overagePrice,omitempty"`

	// Price for units in the subscription rate plan.  Supports all charge types for the Flat Fee and Per Unit charge models
	Price string `json:"price,omitempty"`

	// Applies an automatic price change when a termed subscription is renewed. The Billing Admin setting **Enable Automatic Price Change When Subscriptions are Renewed?** must be set to Yes to use this field.  Values:  * `NoChange` (default) * `SpecificPercentageValue` * `UseLatestProductCatalogPricing`  Available for the following charge types:  * Recurring * Usage-based  Not available for the Fixed-Amount Discount charge model.
	PriceChangeOption string `json:"priceChangeOption,omitempty"`

	// Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Required if you set the `PriceChangeOption` field to `SpecificPercentageValue`.  Decimal between `-100` and `100`.  Available for the following charge types:  * Recurring * Usage-based  Not available for the Fixed-Amount Discount charge model.
	PriceIncreasePercentage string `json:"priceIncreasePercentage,omitempty"`

	// Quantity of units; must be greater than zero.
	Quantity string `json:"quantity,omitempty"`

	// ID of a rate-plan charge for this subscription.
	RatePlanChargeId string `json:"ratePlanChargeId"`

	// Container for Volume, Tiered or Tiered with Overage charge models. Supports the following charge types:  * One-time * Recurring * Usage-based
	Tiers []PostTierType `json:"tiers,omitempty"`

	// Specifies when to start billing the customer for the charge. Required if the `triggerEvent` field is set to USD.  `triggerDate` cannot be updated for the following using the REST update subscription call:  * One-time charge type * Discount-Fixed Amount charge model * Discount-Percentage charge model
	TriggerDate time.Time `json:"triggerDate,omitempty"`

	// Specifies when to start billing the customer for the charge.  Values:  * `UCE` * `USA` * `UCA` * `USD`  This is the date when charge changes in the REST request become effective.  `triggerEvent` cannot be updated for the following using the REST update subscription call:  * One-time charge type * Discount-Fixed Amount charge model * Discount-Percentage charge model
	TriggerEvent string `json:"triggerEvent,omitempty"`
}

type PutScheduleRiDetailType

type PutScheduleRiDetailType struct {

	// Revenue items are listed in ascending order by the accounting period start date.  Include at least one custom field.
	RevenueItems []RevenueScheduleItemType `json:"revenueItems"`
}

type PutSendUserAccessRequestResponseType

type PutSendUserAccessRequestResponseType struct {

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type PutSendUserAccessRequestType

type PutSendUserAccessRequestType struct {

	// The ID of the entities that the user wants to access.
	TargetEntityIds []string `json:"targetEntityIds"`
}

type PutSpecificDateAllocationType

type PutSpecificDateAllocationType struct {

	// The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as `JPY 30` or `USD 30.15`. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned: `Allocation amount with wrong decimal places.`
	Amount string `json:"amount,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The recognition date on which to distribute revenue for milestone-based recognition.  Type: date in `yyyy-mm-dd` format.
	DistributeOn time.Time `json:"distributeOn"`

	// How to distribute the revenue for milestone-based recognition.
	DistributionType string `json:"distributionType"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.
	EventTypeSystemId string `json:"eventTypeSystemId,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// Percentage of the total recognition amount or total undistributed to distribute.  Required if distributionType is either: * specific date (delta percent total) * specific date (delta percent undistributed)
	Percentage string `json:"percentage,omitempty"`
}

type PutSrpAddType

type PutSrpAddType struct {

	// This optional container is used to override the quantity of one or more product rate plan charges for this subscription.
	ChargeOverrides []PutScAddType `json:"chargeOverrides,omitempty"`

	// The date when the amendment changes take effect. The format of the date is yyyy-mm-dd.  If there is already a future-dated Update Product amendment on the subscription, the `specificUpdateDate` field will be used instead of this field to specify when the Update Product amendment takes effect.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the customer accepts the contract in yyyy-mm-dd format.  If this field is not set:  * If the `serviceActivationDate` field is not set, the value of this field is set to be the contract effective date. * If the `serviceActivationDate` field is set, the value of this field is set to be the service activation date.  The billing trigger dates must follow this rule:  contractEffectiveDate <= serviceActivationDate <= contractAcceptanceDate
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// ID of a product rate plan for this subscription
	ProductRatePlanId string `json:"productRatePlanId"`

	// The date when the new product in the subscription is activated in yyyy-mm-dd format.  You must specify a Service Activation date if the Customer Acceptance date is set. If the Customer Acceptance date is not set, the value of the `serviceActivationDate` field defaults to be the Contract Effective Date.  The billing trigger dates must follow this rule:  contractEffectiveDate <= serviceActivationDate <= contractAcceptanceDate
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`
}

type PutSrpRemoveType

type PutSrpRemoveType struct {

	// Effective date of the new subscription, as yyyy-mm-dd.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate"`

	// The date when the customer accepts the contract in yyyy-mm-dd format.  If this field is not set:  * If the `serviceActivationDate` field is not set, the value of this field is set to be the contract effective date. * If the `serviceActivationDate` field is set, the value of this field is set to be the service activation date.  The billing trigger dates must follow this rule:  contractEffectiveDate <= serviceActivationDate <= contractAcceptanceDate
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// ID of a rate-plan charge for this subscription
	RatePlanId string `json:"ratePlanId"`

	// The date when the remove amendment is activated in yyyy-mm-dd format.  You must specify a Service Activation date if the Customer Acceptance date is set. If the Customer Acceptance date is not set, the value of the `serviceActivationDate` field defaults to be the Contract Effective Date.  The billing trigger dates must follow this rule:  contractEffectiveDate <= serviceActivationDate <= contractAcceptanceDate
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`
}

type PutSrpUpdateType

type PutSrpUpdateType struct {

	// Container for one or more product rate plan charges.
	ChargeUpdateDetails []PutScUpdateType `json:"chargeUpdateDetails,omitempty"`

	// The date when the amendment changes take effect. The format of the date is yyyy-mm-dd.  If there is already a future-dated Update Product amendment on the subscription, the `specificUpdateDate` field will be used instead of this field to specify when the Update Product amendment takes effect.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// The date when the customer accepts the contract in yyyy-mm-dd format.  If this field is not set:  * If the `serviceActivationDate` field is not set, the value of this field is set to be the contract effective date. * If the `serviceActivationDate` field is set, the value of this field is set to be the service activation date.  The billing trigger dates must follow this rule:  contractEffectiveDate <= serviceActivationDate <= contractAcceptanceDate
	CustomerAcceptanceDate time.Time `json:"customerAcceptanceDate,omitempty"`

	// ID of a rate plan for this subscription.
	RatePlanId string `json:"ratePlanId"`

	// The date when the update amendment is activated in yyyy-mm-dd format.  You must specify a Service Activation date if the Customer Acceptance date is set. If the Customer Acceptance date is not set, the value of the `serviceActivationDate` field defaults to be the Contract Effective Date.  The billing trigger dates must follow this rule:  contractEffectiveDate <= serviceActivationDate <= contractAcceptanceDate
	ServiceActivationDate time.Time `json:"serviceActivationDate,omitempty"`

	// The date when the Update Product amendment takes effect. This field is only applicable if there is already a future-dated Update Product amendment on the subscription. The format of the date is yyyy-mm-dd.  Required only for Update Product amendments if there is already a future-dated Update Product amendment on the subscription.
	SpecificUpdateDate time.Time `json:"specificUpdateDate,omitempty"`
}

type PutSubscriptionPreviewInvoiceItemsType

type PutSubscriptionPreviewInvoiceItemsType struct {

	// The amount of the charge. This amount doesn't include taxes unless the charge's tax mode is inclusive.
	ChargeAmount string `json:"chargeAmount,omitempty"`

	// Description of the charge.
	ChargeDescription string `json:"chargeDescription,omitempty"`

	// Name of the charge
	ChargeName string `json:"chargeName,omitempty"`

	// Name of the product associated with this item.
	ProductName string `json:"productName,omitempty"`

	//
	ProductRatePlanChargeId string `json:"productRatePlanChargeId,omitempty"`

	// Quantity of this item.
	Quantity string `json:"quantity,omitempty"`

	// End date of the service period for this item, i.e., the last day of the period, as yyyy-mm-dd.
	ServiceEndDate time.Time `json:"serviceEndDate,omitempty"`

	// Service start date as yyyy-mm-dd. If the charge is a one-time fee, this is the date of that charge.
	ServiceStartDate time.Time `json:"serviceStartDate,omitempty"`

	//
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
}

type PutSubscriptionResponseType

type PutSubscriptionResponseType struct {

	// Invoice amount. Preview mode only.
	Amount string `json:"amount,omitempty"`

	// Invoice amount minus tax. Preview mode only.
	AmountWithoutTax string `json:"amountWithoutTax,omitempty"`

	ChargeMetrics PutSubscriptionResponseTypeChargeMetrics `json:"chargeMetrics,omitempty"`

	CreditMemo PutSubscriptionResponseTypeCreditMemo `json:"creditMemo,omitempty"`

	// Container for invoices.    **Note:** This field is only available if you set the Zuora REST API minor version to 207.0 or later in the request header. Also, the response structure is changed and the following invoice related response fields are moved to this **invoice** container:       * amount    * amountWithoutTax    * taxAmount    * invoiceItems    * targetDate    * chargeMetrics
	Invoice interface{} `json:"invoice,omitempty"`

	// Invoice ID, if an invoice is generated during the update.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Container for invoice items.
	InvoiceItems []PutSubscriptionPreviewInvoiceItemsType `json:"invoiceItems,omitempty"`

	// Date through which charges are calculated on the invoice, as yyyy-mm-dd. Preview mode only.  **Note:** This field is only available if you do not specify the Zuora REST API minor version or specify the minor version to 186.0, 187.0, 188.0, 189.0, and 196.0. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// Payment amount, if a payment is collected
	PaidAmount string `json:"paidAmount,omitempty"`

	// Payment ID, if a payment is collected.
	PaymentId string `json:"paymentId,omitempty"`

	//
	PreviewChargeMetricsResponse string `json:"previewChargeMetricsResponse,omitempty"`

	// The ID of the resulting new subscription.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.  **Note:** This field is only available if you set the Zuora REST API minor version to 207.0 or later in the request header. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// Tax amount on the invoice.
	TaxAmount string `json:"taxAmount,omitempty"`

	// Change in the subscription monthly recurring revenue as a result of the update.
	TotalDeltaMrr string `json:"totalDeltaMrr,omitempty"`

	// Change in the total contracted value of the subscription as a result of the update.
	TotalDeltaTcv string `json:"totalDeltaTcv,omitempty"`
}

type PutSubscriptionResponseTypeChargeMetrics

type PutSubscriptionResponseTypeChargeMetrics struct {

	// Change in total contract value.
	Dmrr string `json:"dmrr,omitempty"`

	// Change in monthly recurring revenue.
	Dtcv string `json:"dtcv,omitempty"`

	// Monthly recurring revenue.
	Mrr string `json:"mrr,omitempty"`

	// The charge number of the subscription. Only available for update subscription.
	Number string `json:"number,omitempty"`

	// The origin rate plan ID. Only available for update subscription.
	OriginRatePlanId string `json:"originRatePlanId,omitempty"`

	// The original rate plan charge ID. Only available for update subscription.
	OriginalId string `json:"originalId,omitempty"`

	//
	ProductRatePlanChargeId string `json:"productRatePlanChargeId,omitempty"`

	//
	ProductRatePlanId string `json:"productRatePlanId,omitempty"`

	// Total contract value.
	Tcv string `json:"tcv,omitempty"`
}

Container for charge metrics.

type PutSubscriptionResponseTypeCreditMemo

type PutSubscriptionResponseTypeCreditMemo struct {

	// Credit memo amount.
	Amount float64 `json:"amount,omitempty"`

	// Credit memo amount minus tax.
	AmountWithoutTax float64 `json:"amountWithoutTax,omitempty"`

	//
	CreditMemoItems []PostSubscriptionPreviewCreditMemoItemsType `json:"creditMemoItems,omitempty"`

	// Tax amount on the credit memo.
	TaxAmount float64 `json:"taxAmount,omitempty"`
}

Container for credit memos. **Note:** This container is only available if you set the Zuora REST API minor version to 207.0 or later in the request header, and you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).

type PutSubscriptionResumeResponseType

type PutSubscriptionResumeResponseType struct {

	// Invoice ID, if an invoice is generated during the subscription process.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Payment amount, if a payment is collected.
	PaidAmount string `json:"paidAmount,omitempty"`

	// Payment ID, if a payment is collected.
	PaymentId string `json:"paymentId,omitempty"`

	// The date when subscription resumption takes effect, as yyyy-mm-dd.
	ResumeDate time.Time `json:"resumeDate,omitempty"`

	// The subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The date when the new subscription term ends, as yyyy-mm-dd.
	TermEndDate time.Time `json:"termEndDate,omitempty"`

	// Change in the total contracted value of the subscription as a result of the update.
	TotalDeltaTcv string `json:"totalDeltaTcv,omitempty"`
}

type PutSubscriptionResumeType

type PutSubscriptionResumeType struct {

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.   To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.  Prerequisite: `invoice` must be `true`.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account.  If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is false.  This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.  Prerequisite: `invoice` must be `true`.
	Collect bool `json:"collect,omitempty"`

	// The date when the customer notifies you that they want to resume their subscription.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate,omitempty"`

	// Whether to extend the subscription term by the length of time the suspension is in effect.  Values: `true`, `false`.
	ExtendsTerm bool `json:"extendsTerm,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.   Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken. The default value is `false`.   This field is in Zuora REST API version control. Supported minor versions are `196.0` and `207.0`. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	Invoice bool `json:"invoice,omitempty"`

	// **Note:** This field has been replaced by the `invoice` field and the `collect` field. `invoiceCollect` is available only for backward compatibility.  If `true`, an invoice is generated and payment collected automatically during the subscription process. If `false` (default), no invoicing or payment takes place.  The invoice generated in this operation is only for this subscription, not for the entire customer account.  This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0.
	InvoiceCollect bool `json:"invoiceCollect,omitempty"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.   Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in Zuora REST API version control. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// The length of the period used to specify when the subscription is resumed. The subscription resumption takes effect after a specified period based on the suspend date or today's date. You must use this field together with the `resumePeriodsType` field to specify the period.  **Note:** This field is only applicable when the `suspendPolicy` field is set to `FixedPeriodsFromToday` or `FixedPeriodsFromSuspendDate`.
	ResumePeriods string `json:"resumePeriods,omitempty"`

	// The period type used to define when the subscription resumption takes effect. The subscription resumption takes effect after a specified period based on the suspend date or today's date. You must use this field together with the `resumePeriods` field to specify the period.  Values: `Day`, `Week`, `Month`, `Year`  **Note:** This field is only applicable when the `suspendPolicy` field is set to `FixedPeriodsFromToday` or `FixedPeriodsFromSuspendDate`.
	ResumePeriodsType string `json:"resumePeriodsType,omitempty"`

	// Resume methods. Specify a way to resume a subscription.  Values:  * `Today`: The subscription resumption takes effect on today's date.  * `FixedPeriodsFromSuspendDate`: The subscription resumption takes effect after a specified period based on the suspend date. You must specify the `resumePeriods` and `resumePeriodsType` fields to define the period.  * `SpecificDate`: The subscription resumption takes effect on a specific date. You must define the specific date in the `resumeSpecificDate` field.  * `FixedPeriodsFromToday`: The subscription resumption takes effect after a specified period based on the today's date. You must specify the `resumePeriods` and `resumePeriodsType` fields to define the period.
	ResumePolicy string `json:"resumePolicy"`

	// A specific date when the subscription resumption takes effect, in the format yyyy-mm-dd.  **Note:** This field is only applicable only when the `resumePolicy` field is set to `SpecificDate`.  The value should not be earlier than the subscription suspension date.
	ResumeSpecificDate time.Time `json:"resumeSpecificDate,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).     The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.   **Note:** The credit memo is only available if you have the Avdanced AR Settlement feature enabled.   This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`
}

type PutSubscriptionSuspendResponseType

type PutSubscriptionSuspendResponseType struct {

	// Invoice ID, if an invoice is generated during the subscription process.
	InvoiceId string `json:"invoiceId,omitempty"`

	// Payment amount, if a payment is collected.
	PaidAmount string `json:"paidAmount,omitempty"`

	// Payment ID, if a payment is collected.
	PaymentId string `json:"paymentId,omitempty"`

	// The date when subscription resumption takes effect, in the format yyyy-mm-dd.
	ResumeDate time.Time `json:"resumeDate,omitempty"`

	// The subscription ID.
	SubscriptionId string `json:"subscriptionId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The date when subscription suspension takes effect, in the format yyyy-mm-dd.
	SuspendDate time.Time `json:"suspendDate,omitempty"`

	// The date when the new subscription term ends, in the format yyyy-mm-dd.
	TermEndDate time.Time `json:"termEndDate,omitempty"`

	// Change in the total contracted value of the subscription as a result of the update.
	TotalDeltaTcv string `json:"totalDeltaTcv,omitempty"`
}

type PutSubscriptionSuspendType

type PutSubscriptionSuspendType struct {

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.   To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.  Prerequisite: `invoice` must be `true`.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account.  If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is `false`.  Prerequisite: `invoice` must be `true`.   **Note:** This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` field to the minor version number in the request
	Collect bool `json:"collect,omitempty"`

	// The date when the customer notifies you that they want to amend their subscription.
	ContractEffectiveDate time.Time `json:"contractEffectiveDate,omitempty"`

	// Whether to extend the subscription term by the length of time the suspension is in effect. Values: `true`, `false`.
	ExtendsTerm bool `json:"extendsTerm,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.   Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken. The default value is `false`.    This field is in Zuora REST API version control. Supported minor versions are `196.0` and `207.0`. To use this field in the method, you must set the zuora-version parameter to the minor version number in the request header.
	Invoice bool `json:"invoice,omitempty"`

	// **Note:** This field has been replaced by the `invoice` field and the `collect` field. `invoiceCollect` is available only for backward compatibility.  This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0.
	InvoiceCollect bool `json:"invoiceCollect,omitempty"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.   Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in Zuora REST API version control. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// Whether to set when to resume a subscription when creating a suspend amendment. Values: `true`, `false`.
	Resume bool `json:"resume,omitempty"`

	// The length of the period used to specify when the subscription is resumed. The subscription resumption takes effect after a specified period based on the suspend date or today's date. You must use this field together with the `resumePeriodsType` field to specify the period.  **Note:** This field is only applicable when the `suspendPolicy` field is set to `FixedPeriodsFromToday` or `FixedPeriodsFromSuspendDate`.
	ResumePeriods string `json:"resumePeriods,omitempty"`

	// The period type used to define when the subscription resumption takes effect. The subscription resumption takes effect after a specified period based on the suspend date or today's date. You must use this field together with the resumePeriods field to specify the period.  Values: `Day`, `Week`, `Month`, `Year`  **Note:** This field is only applicable when the `suspendPolicy` field is set to `FixedPeriodsFromToday` or `FixedPeriodsFromSuspendDate`.
	ResumePeriodsType string `json:"resumePeriodsType,omitempty"`

	// Resume methods. Specify a way to resume a subscription. Values:  * `Today`: The subscription resumption takes effect on today's date.  * `FixedPeriodsFromSuspendDate`: The subscription resumption takes effect after a specified period based on the suspend date. You must specify the `resumePeriods` and `resumePeriodsType` fields to define the period.  * `SpecificDate`: The subscription resumption takes effect on a specific date. You must define the specific date in the `resumeSpecificDate` field.  * `FixedPeriodsFromToday`: The subscription resumption takes effect after a specified period based on the today's date. You must specify the `resumePeriods` and `resumePeriodsType` fields to define the period.
	ResumePolicy string `json:"resumePolicy,omitempty"`

	// A specific date when the subscription resumption takes effect, in the format yyyy-mm-dd.  **Note:** This field is only applicable only when the `resumePolicy` field is set to `SpecificDate`.  The value should not be earlier than the subscription suspension date.
	ResumeSpecificDate time.Time `json:"resumeSpecificDate,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).     The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	// The length of the period used to specify when the subscription suspension takes effect. The subscription suspension takes effect after a specified period based on today's date. You must use this field together with the `suspendPeriodsType` field to specify the period.  **Note:** This field is only applicable only when the suspendPolicy field is set to FixedPeriodsFromToday.
	SuspendPeriods string `json:"suspendPeriods,omitempty"`

	// The period type used to define when the subscription suspension takes effect. The subscription suspension takes effect after a specified period based on today's date. You must use this field together with the suspendPeriods field to specify the period.  Type: string (enum)  Values: `Day`, `Week`, `Month`, `Year`  **Note:** This field is only applicable only when the suspendPolicy field is set to FixedPeriodsFromToday.
	SuspendPeriodsType string `json:"suspendPeriodsType,omitempty"`

	// Suspend methods. Specify a way to suspend a subscription.   Value:  * `Today`: The subscription suspension takes effect on today's date. * `EndOfLastInvoicePeriod`: The subscription suspension takes effect at the end of the last invoice period. The suspend date defaults to a date that is one day after the last invoiced period. You can choose this option to avoid any negative invoices (credits) issued back to the customer after the subscription suspension.  * `SpecificDate`: The subscription suspension takes effect on a specific date. You must define the specific date in the `suspendSpecificDate` field. * `FixedPeriodsFromToday`: The subscription suspension takes effect after a specified period based on today's date. You must specify the `suspendPeriods` and `suspendPeriodsType` fields to define the period.
	SuspendPolicy string `json:"suspendPolicy"`

	// A specific date when the subscription suspension takes effect, in the format yyyy-mm-dd.  **Note:** This field is only applicable only when the suspendPolicy field is set to SpecificDate.  The value should not be earlier than the subscription contract effective date, later than the subscription term end date, or within a period for which the customer has been invoiced.
	SuspendSpecificDate time.Time `json:"suspendSpecificDate,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.   **Note:** The credit memo is only available if you have the Avdanced AR Settlement feature enabled.   This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`
}

type PutSubscriptionType

type PutSubscriptionType struct {

	//
	CpqBundleJsonIdQT string `json:"CpqBundleJsonId__QT,omitempty"`

	// The closing date of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityCloseDateQT string `json:"OpportunityCloseDate__QT,omitempty"`

	// The unique identifier of the Opportunity. This field is populated when the subscription originates from Zuora Quotes.  This field is used only for reporting subscription metrics.
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	// The specific identifier for the type of business transaction the Quote represents such as `New`, `Upsell`, `Downsell`, `Renewal`, or `Churn`. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	// The unique identifier of the Quote. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	// The Quote type that represents the subscription lifecycle stage such as `New`, `Amendment`, `Renew`, or `Cancel`. This field is populated when the subscription originates from Zuora Quotes.            This field is used only for reporting subscription metrics.
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	// Container for adding one or more rate plans.
	Add []PutSrpAddType `json:"add,omitempty"`

	// Applies a credit balance to an invoice.  If the value is `true`, the credit balance is applied to the invoice. If the value is `false`, no action is taken.   To view the credit balance adjustment, retrieve the details of the invoice using the Get Invoices method.  Prerequisite: `invoice` must be `true`.   **Note:**    - If you are using the field `invoiceCollect` rather than the field `invoice`, the `invoiceCollect` value must be `true`.   - This field is deprecated if you have the Advanced AR Settlement feature enabled.
	ApplyCreditBalance bool `json:"applyCreditBalance,omitempty"`

	// If `true`, this subscription automatically renews at the end of the subscription term. Default is `false`.
	AutoRenew bool `json:"autoRenew,omitempty"`

	// Collects an automatic payment for a subscription. The collection generated in this operation is only for this subscription, not for the entire customer account. If the value is `true`, the automatic payment is collected. If the value is `false`, no action is taken.  The default value is false.  **Prerequisite:** `invoice` must be `true`.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 196.0 or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	Collect bool `json:"collect,omitempty"`

	// The length of the period for the current subscription term. If `termType` is `TERMED`, this field is required and must be greater than `0`. If `termType` is `EVERGREEN`, this value is ignored. Default is `0`.
	CurrentTerm int64 `json:"currentTerm,omitempty"`

	// The period type for the current subscription term.  This field is used with the `CurrentTerm` field to specify the current subscription term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	CurrentTermPeriodType string `json:"currentTermPeriodType,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Specifies whether to include draft invoice items in subscription previews. Values are:  * `true` (default). Includes draft invoice items in the preview result. * `false`. Excludes draft invoice items in the preview result.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 207.0 or later. To use this field in the method, you must set the **zuora-version** parameter to the minor version number in the request header. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	IncludeExistingDraftDocItems bool `json:"includeExistingDraftDocItems,omitempty"`

	// Specifies whether to include draft invoice items in subscription previews. Values are:  * `true` (default). Includes draft invoice items in the preview result. * `false`. Excludes draft invoice items in the preview result.  **Note:** This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	IncludeExistingDraftInvoiceItems bool `json:"includeExistingDraftInvoiceItems,omitempty"`

	// **Note:** This field has been replaced by the `runBilling` field. The `invoice` field is only available for backward compatibility.   Creates an invoice for a subscription. The invoice generated in this operation is only for this subscription, not for the entire customer account.   If the value is `true`, an invoice is created. If the value is `false`, no action is taken. The default value is `false`.    This field is in Zuora REST API version control. Supported minor versions are `196.0` and `207.0`. To use this field in the method, you must set the zuora-version parameter to the minor version number in the request header.
	Invoice bool `json:"invoice,omitempty"`

	// **Note:** This field has been replaced by the `invoice` field and the `collect` field. `invoiceCollect` is available only for backward compatibility.  If `true`, an invoice is generated and payment collected automatically during the subscription process. If `false` (default), no invoicing or payment takes place.  The invoice generated in this operation is only for this subscription, not for the entire customer account.  This field is in Zuora REST API version control. Supported minor versions are 186.0, 187.0, 188.0, 189.0, and 196.0.
	InvoiceCollect bool `json:"invoiceCollect,omitempty"`

	// Separates a single subscription from other subscriptions and invoices the charge independently.   If the value is `true`, the subscription is billed separately from other subscriptions. If the value is `false`, the subscription is included with other subscriptions in the account invoice.  The default value is `false`. Prerequisite: The default subscription setting Enable Subscriptions to be Invoiced Separately must be set to Yes.
	InvoiceSeparately bool `json:"invoiceSeparately,omitempty"`

	// **Note:** This field has been replaced by the `targetDate` field. The `invoiceTargetDate` field is only available for backward compatibility.   Date through which to calculate charges if an invoice is generated, as yyyy-mm-dd. Default is current date.   This field is in Zuora REST API version control. Supported minor versions are `207.0` and earlier.
	InvoiceTargetDate time.Time `json:"invoiceTargetDate,omitempty"`

	// String of up to 500 characters.
	Notes string `json:"notes,omitempty"`

	// If `true` the update is made in preview mode. The default setting is `false`.
	Preview bool `json:"preview,omitempty"`

	// The type of preview you will receive.   This field is in Zuora REST API version control. The supported values of this field depend on the REST API minor version you specified in the request header.   * If you do not specify the REST API minor version or specify the minor version number to one of following values in the request header:     * 186.0   * 187.0   * 188.0   * 189.0   * 196.0       The following values are supported in the **previewType** field:    * InvoiceItem   * ChargeMetrics   * InvoiceItemChargeMetrics      The default value is InvoiceItem.  * If you specify the REST API minor version to 207.0 or later in the request header, the following values are supported in the **previewType** field:    - LegalDoc   - ChargeMetrics   - LegalDocChargeMetrics    The default value is LegalDoc.  See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
	PreviewType string `json:"previewType,omitempty"`

	// Container for removing one or more rate plans.
	Remove []PutSrpRemoveType `json:"remove,omitempty"`

	// Specifies whether a termed subscription will remain `TERMED` or change to `EVERGREEN` when it is renewed.   Values are:  * `RENEW_WITH_SPECIFIC_TERM` (default) * `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"renewalSetting,omitempty"`

	// The length of the period for the subscription renewal term. Default is `0`.
	RenewalTerm int64 `json:"renewalTerm,omitempty"`

	//  The period type for the subscription renewal term.  This field is used with the `renewalTerm` field to specify the subscription renewal term.  Values are:  * `Month` (default) * `Year` * `Day` * `Week`
	RenewalTermPeriodType string `json:"renewalTermPeriodType,omitempty"`

	// Creates an invoice for a subscription. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created based on the [invoice and credit memo generation rule](https://knowledgecenter.zuora.com/CB_Billing/Advanced_AR_Settlement/Credit_and_Debit_Memos/Rules_for_Generating_Invoices_and_Credit_Memos).     The billing documents generated in this operation is only for this subscription, not for the entire customer account.   Possible values:  - `true`: An invoice is created. If you have the Advanced AR Settlement feature enabled, a credit memo might also be created.   - `false`: No invoice is created.   **Note:** This field is in Zuora REST API version control. Supported minor versions are `211.0` or later. To use this field in the method, you must set the `zuora-version` parameter to the minor version number in the request header.
	RunBilling bool `json:"runBilling,omitempty"`

	// Date through which to calculate charges if an invoice or a credit memo is generated, as yyyy-mm-dd. Default is current date.   **Note:** The credit memo is only available if you have the Avdanced AR Settlement feature enabled.   This field is in Zuora REST API version control. Supported minor versions are `211.0` and later. To use this field in the method, you must set the  `zuora-version` parameter to the minor version number in the request header.
	TargetDate time.Time `json:"targetDate,omitempty"`

	// Date the subscription term begins, as yyyy-mm-dd. If this is a renewal subscription, this date is different from the subscription start date.
	TermStartDate time.Time `json:"termStartDate,omitempty"`

	// Possible values are: `TERMED`, `EVERGREEN`.
	TermType string `json:"termType,omitempty"`

	// Container for updating one or more rate plans.
	Update []PutSrpUpdateType `json:"update,omitempty"`
}

type PutTaxationItemType

type PutTaxationItemType struct {

	// The amount of taxes or VAT for which the customer has an exemption.
	ExemptAmount float64 `json:"exemptAmount,omitempty"`

	FinanceInformation PostTaxationItemForCmTypeFinanceInformation `json:"financeInformation,omitempty"`

	// The jurisdiction that applies the tax or VAT. This value is typically a state, province, county, or city.
	Jurisdiction string `json:"jurisdiction"`

	// The identifier for the location based on the value of the `taxCode` field.
	LocationCode string `json:"locationCode,omitempty"`

	// The name of the taxation item to be updated.
	Name string `json:"name"`

	// The amount of the tax applied to the credit or debit memo.
	TaxAmount float64 `json:"taxAmount"`

	// The tax code identifies which tax rules and tax rates to apply to a specific credit or debit memo.
	TaxCode string `json:"taxCode,omitempty"`

	// The description of the tax code.
	TaxCodeDescription string `json:"taxCodeDescription,omitempty"`

	// The date when the tax is applied to the credit or debit memo.
	TaxDate time.Time `json:"taxDate,omitempty"`

	// The tax rate applied to the credit or debit memo.
	TaxRate float64 `json:"taxRate"`

	// The description of the tax rate.
	TaxRateDescription string `json:"taxRateDescription,omitempty"`

	// The type of the tax rate applied to the credit or debit memo.
	TaxRateType string `json:"taxRateType"`
}

type PutrsBasicInfoType

type PutrsBasicInfoType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// Reference ID is used only in the custom unlimited rule to create a revenue schedule. In this scenario, the revenue schedule is not linked to an invoice item or invoice item adjustment.  Use this field only when the revenue schedule is not linked to an invoice item or invoice item adjustment, such as for revenue schedules based on the Custom - Unlimited recognition model.
	ReferenceId string `json:"referenceId,omitempty"`
}

type PutrsTermType

type PutrsTermType struct {

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	// How you want to distribute the revenue.    * Daily Distribution: Distributes revenue evenly across each day between the recognitionStart and recognitionEnd dates. * Monthly Distribution (Back Load): Back loads the revenue so you distribute the monthly amount in the partial month in the end only. * Monthly Distribution (Front Load): Front loads the revenue so you distribute the monthly amount in the partial month in the beginning only. * Monthly Distribution (Proration by Days): Splits the revenue amount between the two partial months.  **Note:** To use any of the Monthly Distribution options, you must have the \"Monthly recognition over time\" model enabled in **Settings > Finance > Manage Revenue Recognition Models** in the Zuora UI.
	DistributionType string `json:"distributionType,omitempty"`

	// Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.  Note that `Credit Memo Posted` and `Debit Memo Posted` are only available if you enable the Advanced AR Settlement feature.
	EventType string `json:"eventType,omitempty"`

	// System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to **Settings > Finance > Configure Revenue Event Types** in the Zuora UI.
	EventTypeSystemId string `json:"eventTypeSystemId,omitempty"`

	// Additional information about this record.
	Notes string `json:"notes,omitempty"`

	// The end date of a recognition period in `yyyy-mm-dd` format.   The maximum difference between the `recognitionStart` and `recognitionEnd` date fields is equal to 250 multiplied by the length of an accounting period.
	RecognitionEnd time.Time `json:"recognitionEnd"`

	// The start date of a recognition period in `yyyy-mm-dd` format.  If there is a closed accounting period between the `recognitionStart` and `recognitionEnd` dates, the revenue that would be placed in the closed accounting period is instead placed in the next open accounting period.
	RecognitionStart time.Time `json:"recognitionStart"`
}

type QuotesDocumentApi

type QuotesDocumentApi struct {
	Configuration *Configuration
}

func NewQuotesDocumentApi

func NewQuotesDocumentApi() *QuotesDocumentApi

func NewQuotesDocumentApiWithBasePath

func NewQuotesDocumentApiWithBasePath(basePath string) *QuotesDocumentApi

func (QuotesDocumentApi) POSTQuotesDocument

func (a QuotesDocumentApi) POSTQuotesDocument(request PostQuoteDocType, entityId string, entityName string) (*PostQuoteDocResponseType, *APIResponse, error)

*

type RSASignaturesApi

type RSASignaturesApi struct {
	Configuration *Configuration
}

func NewRSASignaturesApi

func NewRSASignaturesApi() *RSASignaturesApi

func NewRSASignaturesApiWithBasePath

func NewRSASignaturesApiWithBasePath(basePath string) *RSASignaturesApi

func (RSASignaturesApi) POSTDecryptRSASignatures

func (a RSASignaturesApi) POSTDecryptRSASignatures(request PostDecryptionType, entityId string, entityName string) (*PostDecryptResponseType, *APIResponse, error)

*

func (RSASignaturesApi) POSTRSASignatures

func (a RSASignaturesApi) POSTRSASignatures(request PostrsaSignatureType, entityId string, entityName string) (*PostrsaSignatureResponseType, *APIResponse, error)

*

type RatePlan

type RatePlan struct {

	//  The ID of the amendment associated with the rate plan. This field only applies to amendment rate plans.   **Character limit**: 32  **Values**: a valid amendment ID
	AmendmentId string `json:"AmendmentId,omitempty"`

	// The ID of the subscription rate plan modified by the amendment. This field only applies to amendment rate plans.  **Character limit**: 32  **Values**: a valid rate plan ID
	AmendmentSubscriptionRatePlanId string `json:"AmendmentSubscriptionRatePlanId,omitempty"`

	// The type of amendment associated with the rate plan. This field only applies to amendment rate plans.  **Character limit**: 18  **Values**: inherited from `Amendment.Type`
	AmendmentType string `json:"AmendmentType,omitempty"`

	// The ID of the Zuora user who created the RatePlan object.  **Character limit**: 32  **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the `RatePlan` object was last updated.  **Character limit**: 29  **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// The name of the rate plan. Leave this null in a subscribe call to inherited the `ProductRatePlan.Name` field value.  **Character limit**: 100  **Values**: a string of 100 characters or fewer or inherited from ProductRatePlan.Name
	Name string `json:"Name,omitempty"`

	// The ID of the associated product rate plan.  **Character limit**: 32  **Values**: a valid product rate plan ID
	ProductRatePlanId string `json:"ProductRatePlanId,omitempty"`

	// The ID of the subscription that the rate plan belongs to.  **Character limit**: 32  **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The ID of the user who last updated the rate plan.   **Character limit**: 32  **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the rate plan was last updated.   **Character limit**: 29  **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type RatePlanChargeData

type RatePlanChargeData struct {
	RatePlanCharge RatePlanChargeDataRatePlanCharge `json:"RatePlanCharge,omitempty"`

	//
	RatePlanChargeTier []RatePlanChargeTier `json:"RatePlanChargeTier,omitempty"`
}

type RatePlanChargeDataInRatePlanData

type RatePlanChargeDataInRatePlanData struct {
	RatePlanCharge RatePlanChargeDataInRatePlanDataRatePlanCharge `json:"RatePlanCharge,omitempty"`

	//
	RatePlanChargeTier []RatePlanChargeTier `json:"RatePlanChargeTier,omitempty"`
}

type RatePlanChargeDataInRatePlanDataRatePlanCharge

type RatePlanChargeDataInRatePlanDataRatePlanCharge struct {

	// The accounting code for the charge. Accounting codes group transactions that contain similar accounting attributes.  **Character limit**: 100   **Values**: inherited from `ProductRatePlanCharge.AccountingCode`
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  Specifies the type of charges a specific discount applies to.  **Character limit**: 21   **Values**: inherited from `ProductRatePlanCharge.ApplyDiscountTo`
	ApplyDiscountTo string `json:"ApplyDiscountTo,omitempty"`

	//  Indicates the charge's billing cycle day (BCD), which is when bill runs generate invoices for charges associated with the product rate plan charge or the account.   **Character limit**: 2   **Values**: inherited from `ProductRatePlanCharge.BillCycleDay`
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	//  Specifies how to determine the billing day for the charge.   **Character limit**: 20   **Values**: inherited from `ProductRatePlanCharge.BillCycleType` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	BillCycleType string `json:"BillCycleType,omitempty"`

	//  Allows billing period to be overridden on rate plan charge.    **Values**: inherited from `ProductRatePlanCharge.BillingPeriod` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	BillingPeriod string `json:"BillingPeriod,omitempty"`

	//  Aligns charges within the same subscription if multiple charges begin on different dates.   **Character limit**: 24   **Values**: inherited from `ProductRatePlanCharge.BillingPeriodAlignment`
	BillingPeriodAlignment string `json:"BillingPeriodAlignment,omitempty"`

	//  The billing timing for the charge. You can choose to bill in advance or in arrears for recurring charge types. This field is not used in one-time or usage based charge types.   **Character limit**:   **Values**: one of the following:  - I`n Advance` - `In Arrears` **Note:** You can override the value inherited from the Product Rate Plan Charge when a subscription has a recurring charge type. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	BillingTiming string `json:"BillingTiming,omitempty"`

	//  Determines how to evaluate charges. Charge models must be individually activated in the web-based UI.   **Character limit**: 29   **Values**: inherited from `ProductRatePlanCharge.ChargeModel`
	ChargeModel string `json:"ChargeModel,omitempty"`

	//  A unique number that identifies the charge. This number is returned as a string.   **Character limit**: 50   **Values**: one of the following:  - automatically generated if left null - a unique number of 50 characters or fewer
	ChargeNumber string `json:"ChargeNumber,omitempty"`

	//  Specifies the type of charge.   **Character limit**: 9   **Values**: inherited from `ProductRatePlanCharge.ChargeType`
	ChargeType string `json:"ChargeType,omitempty"`

	//  The date through which a customer has been billed for the charge.   **Character limit**: 29   **Values**: automatically generated
	ChargedThroughDate time.Time `json:"ChargedThroughDate,omitempty"`

	// The ID of the Zuora user who created the `RatePlanCharge` object.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `RatePlanCharge` object was created.   **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// A delta monthly recurring charge is the change in monthly recurring revenue caused by an amendment or a new subscription.  **Character limit**: 16   **Values**: automatically generated
	DMRC float64 `json:"DMRC,omitempty"`

	//  After an Amendment, the change in the total contract value (TCV) amount for this charge, compared with its previous value.   **Character limit**: 16   **Values**: automatically generated
	DTCV float64 `json:"DTCV,omitempty"`

	//  A description of the charge.   **Character limit**: 500   **Values**: inherited from `ProductRatePlanCharge.Description`
	Description string `json:"Description,omitempty"`

	//  Specifies the amount of a fixed-amount discount. You can provide a value for this field if the `ChargeModel` field value is `Discount-Fixed Amount`. If this field is included in a query, the query will filter out the rate plans whose `ChargeModel` field is not of a Discount type. You cannot query this field with the following fields in a single query:  - Price - IncludedUnits - DiscountPercentage - OveragePrice   **Character limit**: 16   **Values**: a valid currency amount
	DiscountAmount float64 `json:"DiscountAmount,omitempty"`

	// Specifies if the discount applies to just the product rate plan, the entire subscription, or to any activity in the account.  **Character limit**: 12   **Values**: inherited from `ProductRatePlanCharge.DiscountLevel`
	DiscountLevel string `json:"DiscountLevel,omitempty"`

	//  Query Filter
	DiscountPercentage float64 `json:"DiscountPercentage,omitempty"`

	//  The date when the segmented charge ends or ended.   **Character limit**: 16   **Values**: automatically generated
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	//  The date when the segmented charge starts or started.   **Character limit**: 16   **Values**: automatically generated
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	//  Defines when the charge ends after the charge trigger date. This field can be updated when **Status** is `Draft`.    **Values**: one of the following:  - `SubscriptionEnd`: The charge ends on the subscription end date after the charge trigger date. This is the default value. - `FixedPeriod`: The charge ends after a specified period based on the trigger date of the charge. If you set this field to `FixedPeriod`, you must specify the length of the period and a period type by defining the `UpToPeriods` and `UpToPeriodsType` fields. - `SpecificEndDate`: The specific date on which the charge ends. If you set this field to `SpecificEndDate`, you must specify the specific date by defining the `SpecificEndDate` field.    **Note**: If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.
	EndDateCondition string `json:"EndDateCondition,omitempty"`

	//  Query Filter
	IncludedUnits float64 `json:"IncludedUnits,omitempty"`

	// Indicates if the segment of the rate plan charge is the most recent segment.  **Character limit**: 5   **Values**: automatically generated: `true`, `false`
	IsLastSegment bool `json:"IsLastSegment,omitempty"`

	// The list price base for the product rate plan charge.  You can only change the value of this field if the amendment type is NewProduct.  **Values**: one of the following:  - `Per Month` - `Per Billing Period` - `Per Week`
	ListPriceBase string `json:"ListPriceBase,omitempty"`

	// Monthly recurring revenue (MRR) is the amount of recurring charges in a given month. The MRR calculation doesn't include one-time charges nor usage charges.  **Character limit**: 16   **Values**: automatically generated
	MRR float64 `json:"MRR,omitempty"`

	// The name of the rate plan charge.  **Character limit**: 100   **Values**: automatically generated
	Name string `json:"Name,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model.  **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.NumberOfPeriod`
	NumberOfPeriods int64 `json:"NumberOfPeriods,omitempty"`

	// The original ID of the rate plan charge.  **Character limit**: 32   **Values**: automatically generated
	OriginalId string `json:"OriginalId,omitempty"`

	// Determines when to calculate overage charges. If the value of the SmoothingMode field is null (not specified and not inherited from ProductRatePlanCharge.SmoothingMode), the value of this field is ignored.  **Character limit**: 20   **Values**: inherited from `ProductRatePlanCharge.OverageCalculationOption`
	OverageCalculationOption string `json:"OverageCalculationOption,omitempty"`

	//  Query Filter
	OveragePrice float64 `json:"OveragePrice,omitempty"`

	//  Determines whether to credit the customer with unused units of usage.   **Character limit**: 20   **Values**: inherited from `ProductRatePlanCharge.OverageUnusedUnitsCreditOption`
	OverageUnusedUnitsCreditOption string `json:"OverageUnusedUnitsCreditOption,omitempty"`

	//  Query Filter
	Price float64 `json:"Price,omitempty"`

	//  Applies an automatic price change when a termed subscription is renewed.   **Character limit**:   **Values**: one of the following:  - `NoChange` (default) - `SpecificPercentageValue` - `UseLatestProductCatalogPricing`
	PriceChangeOption string `json:"PriceChangeOption,omitempty"`

	//  Specifies the percentage to increase or decrease the price of renewed subscriptions. Use this field if the `ProductRatePlanCharge`.`PriceChangeOption` value is set to `SpecificPercentageValue`.   **Character limit**: 16   **Values**: a decimal value between -100 and 100
	PriceIncreasePercentage float64 `json:"PriceIncreasePercentage,omitempty"`

	//  The date until when charges have been processed. When billing in arrears, such as usage, this field value is the the same as the `ChargedThroughDate` value. This date is the earliest date when a charge can be amended.   **Character limit**: 29   **Values**: automatically generated
	ProcessedThroughDate time.Time `json:"ProcessedThroughDate,omitempty"`

	//  The ID of the product rate plan charge associated with the subscription rate plan charge,  **Character limit**: 32   **Values**: inherited from `ProductRatePlanCharge.Id`
	ProductRatePlanChargeId string `json:"ProductRatePlanChargeId,omitempty"`

	//  The default quantity of units, such as the number of authors in a hosted wiki service. Valid for all charge models except for Flat Fee pricing.   **Character limit**: 16   **Values**: a valid quantity value
	Quantity float64 `json:"Quantity,omitempty"`

	//  The ID of the rate plan associated with the rate plan charge.   **Character limit**: 32   **Values**: inherited from `RatePlan.Id`
	RatePlanId string `json:"RatePlanId,omitempty"`

	//  Associates this product rate plan charge with a specific revenue recognition code.   **Character limit**: 70   **Values**: a valid revenue recognition code
	RevRecCode string `json:"RevRecCode,omitempty"`

	//  Specifies when revenue recognition begins.   **Character limit**: 22   **Values**: one of the following:  -  `ContractEffectiveDate`  -  `ServiceActivationDate`  -  `CustomerAcceptanceDate`
	RevRecTriggerCondition string `json:"RevRecTriggerCondition,omitempty"`

	//  Specifies the Revenue Recognition Rule that you want the Rate Plan Charge to use. This field can be updated when **Status** is `Draft`. By default, the Revenue Recognition Rule is inherited from the Product Rate Plan Charge. For Amend calls, you can use this field only for NewProduct amendments. For Update calls, you can use this field only to update subscriptions in draft status. Note that if you use this field to specify a Revenue Recognition Rule for the Rate Plan Charge, the rule will remain as specified even if you later change the rule used by the corresponding Product Rate Plan Charge. See [Z-Billing User Role](https://knowledgecenter.zuora.com/CF_Users_and_Administrators/A_Administrator_Settings/User_Roles/d_Billing_Roles) permission enabled to use this field.    **Character limit**: n/a   **Values**: name of an active Revenue Recognition Rule
	RevenueRecognitionRuleName string `json:"RevenueRecognitionRuleName,omitempty"`

	//  Specifies the number of units of measure (UOM) rolled over from previous periods. This field is applicable only to usage charges with overage models.   **Character limit**: 16   **Values**: automatically generated  **Note**:  - You cannot query or filter this field with other fields in a single query. - To query or filter this field, you must specify and only specify the rate plan charge Id in the condition. - You cannot use this field in the query or filter condition.
	RolloverBalance float64 `json:"RolloverBalance,omitempty"`

	//  The identifying number of the subscription rate plan segment. Segments are numbered sequentially, starting with 1.   **Character limit**: 2   **Values**: automatically generated
	Segment int32 `json:"Segment,omitempty"`

	//  Customizes the number of months or weeks for the charges billing period. This field is required if you set the value of the BillingPeriod field to `Specific Months` or `Specific Weeks`.   **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.BillingPeriod` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	SpecificBillingPeriod int64 `json:"SpecificBillingPeriod,omitempty"`

	//  The specific date on which the charge ends, in `yyyy-mm-dd` format.   **Character limit**: 29    **Note**:  - This field is only applicable when the `EndDateCondition` field is set to `SpecificEndDate`. - If the subscription ends before the specific end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the specific end date.
	SpecificEndDate time.Time `json:"SpecificEndDate,omitempty"`

	//  The total contract value (TCV) is the value of a single rate plan charge in a subscription over the lifetime of the subscription. This value does not represent all charges on the subscription. The TCV includes recurring charges and one-time charges, but it doesn't include usage charge.   **Character limit**: 16   **Values**: automatically generated
	TCV float64 `json:"TCV,omitempty"`

	//  The date when the charge becomes effective and billing begins, in `yyyy-mm-dd` format. This field is required if the `TriggerEvent` field value is `SpecificDate`.   **Character limit**: 29
	TriggerDate time.Time `json:"TriggerDate,omitempty"`

	//  Specifies when to start billing the customer for the charge. **Note: **This field can be passed through the subscribe and amend calls and will override the default value set on the Product Rate Plan Charge.   **Character limit**: 18   **Values**: inherited from `ProductRatePlanCharge.TriggerEvent` and can be one of the following values:  - `ContractEffective `is the date when the subscription's contract goes into effect and the charge is ready to be billed. - `ServiceActivationDate `is when the services or products for a subscription have been activated and the customers have access. - `CustomerAcceptance `is when the customer accepts the services or products for a subscription. - SpecificDate is valid only on the RatePlanCharge.
	TriggerEvent string `json:"TriggerEvent,omitempty"`

	//  Specifies the units to measure usage. Units of measure are configured in the web-based UI: **Z-Billing > Settings**.   **Character limit**: 25   **Values**: inherited from `ProductRatePlanCharge.UOM`
	UOM string `json:"UOM,omitempty"`

	//  Specifies the rate to credit a customer for unused units of usage. This field is applicable only for overage charge models when the `OverageUnusedUnitsCreditOption` field value is CreditBySpecificRate.   **Character limit**: 16   **Values**: a valid decimal value
	UnusedUnitsCreditRates float64 `json:"UnusedUnitsCreditRates,omitempty"`

	//  Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends.   **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.UpToPeriods`  **Note**:  - You must use this field together with the `UpToPeriodsType` field to specify the time period. This field is only applicable only when the `EndDateCondition` field is set to `FixedPeriod`. - You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment. - Use this field to override the value in `ProductRatePlanCharge.UpToPeriod`. - If you override the value in this field, enter a whole number between 0 and 65535, exclusive. - If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods int64 `json:"UpToPeriods,omitempty"`

	//  The period type used to define when the charge ends. This field can be updated when **Status** is `Draft`.   **Values**: one of the following:  - `Billing Periods` (default) - `Days` - `Weeks` - `Months` - `Years`   **Note**:  - You must use this field together with the `UpToPeriods` field to specify the time period. - This field is only applicable only when the `EndDateCondition` field is set to `FixedPeriod`.
	UpToPeriodsType string `json:"UpToPeriodsType,omitempty"`

	// The ID of the last user to update the object.  **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  Determines how Zuora processes usage records for per-unit usage charges.  **Character limit**: 18   **Values**: automatically generated
	UsageRecordRatingOption string `json:"UsageRecordRatingOption,omitempty"`

	//  Determines whether to define a new accounting code for the new discount charge.   **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.UseDiscountSpecificAccountingCode`
	UseDiscountSpecificAccountingCode bool `json:"UseDiscountSpecificAccountingCode,omitempty"`

	//  The version of the rate plan charge. Each time a charge is amended, Zuora creates a new version of the rate plan charge.  **Character limit**: 5   **Values**: automatically generated
	Version int64 `json:"Version,omitempty"`

	//  Specifies which day of the week as the bill cycle day (BCD) for the charge. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).     **Values**: one of the following:  - `Sunday` - `Monday` - `Tuesday` - `Wednesday` - `Thursday` - `Friday` - `Saturday`
	WeeklyBillCycleDay string `json:"WeeklyBillCycleDay,omitempty"`
}

type RatePlanChargeDataRatePlanCharge

type RatePlanChargeDataRatePlanCharge struct {

	// The accounting code for the charge. Accounting codes group transactions that contain similar accounting attributes.  **Character limit**: 100   **Values**: inherited from `ProductRatePlanCharge.AccountingCode`
	AccountingCode string `json:"AccountingCode,omitempty"`

	//  Specifies the type of charges a specific discount applies to.  **Character limit**: 21   **Values**: inherited from `ProductRatePlanCharge.ApplyDiscountTo`
	ApplyDiscountTo string `json:"ApplyDiscountTo,omitempty"`

	//  Indicates the charge's billing cycle day (BCD), which is when bill runs generate invoices for charges associated with the product rate plan charge or the account.   **Character limit**: 2   **Values**: inherited from `ProductRatePlanCharge.BillCycleDay`
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	//  Specifies how to determine the billing day for the charge.   **Character limit**: 20   **Values**: inherited from `ProductRatePlanCharge.BillCycleType` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	BillCycleType string `json:"BillCycleType,omitempty"`

	//  Allows billing period to be overridden on rate plan charge.    **Values**: inherited from `ProductRatePlanCharge.BillingPeriod` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	BillingPeriod string `json:"BillingPeriod,omitempty"`

	//  Aligns charges within the same subscription if multiple charges begin on different dates.   **Character limit**: 24   **Values**: inherited from `ProductRatePlanCharge.BillingPeriodAlignment`
	BillingPeriodAlignment string `json:"BillingPeriodAlignment,omitempty"`

	//  The billing timing for the charge. You can choose to bill in advance or in arrears for recurring charge types. This field is not used in one-time or usage based charge types.   **Character limit**:   **Values**: one of the following:  - I`n Advance` - `In Arrears` **Note:** You can override the value inherited from the Product Rate Plan Charge when a subscription has a recurring charge type. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).
	BillingTiming string `json:"BillingTiming,omitempty"`

	//  Determines how to evaluate charges. Charge models must be individually activated in the web-based UI.   **Character limit**: 29   **Values**: inherited from `ProductRatePlanCharge.ChargeModel`
	ChargeModel string `json:"ChargeModel,omitempty"`

	//  A unique number that identifies the charge. This number is returned as a string.   **Character limit**: 50   **Values**: one of the following:  - automatically generated if left null - a unique number of 50 characters or fewer
	ChargeNumber string `json:"ChargeNumber,omitempty"`

	//  Specifies the type of charge.   **Character limit**: 9   **Values**: inherited from `ProductRatePlanCharge.ChargeType`
	ChargeType string `json:"ChargeType,omitempty"`

	//  The date through which a customer has been billed for the charge.   **Character limit**: 29   **Values**: automatically generated
	ChargedThroughDate time.Time `json:"ChargedThroughDate,omitempty"`

	// The ID of the Zuora user who created the `RatePlanCharge` object.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `RatePlanCharge` object was created.   **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// A delta monthly recurring charge is the change in monthly recurring revenue caused by an amendment or a new subscription.  **Character limit**: 16   **Values**: automatically generated
	DMRC float64 `json:"DMRC,omitempty"`

	//  After an Amendment, the change in the total contract value (TCV) amount for this charge, compared with its previous value.   **Character limit**: 16   **Values**: automatically generated
	DTCV float64 `json:"DTCV,omitempty"`

	//  A description of the charge.   **Character limit**: 500   **Values**: inherited from `ProductRatePlanCharge.Description`
	Description string `json:"Description,omitempty"`

	//  Specifies the amount of a fixed-amount discount. You can provide a value for this field if the `ChargeModel` field value is `Discount-Fixed Amount`. If this field is included in a query, the query will filter out the rate plans whose `ChargeModel` field is not of a Discount type. You cannot query this field with the following fields in a single query:  - Price - IncludedUnits - DiscountPercentage - OveragePrice   **Character limit**: 16   **Values**: a valid currency amount
	DiscountAmount float64 `json:"DiscountAmount,omitempty"`

	// Specifies if the discount applies to just the product rate plan, the entire subscription, or to any activity in the account.  **Character limit**: 12   **Values**: inherited from `ProductRatePlanCharge.DiscountLevel`
	DiscountLevel string `json:"DiscountLevel,omitempty"`

	//  Query Filter
	DiscountPercentage float64 `json:"DiscountPercentage,omitempty"`

	//  The date when the segmented charge ends or ended.   **Character limit**: 16   **Values**: automatically generated
	EffectiveEndDate time.Time `json:"EffectiveEndDate,omitempty"`

	//  The date when the segmented charge starts or started.   **Character limit**: 16   **Values**: automatically generated
	EffectiveStartDate time.Time `json:"EffectiveStartDate,omitempty"`

	//  Defines when the charge ends after the charge trigger date. This field can be updated when **Status** is `Draft`.    **Values**: one of the following:  - `SubscriptionEnd`: The charge ends on the subscription end date after the charge trigger date. This is the default value. - `FixedPeriod`: The charge ends after a specified period based on the trigger date of the charge. If you set this field to `FixedPeriod`, you must specify the length of the period and a period type by defining the `UpToPeriods` and `UpToPeriodsType` fields. - `SpecificEndDate`: The specific date on which the charge ends. If you set this field to `SpecificEndDate`, you must specify the specific date by defining the `SpecificEndDate` field.    **Note**: If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.
	EndDateCondition string `json:"EndDateCondition,omitempty"`

	//  Query Filter
	IncludedUnits float64 `json:"IncludedUnits,omitempty"`

	// Indicates if the segment of the rate plan charge is the most recent segment.  **Character limit**: 5   **Values**: automatically generated: `true`, `false`
	IsLastSegment bool `json:"IsLastSegment,omitempty"`

	// The list price base for the product rate plan charge.   **Values**: one of the following:  - `Per Month` - `Per Billing Period` - `Per Week`
	ListPriceBase string `json:"ListPriceBase,omitempty"`

	// Monthly recurring revenue (MRR) is the amount of recurring charges in a given month. The MRR calculation doesn't include one-time charges nor usage charges.  **Character limit**: 16   **Values**: automatically generated
	MRR float64 `json:"MRR,omitempty"`

	// The name of the rate plan charge.  **Character limit**: 100   **Values**: automatically generated
	Name string `json:"Name,omitempty"`

	// Specifies the number of periods to use when calculating charges in an overage smoothing charge model.  **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.NumberOfPeriod`
	NumberOfPeriods int64 `json:"NumberOfPeriods,omitempty"`

	// The original ID of the rate plan charge.  **Character limit**: 32   **Values**: automatically generated
	OriginalId string `json:"OriginalId,omitempty"`

	// Determines when to calculate overage charges. If the value of the SmoothingMode field is null (not specified and not inherited from ProductRatePlanCharge.SmoothingMode), the value of this field is ignored.  **Character limit**: 20   **Values**: inherited from `ProductRatePlanCharge.OverageCalculationOption`
	OverageCalculationOption string `json:"OverageCalculationOption,omitempty"`

	//  Query Filter
	OveragePrice float64 `json:"OveragePrice,omitempty"`

	//  Determines whether to credit the customer with unused units of usage.   **Character limit**: 20   **Values**: inherited from `ProductRatePlanCharge.OverageUnusedUnitsCreditOption`
	OverageUnusedUnitsCreditOption string `json:"OverageUnusedUnitsCreditOption,omitempty"`

	//  Query Filter
	Price float64 `json:"Price,omitempty"`

	//  Applies an automatic price change when a termed subscription is renewed.   **Character limit**:   **Values**: one of the following:  - `NoChange` (default) - `SpecificPercentageValue` - `UseLatestProductCatalogPricing`
	PriceChangeOption string `json:"PriceChangeOption,omitempty"`

	//  Specifies the percentage to increase or decrease the price of renewed subscriptions. Use this field if the `ProductRatePlanCharge`.`PriceChangeOption` value is set to `SpecificPercentageValue`.   **Character limit**: 16   **Values**: a decimal value between -100 and 100
	PriceIncreasePercentage float64 `json:"PriceIncreasePercentage,omitempty"`

	//  The date until when charges have been processed. When billing in arrears, such as usage, this field value is the the same as the `ChargedThroughDate` value. This date is the earliest date when a charge can be amended.   **Character limit**: 29   **Values**: automatically generated
	ProcessedThroughDate time.Time `json:"ProcessedThroughDate,omitempty"`

	//  The ID of the product rate plan charge associated with the subscription rate plan charge,  **Character limit**: 32   **Values**: inherited from `ProductRatePlanCharge.Id`
	ProductRatePlanChargeId string `json:"ProductRatePlanChargeId,omitempty"`

	//  The default quantity of units, such as the number of authors in a hosted wiki service. Valid for all charge models except for Flat Fee pricing.   **Character limit**: 16   **Values**: a valid quantity value
	Quantity float64 `json:"Quantity,omitempty"`

	//  The ID of the rate plan associated with the rate plan charge.   **Character limit**: 32   **Values**: inherited from `RatePlan.Id`
	RatePlanId string `json:"RatePlanId,omitempty"`

	//  Associates this product rate plan charge with a specific revenue recognition code.   **Character limit**: 70   **Values**: a valid revenue recognition code
	RevRecCode string `json:"RevRecCode,omitempty"`

	//  Specifies when revenue recognition begins.   **Character limit**: 22   **Values**: one of the following:  -  `ContractEffectiveDate`  -  `ServiceActivationDate`  -  `CustomerAcceptanceDate`
	RevRecTriggerCondition string `json:"RevRecTriggerCondition,omitempty"`

	//  Specifies the Revenue Recognition Rule that you want the Rate Plan Charge to use. This field can be updated when **Status** is `Draft`. By default, the Revenue Recognition Rule is inherited from the Product Rate Plan Charge. For Amend calls, you can use this field only for NewProduct amendments. For Update calls, you can use this field only to update subscriptions in draft status. Note that if you use this field to specify a Revenue Recognition Rule for the Rate Plan Charge, the rule will remain as specified even if you later change the rule used by the corresponding Product Rate Plan Charge. See [Z-Billing User Role](https://knowledgecenter.zuora.com/CF_Users_and_Administrators/A_Administrator_Settings/User_Roles/d_Billing_Roles) permission enabled to use this field.    **Character limit**: n/a   **Values**: name of an active Revenue Recognition Rule
	RevenueRecognitionRuleName string `json:"RevenueRecognitionRuleName,omitempty"`

	//  Specifies the number of units of measure (UOM) rolled over from previous periods. This field is applicable only to usage charges with overage models.   **Character limit**: 16   **Values**: automatically generated  **Note**:  - You cannot query or filter this field with other fields in a single query. - To query or filter this field, you must specify and only specify the rate plan charge Id in the condition. - You cannot use this field in the query or filter condition.
	RolloverBalance float64 `json:"RolloverBalance,omitempty"`

	//  The identifying number of the subscription rate plan segment. Segments are numbered sequentially, starting with 1.   **Character limit**: 2   **Values**: automatically generated
	Segment int32 `json:"Segment,omitempty"`

	//  Customizes the number of months or weeks for the charges billing period. This field is required if you set the value of the BillingPeriod field to `Specific Months` or `Specific Weeks`.   **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.BillingPeriod` **Note:** You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment.
	SpecificBillingPeriod int64 `json:"SpecificBillingPeriod,omitempty"`

	//  The specific date on which the charge ends, in `yyyy-mm-dd` format.   **Character limit**: 29    **Note**:  - This field is only applicable when the `EndDateCondition` field is set to `SpecificEndDate`. - If the subscription ends before the specific end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the specific end date.
	SpecificEndDate time.Time `json:"SpecificEndDate,omitempty"`

	//  The total contract value (TCV) is the value of a single rate plan charge in a subscription over the lifetime of the subscription. This value does not represent all charges on the subscription. The TCV includes recurring charges and one-time charges, but it doesn't include usage charge.   **Character limit**: 16   **Values**: automatically generated
	TCV float64 `json:"TCV,omitempty"`

	//  The date when the charge becomes effective and billing begins, in `yyyy-mm-dd` format. This field is required if the `TriggerEvent` field value is `SpecificDate`.   **Character limit**: 29
	TriggerDate time.Time `json:"TriggerDate,omitempty"`

	//  Specifies when to start billing the customer for the charge. **Note: **This field can be passed through the subscribe and amend calls and will override the default value set on the Product Rate Plan Charge.   **Character limit**: 18   **Values**: inherited from `ProductRatePlanCharge.TriggerEvent` and can be one of the following values:  - `ContractEffective `is the date when the subscription's contract goes into effect and the charge is ready to be billed. - `ServiceActivationDate `is when the services or products for a subscription have been activated and the customers have access. - `CustomerAcceptance `is when the customer accepts the services or products for a subscription. - SpecificDate is valid only on the RatePlanCharge.
	TriggerEvent string `json:"TriggerEvent,omitempty"`

	//  Specifies the units to measure usage. Units of measure are configured in the web-based UI: **Z-Billing > Settings**.   **Character limit**: 25   **Values**: inherited from `ProductRatePlanCharge.UOM`
	UOM string `json:"UOM,omitempty"`

	//  Specifies the rate to credit a customer for unused units of usage. This field is applicable only for overage charge models when the `OverageUnusedUnitsCreditOption` field value is CreditBySpecificRate.   **Character limit**: 16   **Values**: a valid decimal value
	UnusedUnitsCreditRates float64 `json:"UnusedUnitsCreditRates,omitempty"`

	//  Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends.   **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.UpToPeriods`  **Note**:  - You must use this field together with the `UpToPeriodsType` field to specify the time period. This field is only applicable only when the `EndDateCondition` field is set to `FixedPeriod`. - You can override the value inherited from the Product Rate Plan Charge, but only when creating a new subscription or a New Product amendment. - Use this field to override the value in `ProductRatePlanCharge.UpToPeriod`. - If you override the value in this field, enter a whole number between 0 and 65535, exclusive. - If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.
	UpToPeriods int64 `json:"UpToPeriods,omitempty"`

	//  The period type used to define when the charge ends. This field can be updated when **Status** is `Draft`.   **Values**: one of the following:  - `Billing Periods` (default) - `Days` - `Weeks` - `Months` - `Years`   **Note**:  - You must use this field together with the `UpToPeriods` field to specify the time period. - This field is only applicable only when the `EndDateCondition` field is set to `FixedPeriod`.
	UpToPeriodsType string `json:"UpToPeriodsType,omitempty"`

	// The ID of the last user to update the object.  **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  Determines how Zuora processes usage records for per-unit usage charges.  **Character limit**: 18   **Values**: automatically generated
	UsageRecordRatingOption string `json:"UsageRecordRatingOption,omitempty"`

	//  Determines whether to define a new accounting code for the new discount charge.   **Character limit**: 5   **Values**: inherited from `ProductRatePlanCharge.UseDiscountSpecificAccountingCode`
	UseDiscountSpecificAccountingCode bool `json:"UseDiscountSpecificAccountingCode,omitempty"`

	//  The version of the rate plan charge. Each time a charge is amended, Zuora creates a new version of the rate plan charge.  **Character limit**: 5   **Values**: automatically generated
	Version int64 `json:"Version,omitempty"`

	//  Specifies which day of the week as the bill cycle day (BCD) for the charge. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).     **Values**: one of the following:  - `Sunday` - `Monday` - `Tuesday` - `Wednesday` - `Thursday` - `Friday` - `Saturday`
	WeeklyBillCycleDay string `json:"WeeklyBillCycleDay,omitempty"`
}

type RatePlanChargeTier

type RatePlanChargeTier struct {

	// The ID of the Zuora user who created the RatePlanChargeTier object.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the RatePlanChargeTier object was created.   **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The end number of a range of units for the tier.   **Character limit**: 16   **Values**: any positive decimal value
	EndingUnit float64 `json:"EndingUnit,omitempty"`

	//  Indicates if the price is an overage price. An overage occurs when usage surpasses the last defined tier. This field is applicable only to tier pricing and volume pricing models.    **Values**: true, false
	IsOveragePrice bool `json:"IsOveragePrice,omitempty"`

	//  The price of the tier if the charge is a flat fee, or the price of each unit in the tier if the change model is tiered pricing.   **Character limit**: 16   **Values**: any positive decimal value
	Price float64 `json:"Price,omitempty"`

	//  Indicates if the price is a flat fee or is per unit.   **Character limit**: 8   **Values**: `Flat Fee`, `Per Unit`
	PriceFormat string `json:"PriceFormat,omitempty"`

	//  The ID of the subscription or amendment rate plan charge associated with this tier. You can't create an unassociated tier.   **Character limit**: 32   **Values**: inherited from `RatePlanCharge`.`Id`
	RatePlanChargeId string `json:"RatePlanChargeId,omitempty"`

	//  The start number of a range of units for the tier.   **Character limit**: 16   **Values**: any positive decimal value
	StartingUnit float64 `json:"StartingUnit,omitempty"`

	//  A unique number that identifies the tier that the price applies to.   **Character limit**: 20   **Values**: automatically generated
	Tier int32 `json:"Tier,omitempty"`

	// The ID of the last user to update the object.  **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the object was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type RatePlanChargeTiersApi

type RatePlanChargeTiersApi struct {
	Configuration *Configuration
}

func NewRatePlanChargeTiersApi

func NewRatePlanChargeTiersApi() *RatePlanChargeTiersApi

func NewRatePlanChargeTiersApiWithBasePath

func NewRatePlanChargeTiersApiWithBasePath(basePath string) *RatePlanChargeTiersApi

func (RatePlanChargeTiersApi) ObjectGETRatePlanChargeTier

func (a RatePlanChargeTiersApi) ObjectGETRatePlanChargeTier(id string, entityId string, entityName string, fields string) (*ProxyGetRatePlanChargeTier, *APIResponse, error)

*

type RatePlanChargesApi

type RatePlanChargesApi struct {
	Configuration *Configuration
}

func NewRatePlanChargesApi

func NewRatePlanChargesApi() *RatePlanChargesApi

func NewRatePlanChargesApiWithBasePath

func NewRatePlanChargesApiWithBasePath(basePath string) *RatePlanChargesApi

func (RatePlanChargesApi) ObjectGETRatePlanCharge

func (a RatePlanChargesApi) ObjectGETRatePlanCharge(id string, entityId string, entityName string, fields string) (*ProxyGetRatePlanCharge, *APIResponse, error)

*

type RatePlanData

type RatePlanData struct {
	RatePlan RatePlanDataRatePlan `json:"RatePlan,omitempty"`

	//
	RatePlanChargeData []RatePlanChargeData `json:"RatePlanChargeData,omitempty"`

	SubscriptionProductFeatureList RatePlanDataSubscriptionProductFeatureList `json:"SubscriptionProductFeatureList,omitempty"`
}

type RatePlanDataRatePlan

type RatePlanDataRatePlan struct {

	//  The ID of the amendment associated with the rate plan. This field only applies to amendment rate plans.   **Character limit**: 32   **Values**: a valid amendment ID
	AmendmentId string `json:"AmendmentId,omitempty"`

	// The ID of the subscription rate plan modified by the amendment. This field only applies to amendment rate plans.  **Character limit**: 32   **Values**: a valid rate plan ID
	AmendmentSubscriptionRatePlanId string `json:"AmendmentSubscriptionRatePlanId,omitempty"`

	// The type of amendment associated with the rate plan. This field only applies to amendment rate plans.  **Character limit**: 18   **Values**: inherited from `Amendment.Type`
	AmendmentType string `json:"AmendmentType,omitempty"`

	// The ID of the Zuora user who created the RatePlan object.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the `RatePlan` object was last updated.  **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// The name of the rate plan. Leave this null in a subscribe call to inherited the `ProductRatePlan.Name` field value.  **Character limit**: 100   **Values**: a string of 100 characters or fewer or inherited from ProductRatePlan.Name
	Name string `json:"Name,omitempty"`

	// The ID of the associated product rate plan.  **Character limit**: 32   **Values**: a valid product rate plan ID
	ProductRatePlanId string `json:"ProductRatePlanId,omitempty"`

	// The ID of the subscription that the rate plan belongs to.  **Character limit**: 32   **Values**: a valid subscription ID
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//  The ID of the user who last updated the rate plan.   **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the rate plan was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type RatePlanDataSubscriptionProductFeatureList

type RatePlanDataSubscriptionProductFeatureList struct {

	//
	SubscriptionProductFeature []SubscriptionProductFeature `json:"SubscriptionProductFeature,omitempty"`
}

type RatePlansApi

type RatePlansApi struct {
	Configuration *Configuration
}

func NewRatePlansApi

func NewRatePlansApi() *RatePlansApi

func NewRatePlansApiWithBasePath

func NewRatePlansApiWithBasePath(basePath string) *RatePlansApi

func (RatePlansApi) ObjectGETRatePlan

func (a RatePlansApi) ObjectGETRatePlan(id string, entityId string, entityName string, fields string) (*ProxyGetRatePlan, *APIResponse, error)

*

type RefundCreditMemoItemType

type RefundCreditMemoItemType struct {

	// The amount of the refund on the specific item.
	Amount float64 `json:"amount"`

	// The ID of the credit memo item that is refunded.
	CreditMemoItemId string `json:"creditMemoItemId,omitempty"`

	// The ID of the credit memo taxation item that is refunded.
	CreditTaxItemId string `json:"creditTaxItemId,omitempty"`
}

type RefundInvoicePaymentsApi

type RefundInvoicePaymentsApi struct {
	Configuration *Configuration
}

func NewRefundInvoicePaymentsApi

func NewRefundInvoicePaymentsApi() *RefundInvoicePaymentsApi

func NewRefundInvoicePaymentsApiWithBasePath

func NewRefundInvoicePaymentsApiWithBasePath(basePath string) *RefundInvoicePaymentsApi

func (RefundInvoicePaymentsApi) ObjectGETRefundInvoicePayment

func (a RefundInvoicePaymentsApi) ObjectGETRefundInvoicePayment(id string, entityId string, entityName string, fields string) (*ProxyGetRefundInvoicePayment, *APIResponse, error)

*

type RefundPartResponseType

type RefundPartResponseType struct {

	// The amount of the refund part.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the refund part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund part was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo associated with the refund part.
	CreditMemoId string `json:"creditMemoId,omitempty"`

	// The ID of the refund part.
	Id string `json:"id,omitempty"`

	// The ID of the payment associated with the refund part.
	PaymentId string `json:"paymentId,omitempty"`

	// Returns `true` if the request was processed successfully.
	Success bool `json:"success,omitempty"`

	// The ID of the Zuora user who last updated the refund part.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund part was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type RefundPartResponseTypewithSuccess

type RefundPartResponseTypewithSuccess struct {

	// The amount of the refund part.
	Amount float64 `json:"amount,omitempty"`

	// The ID of the Zuora user who created the refund part.
	CreatedById string `json:"createdById,omitempty"`

	// The date and time when the refund part was created, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-01 15:31:10.
	CreatedDate time.Time `json:"createdDate,omitempty"`

	// The ID of the credit memo associated with the refund part.
	CreditMemoId string `json:"creditMemoId,omitempty"`

	// The ID of the refund part.
	Id string `json:"id,omitempty"`

	// The ID of the payment associated with the refund part.
	PaymentId string `json:"paymentId,omitempty"`

	// The ID of the Zuora user who last updated the refund part.
	UpdatedById string `json:"updatedById,omitempty"`

	// The date and time when the refund part was last updated, in `yyyy-mm-dd hh:mm:ss` format. For example, 2017-03-02 15:36:10.
	UpdatedDate time.Time `json:"updatedDate,omitempty"`
}

type RefundTransactionLogsApi

type RefundTransactionLogsApi struct {
	Configuration *Configuration
}

func NewRefundTransactionLogsApi

func NewRefundTransactionLogsApi() *RefundTransactionLogsApi

func NewRefundTransactionLogsApiWithBasePath

func NewRefundTransactionLogsApiWithBasePath(basePath string) *RefundTransactionLogsApi

func (RefundTransactionLogsApi) ObjectDELETERefundTransactionLog

func (a RefundTransactionLogsApi) ObjectDELETERefundTransactionLog(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (RefundTransactionLogsApi) ObjectGETRefundTransactionLog

func (a RefundTransactionLogsApi) ObjectGETRefundTransactionLog(id string, entityId string, entityName string, fields string) (*ProxyGetRefundTransactionLog, *APIResponse, error)

*

type RefundsApi

type RefundsApi struct {
	Configuration *Configuration
}

func NewRefundsApi

func NewRefundsApi() *RefundsApi

func NewRefundsApiWithBasePath

func NewRefundsApiWithBasePath(basePath string) *RefundsApi

func (RefundsApi) DELETERefund

func (a RefundsApi) DELETERefund(refundId string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (RefundsApi) GETRefund

func (a RefundsApi) GETRefund(refundId string, entityId string, entityName string) (*GetRefundType, *APIResponse, error)

*

func (RefundsApi) GETRefundItemPart

func (a RefundsApi) GETRefundItemPart(itempartid string, refundpartid string, refundId string, entityId string, entityName string) (*GetRefundItemPartType, *APIResponse, error)

*

func (RefundsApi) GETRefundItemParts

func (a RefundsApi) GETRefundItemParts(refundpartid string, refundId string, entityId string, entityName string, pageSize int32) (*GetRefundItemPartCollectionType, *APIResponse, error)

*

func (RefundsApi) GETRefundPart

func (a RefundsApi) GETRefundPart(refundpartid string, refundId string, entityId string, entityName string) (*RefundPartResponseType, *APIResponse, error)

*

func (RefundsApi) GETRefundParts

func (a RefundsApi) GETRefundParts(refundId string, entityId string, entityName string) (*GetRefundPartCollectionType, *APIResponse, error)

*

func (RefundsApi) GETRefunds

func (a RefundsApi) GETRefunds(entityId string, entityName string, pageSize int32, fieldsFilterable string, sort string) (*GetRefundCollectionType, *APIResponse, error)

*

  • Get all refunds
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the information about all refunds. Two types of refunds are available, electronic refunds and external refunds. *
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param fieldsFilterable This parameter restricts the data returned in the response. You can use this parameter to supply a dimension you want to filter on. A single filter uses the following form: *fieldsFilterable* &#x60;&#x3D;&#x60; *field_value* Filters can be combined by using &#x60;&amp;&#x60;. For example: *fieldsFilterable* &#x60;&#x3D;&#x60; *field_value* &#x60;&amp;&#x60; *fieldsFilterable* &#x60;&#x3D;&#x60; *field_value* *fieldsFilterable* indicates the name of a supported field that you can use to filter the response data. The supported filterable fields of this operation are as below: - number - status - type - accountID - amount - refundDate - paymentId - createdDate - createdById - updatedDate - updatedById - methodType *field_value* indicates a valid value of the filterable field. If the type of the field value is string, you can set the field to &#x60;null&#x60; value for filtering. Then, you can get the response data with this field value being &#39;null&#39;. For more information about these fields, see the field descriptions in the **Responses** section. Examples: - /refunds?status&#x3D;Processed - /refunds?amount&#x3D;4&amp;status&#x3D;Processed - /refunds?status&#x3D;Processed&amp;type&#x3D;External&amp;sort&#x3D;+number
  • @param sort This parameter restricts the order of the data returned in the response. You can use this parameter to supply a dimension you want to sort on. A sortable field uses the following form: *operator* *field_name* You can use at most two sortable fields in one URL path. Use a comma to separate sortable fields. For example: *operator* *field_name*, *operator* *field_name* *operator* is used to mark the order of sequencing. The operator is optional. If you only specify the sortable field without any operator, the response data is sorted in descending order by this field. - The &#x60;-&#x60; operator indicates an ascending order. - The &#x60;+&#x60; operator indicates a descending order. By default, the response data is displayed in descending order by refund number. *field_name* indicates the name of a sortable field. The supported sortable fields of this operation are as below: - number - accountID - amount - refundDate - paymentId - createdDate - createdById - updatedDate - updatedById Examples: - /refunds?sort&#x3D;+number - /refunds?status&#x3D;Processed&amp;sort&#x3D;-number,+amount
  • @return *GetRefundCollectionType

func (RefundsApi) ObjectDELETERefund

func (a RefundsApi) ObjectDELETERefund(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (RefundsApi) ObjectGETRefund

func (a RefundsApi) ObjectGETRefund(id string, entityId string, entityName string, fields string) (*ProxyGetRefund, *APIResponse, error)

*

func (RefundsApi) ObjectPOSTRefund

func (a RefundsApi) ObjectPOSTRefund(createRequest ProxyCreateRefund, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (RefundsApi) ObjectPUTRefund

func (a RefundsApi) ObjectPUTRefund(id string, modifyRequest ProxyModifyRefund, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (RefundsApi) POSTCancelRefund

func (a RefundsApi) POSTCancelRefund(refundId string, entityId string, entityName string) (*GetRefundType, *APIResponse, error)

*

func (RefundsApi) PUTUpdateRefund

func (a RefundsApi) PUTUpdateRefund(body PutRefundType, refundId string, entityId string, entityName string) (*GetRefundType, *APIResponse, error)

*

type RevenueEventsApi

type RevenueEventsApi struct {
	Configuration *Configuration
}

func NewRevenueEventsApi

func NewRevenueEventsApi() *RevenueEventsApi

func NewRevenueEventsApiWithBasePath

func NewRevenueEventsApiWithBasePath(basePath string) *RevenueEventsApi

func (RevenueEventsApi) GETRevenueEventDetails

func (a RevenueEventsApi) GETRevenueEventDetails(eventNumber string, entityId string, entityName string) (*GetRevenueEventDetailType, *APIResponse, error)

*

func (RevenueEventsApi) GETRevenueEventForRevenueSchedule

func (a RevenueEventsApi) GETRevenueEventForRevenueSchedule(rsNumber string, entityId string, entityName string, pageSize int32) (*GetRevenueEventDetailsType, *APIResponse, error)

*

type RevenueItemsApi

type RevenueItemsApi struct {
	Configuration *Configuration
}

func NewRevenueItemsApi

func NewRevenueItemsApi() *RevenueItemsApi

func NewRevenueItemsApiWithBasePath

func NewRevenueItemsApiWithBasePath(basePath string) *RevenueItemsApi

func (RevenueItemsApi) GETRevenueItemsByChargeRevenueEventNumber

func (a RevenueItemsApi) GETRevenueItemsByChargeRevenueEventNumber(eventNumber string, entityId string, entityName string, pageSize int32) (*GetRevenueItemsType, *APIResponse, error)

*

func (RevenueItemsApi) GETRevenueItemsByChargeRevenueSummaryNumber

func (a RevenueItemsApi) GETRevenueItemsByChargeRevenueSummaryNumber(crsNumber string, entityId string, entityName string, pageSize int32) (*GetRevenueItemsType, *APIResponse, error)

*

func (RevenueItemsApi) GETRevenueItemsByRevenueSchedule

func (a RevenueItemsApi) GETRevenueItemsByRevenueSchedule(rsNumber string, entityId string, entityName string, pageSize int32) (*GetRsRevenueItemsType, *APIResponse, error)

*

func (RevenueItemsApi) PUTCustomFieldsonRevenueItemsByRevenueEvent

func (a RevenueItemsApi) PUTCustomFieldsonRevenueItemsByRevenueEvent(eventNumber string, request PutEventRiDetailType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (RevenueItemsApi) PUTCustomFieldsonRevenueItemsByRevenueSchedule

func (a RevenueItemsApi) PUTCustomFieldsonRevenueItemsByRevenueSchedule(rsNumber string, request PutScheduleRiDetailType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type RevenueRulesApi

type RevenueRulesApi struct {
	Configuration *Configuration
}

func NewRevenueRulesApi

func NewRevenueRulesApi() *RevenueRulesApi

func NewRevenueRulesApiWithBasePath

func NewRevenueRulesApiWithBasePath(basePath string) *RevenueRulesApi

func (RevenueRulesApi) GETRevenueRecRulebyProductRatePlanCharge

func (a RevenueRulesApi) GETRevenueRecRulebyProductRatePlanCharge(chargeKey string) (*GetRevenueRecognitionRuleAssociationType, *APIResponse, error)

*

  • Get revenue recognition rule by product rate plan charge
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the revenue recognition rule associated with a production rate plan charge by specifying the charge ID. *
  • @param chargeKey The unique ID of a product rate plan charge. For example, 8a8082e65ba86084015bb323d3c61d82.
  • @return *GetRevenueRecognitionRuleAssociationType

func (RevenueRulesApi) GETRevenueRecRules

func (a RevenueRulesApi) GETRevenueRecRules(chargeKey string, entityId string, entityName string) (*GetRevenueRecognitionRuleAssociationType, *APIResponse, error)

*

type RevenueScheduleItemType

type RevenueScheduleItemType struct {

	// Name of the accounting period. The open-ended accounting period is named `Open-Ended`.
	AccountingPeriodName string `json:"accountingPeriodName"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`
}

type RevenueSchedulesApi

type RevenueSchedulesApi struct {
	Configuration *Configuration
}

func NewRevenueSchedulesApi

func NewRevenueSchedulesApi() *RevenueSchedulesApi

func NewRevenueSchedulesApiWithBasePath

func NewRevenueSchedulesApiWithBasePath(basePath string) *RevenueSchedulesApi

func (RevenueSchedulesApi) DELETERS

func (a RevenueSchedulesApi) DELETERS(rsNumber string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) GETRS

func (a RevenueSchedulesApi) GETRS(rsNumber string, entityId string, entityName string) (*GetrsDetailType, *APIResponse, error)

*

func (RevenueSchedulesApi) GETRSbyCreditMemoItem

func (a RevenueSchedulesApi) GETRSbyCreditMemoItem(cmiId string) (*GetrsDetailType, *APIResponse, error)

*

  • Get revenue schedule by credit memo item ID
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the details about a revenue schedule by specifying a valid credit memo item ID. *
  • @param cmiId The unique ID of a credit memo item. You can get the credit memo item ID from the response of [Get credit memo items](https://www.zuora.com/developer/api-reference/#operation/GET_CreditMemoItems).
  • @return *GetrsDetailType

func (RevenueSchedulesApi) GETRSbyDebitMemoItem

func (a RevenueSchedulesApi) GETRSbyDebitMemoItem(dmiId string) (*GetrsDetailType, *APIResponse, error)

*

  • Get revenue schedule by debit memo item ID
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the details about a revenue schedule by specifying a valid debit memo item ID. *
  • @param dmiId The unique ID of a debit memo item. You can get the debit memo item ID from the response of [Get debit memo items](https://www.zuora.com/developer/api-reference/#operation/GET_DebitMemoItems).
  • @return *GetrsDetailType

func (RevenueSchedulesApi) GETRSbyInvoiceItem

func (a RevenueSchedulesApi) GETRSbyInvoiceItem(invoiceItemId string, entityId string, entityName string) (*GetrsDetailType, *APIResponse, error)

*

func (RevenueSchedulesApi) GETRSbyInvoiceItemAdjustment

func (a RevenueSchedulesApi) GETRSbyInvoiceItemAdjustment(invoiceItemAdjId string, entityId string, entityName string) (*GetrsDetailType, *APIResponse, error)

*

func (RevenueSchedulesApi) GETRSbyProductChargeAndBillingAccount

func (a RevenueSchedulesApi) GETRSbyProductChargeAndBillingAccount(accountKey string, chargeKey string, pageSize int32) (*GetrsDetailsByProductChargeType, *APIResponse, error)

*

  • Get all revenue schedules of product charge by charge ID and billing account ID
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Retrieves the details about all revenue schedules of a product rate plan charge by specifying the charge ID and billing account ID. *
  • @param accountKey The account number or account ID.
  • @param chargeKey The unique ID of a product rate plan charge. For example, 8a8082e65ba86084015bb323d3c61d82.
  • @param pageSize Number of rows returned per page.
  • @return *GetrsDetailsByProductChargeType

func (RevenueSchedulesApi) GETRSforSubscCharge

func (a RevenueSchedulesApi) GETRSforSubscCharge(chargeKey string, entityId string, entityName string, pageSize int32) (*GetrsDetailsByChargeType, *APIResponse, error)

*

func (RevenueSchedulesApi) POSTRSforCrditMemoItemManualDistribution

*

  • Create revenue schedule for credit memo item (manual distribution)
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Creates a revenue schedule for a credit memo item, and manually distribute the revenue. *
  • @param cmiId The unique ID of a credit memo item. You can get the credit memo item ID from the response of [Get credit memo items](https://www.zuora.com/developer/api-reference/#operation/GET_CreditMemoItems).
  • @param body
  • @return *PostRevenueScheduleByTransactionResponseType

func (RevenueSchedulesApi) POSTRSforCreditMemoItemDistributeByDateRange

*

  • Create revenue schedule for credit memo item (distribute by date range)
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Creates a revenue schedule for a credit memo item, and automatically distribute the revenue by specifying the recognition start and end dates. *
  • @param cmiId The unique ID of a credit memo item. You can get the credit memo item ID from the response of [Get credit memo items](https://www.zuora.com/developer/api-reference/#operation/GET_CreditMemoItems).
  • @param body
  • @return *PostRevenueScheduleByTransactionResponseType

func (RevenueSchedulesApi) POSTRSforDebitMemoItemDistributeByDateRange

*

  • Create revenue schedule for debit memo item (distribute by date range)
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Creates a revenue schedule for a debit memo item, and automatically distribute the revenue by specifying the recognition start and end dates. *
  • @param dmiId The unique ID of a debit memo item. You can get the debit memo item ID from the response of [Get debit memo items](https://www.zuora.com/developer/api-reference/#operation/GET_DebitMemoItems).
  • @param body
  • @return *PostRevenueScheduleByTransactionResponseType

func (RevenueSchedulesApi) POSTRSforDebitMemoItemManualDistribution

*

  • Create revenue schedule for debit memo item (manual distribution)
  • **Note:** This feature is only available if you have the Advanced AR Settlement feature enabled. The Advanced AR Settlement feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). Creates a revenue schedule for a debit memo item, and manually distribute the revenue. *
  • @param dmiId The unique ID of a debit memo item. You can get the debit memo item ID from the response of [Get debit memo items](https://www.zuora.com/developer/api-reference/#operation/GET_DebitMemoItems).
  • @param body
  • @return *PostRevenueScheduleByTransactionResponseType

func (RevenueSchedulesApi) POSTRSforInvoiceItemAdjustmentDistributeByDateRange

func (a RevenueSchedulesApi) POSTRSforInvoiceItemAdjustmentDistributeByDateRange(invoiceItemAdjKey string, request PostRevenueScheduleByDateRangeType, entityId string, entityName string) (*PostRevenueScheduleByTransactionResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) POSTRSforInvoiceItemAdjustmentManualDistribution

func (a RevenueSchedulesApi) POSTRSforInvoiceItemAdjustmentManualDistribution(invoiceItemAdjKey string, request PostRevenueScheduleByTransactionType, entityId string, entityName string) (*PostRevenueScheduleByTransactionResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) POSTRSforInvoiceItemDistributeByDateRange

func (a RevenueSchedulesApi) POSTRSforInvoiceItemDistributeByDateRange(invoiceItemId string, request PostRevenueScheduleByDateRangeType, entityId string, entityName string) (*PostRevenueScheduleByTransactionResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) POSTRSforInvoiceItemManualDistribution

func (a RevenueSchedulesApi) POSTRSforInvoiceItemManualDistribution(invoiceItemId string, request PostRevenueScheduleByTransactionType, entityId string, entityName string) (*PostRevenueScheduleByTransactionResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) POSTRSforSubsCharge

func (a RevenueSchedulesApi) POSTRSforSubsCharge(chargeKey string, request PostRevenueScheduleByChargeType, entityId string, entityName string) (*PostRevenueScheduleByChargeResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) PUTRSBasicInfo

func (a RevenueSchedulesApi) PUTRSBasicInfo(rsNumber string, request PutrsBasicInfoType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) PUTRevenueAcrossAP

func (a RevenueSchedulesApi) PUTRevenueAcrossAP(rsNumber string, request PutAllocateManuallyType, entityId string, entityName string) (*PutRevenueScheduleResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) PUTRevenueByRecognitionStartandEndDates

func (a RevenueSchedulesApi) PUTRevenueByRecognitionStartandEndDates(rsNumber string, request PutrsTermType, entityId string, entityName string) (*PutRevenueScheduleResponseType, *APIResponse, error)

*

func (RevenueSchedulesApi) PUTRevenueSpecificDate

func (a RevenueSchedulesApi) PUTRevenueSpecificDate(rsNumber string, request PutSpecificDateAllocationType, entityId string, entityName string) (*PutRevenueScheduleResponseType, *APIResponse, error)

*

type SaveResult

type SaveResult struct {

	//
	Errors []ModelError `json:"Errors,omitempty"`

	//
	Id string `json:"Id,omitempty"`

	//
	Success bool `json:"Success,omitempty"`
}

type SettingsApi

type SettingsApi struct {
	Configuration *Configuration
}

func NewSettingsApi

func NewSettingsApi() *SettingsApi

func NewSettingsApiWithBasePath

func NewSettingsApiWithBasePath(basePath string) *SettingsApi

func (SettingsApi) GETRevenueAutomationStartDate

func (a SettingsApi) GETRevenueAutomationStartDate(entityId string, entityName string) (*GetRevenueStartDateSettingType, *APIResponse, error)

*

type SubscribeRequest

type SubscribeRequest struct {
	Account SubscribeRequestAccount `json:"Account,omitempty"`

	BillToContact SubscribeRequestBillToContact `json:"BillToContact,omitempty"`

	PaymentMethod SubscribeRequestPaymentMethod `json:"PaymentMethod,omitempty"`

	PreviewOptions SubscribeRequestPreviewOptions `json:"PreviewOptions,omitempty"`

	SoldToContact SubscribeRequestSoldToContact `json:"SoldToContact,omitempty"`

	SubscribeOptions SubscribeRequestSubscribeOptions `json:"SubscribeOptions,omitempty"`

	SubscriptionData SubscribeRequestSubscriptionData `json:"SubscriptionData,omitempty"`
}

type SubscribeRequestAccount

type SubscribeRequestAccount struct {

	// Unique account number assigned to the account.  **Character limit**: 50   **Values**: one of the following:  - null to auto-generate - a string of 50 characters or fewer that doesn't begin with the default account number prefix
	AccountNumber string `json:"AccountNumber,omitempty"`

	// List of additional email addresses to receive emailed invoices.  **Character limit**: 120   **Values**: comma-separated list of email addresses
	AdditionalEmailAddresses string `json:"AdditionalEmailAddresses,omitempty"`

	//  Indicates if associated invoices can be edited.   **Character limit**: 5   **Values**: `true`, `false` (default if left null)
	AllowInvoiceEdit bool `json:"AllowInvoiceEdit,omitempty"`

	//  Indicates if future payments are automatically collected when they're due during a Payment Run.   **Character limit**: 5   **Values**: `true`, `false` (default)
	AutoPay bool `json:"AutoPay,omitempty"`

	// Current outstanding balance for the account.  **Character limit**: 16   **Values**: automatically generated
	Balance float64 `json:"Balance,omitempty"`

	//  Organizes your customer accounts into groups to optimize your billing and payment operations.   **Character limit**: 20   **Values**:any system-defined batch (`Batch1` - `Batch50 `or by name).
	Batch string `json:"Batch,omitempty"`

	// Billing cycle day setting option.  **Character limit**: 9   **Values**: `AutoSet`, `ManualSet`
	BcdSettingOption string `json:"BcdSettingOption,omitempty"`

	// Billing cycle day (BCD) on which bill runs generate invoices for the account.  **Character limit**: 2   **Values**: any activated system-defined bill cycle day (`1` - `31`)
	BillCycleDay int32 `json:"BillCycleDay,omitempty"`

	// ID of the person to bill for the account.  **Character limit**: 32   **Values**: a valid contact ID for the account
	BillToId string `json:"BillToId,omitempty"`

	// Associates the account with a specified communication profile.  **Character limit**: 32   **Values**: a valid communication profile ID
	CommunicationProfileId string `json:"CommunicationProfileId,omitempty"`

	// ID of the Zuora user who created the Account object.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// Date when the Account object was created.  **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	// Total credit balance for the account.  **Character limit**: 16   **Values**: automatically generated
	CreditBalance float64 `json:"CreditBalance,omitempty"`

	// CRM account ID for the account. A CRM is a customer relationship management system, such as Salesforce.com.  **Character limit**: 100   **Values**: a string of 100 characters or fewer
	CrmId string `json:"CrmId,omitempty"`

	//  Currency that the customer is billed in. See [a currency value defined in the Zuora Ui admin settings](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Customize_Currencies)
	Currency string `json:"Currency,omitempty"`

	// Name of the account's customer service representative, if applicable.  **Character limit**: 50   **Values**: a string of 50 characters or fewer
	CustomerServiceRepName string `json:"CustomerServiceRepName,omitempty"`

	// ID of the default payment method for the account. This field is required if the AutoPay field is set to `true`.  **Character limit**: 32   **Values**: a valid ID for an existing payment method
	DefaultPaymentMethodId string `json:"DefaultPaymentMethodId,omitempty"`

	// Indicates if the customer wants to receive invoices through email. **Character limit**: 5   **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsEmail bool `json:"InvoiceDeliveryPrefsEmail,omitempty"`

	// Indicates if the customer wants to receive printed invoices, such as through postal mail.  **Character limit**: 5   **Values**: `true`, `false` (default if left null)
	InvoiceDeliveryPrefsPrint bool `json:"InvoiceDeliveryPrefsPrint,omitempty"`

	// The ID of the invoice template. Each customer account can use a specific invoice template for invoice generation.  **Character limit**: 32   **Values**: a[ valid template ID configured in Z-Billing Settings](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Manage_Invoice_Rules_and_Templates) To find the ID of your current invoice template: In Zuora, navigate to **Settings > Z-Billing > Manage Invoice Rules and Templates** and click **Show Id **next to the template you want to use.
	InvoiceTemplateId string `json:"InvoiceTemplateId,omitempty"`

	//  The date when the previous invoice was generated for the account. The field value is null if no invoice has ever been generated for the account.   **Character limit**: 29   **Values**: automatically generated
	LastInvoiceDate time.Time `json:"LastInvoiceDate,omitempty"`

	// Name of the account as displayed in the Zuora UI.  **Character limit**: 255   **Values**: a string of 255 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Comments about the account.  **Character limit**: 65,535   **Values**: a string of 65,535 characters
	Notes string `json:"Notes,omitempty"`

	// Identifier of the parent customer account for this Account object. Use this field if you have customer hierarchy enabled.  **Character limit**: 32   **Values**: a valid account ID
	ParentId string `json:"ParentId,omitempty"`

	// Gateway used for processing electronic payments and refunds.  **Character limit**: 40   **Values**: one of the following:  - a valid configured gateway name - Null to inherit the default value set in Z-Payment Settings
	PaymentGateway string `json:"PaymentGateway,omitempty"`

	// Indicates when the customer pays for subscriptions.  **Character limit**: 100   **Values**: [a valid, active payment term defined in the web-based UI administrative settings](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Payment_Terms)
	PaymentTerm string `json:"PaymentTerm,omitempty"`

	// The number of the purchase order associated with this account. Purchase order information generally comes from customers.  **Character limit**: 100   **Values**: a string of 100 characters or fewer
	PurchaseOrderNumber string `json:"PurchaseOrderNumber,omitempty"`

	// The name of the sales representative associated with this account, if applicable.  **Character limit**: 50   **Values**: a string of 50 characters or fewer
	SalesRepName string `json:"SalesRepName,omitempty"`

	// ID of the person who bought the subscription associated with the account.  **Character limit**: 32   **Values**: a valid contact ID for the account
	SoldToId string `json:"SoldToId,omitempty"`

	// Status of the account in the system.  **Character limit**: 8   **Values**: one of the following:  - leave null if you're using `subscribe ` - if you're using `create `: - `Draft` - `Active` - `Canceled`
	Status string `json:"Status,omitempty"`

	//  Unique code that identifies a company account in Avalara. Use this field to calculate taxes based on origin and sold-to addresses in Avalara. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).    **Character limit**: 50   **Values**: a valid company code
	TaxCompanyCode string `json:"TaxCompanyCode,omitempty"`

	// ID of your customer's tax exemption certificate.  **Character limit**: 32   **Values**: a string of 32 characters or fewer
	TaxExemptCertificateID string `json:"TaxExemptCertificateID,omitempty"`

	// Type of the tax exemption certificate that your customer holds. **Character limit**: 32   **Values**: a string of 32 characters or fewer
	TaxExemptCertificateType string `json:"TaxExemptCertificateType,omitempty"`

	// Description of the tax exemption certificate that your customer holds.  **Character limit**: 500   **Values**: a string of 500 characters or fewer
	TaxExemptDescription string `json:"TaxExemptDescription,omitempty"`

	// Date when the the customer's tax exemption starts.  **Character limit**: 29 **Version notes**: requires Z-Tax
	TaxExemptEffectiveDate time.Time `json:"TaxExemptEffectiveDate,omitempty"`

	// Date when the customer's tax exemption certificate expires **Character limit**: 29 **Version notes**: requires Z-Tax
	TaxExemptExpirationDate time.Time `json:"TaxExemptExpirationDate,omitempty"`

	// Indicates the jurisdiction in which the customer's tax exemption certificate was issued.  **Character limit**: 32   **Values**: a string of 32 characters or fewer
	TaxExemptIssuingJurisdiction string `json:"TaxExemptIssuingJurisdiction,omitempty"`

	//  Status of the account's tax exemption. Required if you use Z-Tax. This field is unavailable if you don't use Z-Tax.   **Character limit**: 19   **Values**: one of the following:  - `Yes` - `No` - `PendingVerification`
	TaxExemptStatus string `json:"TaxExemptStatus,omitempty"`

	// Total balance of the account's invoices.  **Character limit**: 16   **Values**: a valid currency value
	TotalInvoiceBalance float64 `json:"TotalInvoiceBalance,omitempty"`

	// ID of the user who last updated the account.  **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	// Date when the account was last updated.  **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  EU Value Added Tax ID. This feature is in **Limited Availability**. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/).    **Character limit**: 25   **Values**: a valid Value Added Tax ID
	VATId string `json:"VATId,omitempty"`
}

This is the Account object containing the information for this particular subscription. It has all the information needed to create an account for a subscription. **Values:** A valid account.

type SubscribeRequestBillToContact

type SubscribeRequestBillToContact struct {

	//  The Zuora account ID associated with this contact. This field is not required when you use the subscribe call. This field is required for all other calls. **Character limit: **32 **Values: **a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The first line of the contact's address, which is often a street address or business name.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	Address1 string `json:"Address1,omitempty"`

	//  The second line of the contact's address.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	Address2 string `json:"Address2,omitempty"`

	//  The city of the contact's address.   **Character limit**: 40 **Values: **a string of 40 characters or fewer
	City string `json:"City,omitempty"`

	//  The country of the contact's address.
	Country string `json:"Country,omitempty"`

	//  The country. May optionally be used by [Z-Tax](/C_Zuora_User_Guides/A_Billing_and_Payments/I_Taxes/Z-Tax) to calculate county tax.   **Character limit**: 32   **Values**: a string of 32 characters or fewer
	County string `json:"County,omitempty"`

	// The ID of the Zuora user who created the contact.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the contact was created.  **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  A description for the contact.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The contact's fax number.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	Fax string `json:"Fax,omitempty"`

	//  The contact's first name.   **Character limit**: 100   **Values**: a string of the contact's first name
	FirstName string `json:"FirstName,omitempty"`

	//  The contact's home phone number.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	HomePhone string `json:"HomePhone,omitempty"`

	//  The contact's last name.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The contact's mobile phone number.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	MobilePhone string `json:"MobilePhone,omitempty"`

	//  A nickname for the contact.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	NickName string `json:"NickName,omitempty"`

	//  An additional phone number for the contact.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	OtherPhone string `json:"OtherPhone,omitempty"`

	// The type of the `OtherPhone`.  **Character limit**: 20   **Values**: `Work`, `Mobile`, `Home`, `Other`
	OtherPhoneType string `json:"OtherPhoneType,omitempty"`

	//  The contact's personal email address.   **Character limit**: 80   **Values**: a string of 80 characters or fewer
	PersonalEmail string `json:"PersonalEmail,omitempty"`

	//  The zip code for the contact's address. **Character limit:** 20 **Values: **a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  The state or province of the contact's address.
	State string `json:"State,omitempty"`

	// If using [Z-Tax](https://knowledgecenter.zuora.com/CB_Billing/J_Billing_Operations/L_Taxes/A_Z-Tax) tax rules
	TaxRegion string `json:"TaxRegion,omitempty"`

	//  The ID of the user who lasted updated the contact.   **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the contact was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  The contact's business email address.   **Character limit**: 80   **Values**: a string of 80 characters or fewer
	WorkEmail string `json:"WorkEmail,omitempty"`

	//  The contact's business phone number.   **Character limit**: 40 **notes**: --   **Values**: a string of 40 characters or fewer
	WorkPhone string `json:"WorkPhone,omitempty"`
}

This is the object that contains the contact associated with this account in the Account's `BillToId` field. This field is required only if the account does not exist. Values: A valid contact for the account.

type SubscribeRequestPaymentMethod

type SubscribeRequestPaymentMethod struct {

	//  The ID of the customer account associated with this payment method.
	AccountId string `json:"AccountId,omitempty"`

	//  The nine-digit routing number or ABA number used by banks. Use this field for ACH payment methods.   **Character limit**: 9   **Values**: a string of 9 characters or fewer
	AchAbaCode string `json:"AchAbaCode,omitempty"`

	//  The name of the account holder, which can be either a person or a company. Use this field for ACH payment methods.   **Character limit**: 70   **Values**: a string of 70 characters or fewer
	AchAccountName string `json:"AchAccountName,omitempty"`

	//  The bank account number associated with the ACH payment. Use this field for ACH payment methods.   **Character limit**: 30   **Values**: a string of 30 numeric characters or fewer
	AchAccountNumber string `json:"AchAccountNumber,omitempty"`

	//  This is a masked displayable version of the ACH account number, used for security purposes. For example: `XXXXXXXXX54321`. Use this field for ACH payment methods.   **Character limit**: 32   **Values**: automatically generated
	AchAccountNumberMask string `json:"AchAccountNumberMask,omitempty"`

	//  The type of bank account associated with the ACH payment. Use this field for ACH payment methods.   **Character limit**: 16   **Values**:  - `BusinessChecking` - `Checking` - `Saving`
	AchAccountType string `json:"AchAccountType,omitempty"`

	//  Line 1 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress1 string `json:"AchAddress1,omitempty"`

	//  Line 2 for the ACH address. Required on create for the Vantiv payment gateway. Optional for other gateways. **Character limit:** **Values:** an address
	AchAddress2 string `json:"AchAddress2,omitempty"`

	//  The name of the bank where the ACH payment account is held. Use this field for ACH payment methods.   **Character limit**: 70   **Values**: a string of 70 characters or fewer
	AchBankName string `json:"AchBankName,omitempty"`

	//  Specifies whether a payment method is available in Zuora. The default value is `false`.   **Character limit**: 5   **Values**: `true`, `false`
	Active bool `json:"Active,omitempty"`

	//  The branch code of the bank used for direct debit. Use this field for direct debit payment methods.   **Character limit**: 10   **Values**:  string of 10 characters or fewer
	BankBranchCode string `json:"BankBranchCode,omitempty"`

	// The check digit in the international bank account number, which confirms the validity of the account. Use this field for direct debit payment methods.  **Character limit**: 4   **Values**:  string of 4 characters or fewer
	BankCheckDigit string `json:"BankCheckDigit,omitempty"`

	//  The city of the direct debit bank. Use this field for direct debit payment methods.   **Character limit**:70   **Values**:  string of 70 characters or fewer
	BankCity string `json:"BankCity,omitempty"`

	//  The sort code or number that identifies the bank. This is also known as the sort code. This field is required for direct debit payment methods.   **Character limit**: 18   **Values**:  string of 18 characters or fewer
	BankCode string `json:"BankCode,omitempty"`

	//  The first six digits of the payment method's number, such as the credit card number or account number. Banks use this number to identify a payment method.   **Character limit**: 6   **Values**:  string of 6 characters or fewer
	BankIdentificationNumber string `json:"BankIdentificationNumber,omitempty"`

	//  The name of the direct debit bank. Use this field for direct debit payment methods.   **Character limit**:80   **Values**:  string of 80 characters or fewer
	BankName string `json:"BankName,omitempty"`

	//  The zip code or postal code of the direct debit bank. Use this field for direct debit payment methods.   **Character limit**:20   **Values**:  string of 20 characters or fewer
	BankPostalCode string `json:"BankPostalCode,omitempty"`

	//  The name of the street of the direct debit bank. Use this field for direct debit payment methods.   **Character limit**:60   **Values**:  string of 60 characters or fewer
	BankStreetName string `json:"BankStreetName,omitempty"`

	//  The number of the direct debit bank. Use this field for direct debit payment methods.   **Character limit**:10   **Values**:  string of 10 characters or fewer
	BankStreetNumber string `json:"BankStreetNumber,omitempty"`

	//  The name on the direct debit bank account. Use this field for direct debit payment methods.   **Character limit**: 60   **Values**:  string of 60 characters or fewer
	BankTransferAccountName string `json:"BankTransferAccountName,omitempty"`

	//  The number of the customer's bank account. Use this field for direct debit payment methods.   **Character limit**:30   **Values**:  string of 30 characters or fewer
	BankTransferAccountNumber string `json:"BankTransferAccountNumber,omitempty"`

	//  This is a masked displayable version of the ACH account number, used for security purposes. For example: `XXXXXXXXX54321`.   **Character limit**: 32   **Values**: automatically generated
	BankTransferAccountNumberMask string `json:"BankTransferAccountNumberMask,omitempty"`

	//  The type of the customer's bank account. Use this field for direct debit payment methods.   **Character limit**: 11   **Values**: `DirectDebit`
	BankTransferAccountType string `json:"BankTransferAccountType,omitempty"`

	//  Specifies the type of direct debit transfer. The value of this field is dependent on the country of the user. Use this field is used for direct debit payment methods.   **Character limit**: 20   **Values**:  - `AutomatischIncasso` (NL) - `LastschriftDE` (Germany) - `LastschriftAT` (Austria) - `DemandeDePrelevement` (FR) - `DirectDebitUK` (UK) - `Domicil` (Belgium) - `LastschriftCH` (CH) - `RID` (Italy) - `OrdenDeDomiciliacion` (Spain)
	BankTransferType string `json:"BankTransferType,omitempty"`

	//  The business identification code for Swiss direct payment methods that use the Global Collect payment gateway. Use this field only for direct debit payments in Switzerland with Global Collect.   **Character limit**: 11   **Values**: string of 11 characters or fewer
	BusinessIdentificationCode string `json:"BusinessIdentificationCode,omitempty"`

	//  The city of the customer's address. Use this field for direct debit payment methods.   **Character limit**:80   **Values**:  string of 80 characters or fewer
	City string `json:"City,omitempty"`

	//  The two-letter country code of the customer's address. Use this field for direct debit payment methods.   **Character limit**: 2   **Values**: a valid country code
	Country string `json:"Country,omitempty"`

	//  The user ID of the person who created the `PaymentMethod` object when there is a login user in the user session. In Hosted Payment Method and Z-Checkout pages, this field is set to 3 as there is no login user to initiate a user session.   **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date when the `PaymentMethod` object was created in the Zuora system.   **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The first line of the card holder's address, which is often a street address or business name. Use this field for credit card and direct debit payment methods.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	CreditCardAddress1 string `json:"CreditCardAddress1,omitempty"`

	//  The second line of the card holder's address. Use this field for credit card and direct debit payment methods.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	CreditCardAddress2 string `json:"CreditCardAddress2,omitempty"`

	//  The city of the card holder's address. Use this field for credit card and direct debit payment methods  **Character limit**: 40   **Values**: a string of 40 characters or fewer
	CreditCardCity string `json:"CreditCardCity,omitempty"`

	//  The country of the card holder's address.
	CreditCardCountry string `json:"CreditCardCountry,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods.   **Character limit**: 2   **Values**: a two-digit number, 01 - 12
	CreditCardExpirationMonth int32 `json:"CreditCardExpirationMonth,omitempty"`

	//  The expiration month of the credit card or debit card. Use this field for credit card and direct debit payment methods.   **Character limit**: 4   **Values**: a four-digit number
	CreditCardExpirationYear int32 `json:"CreditCardExpirationYear,omitempty"`

	//  The full name of the card holder. Use this field for credit card and direct debit payment methods.   **Character limit**: 50   **Values**: a string of 50 characters or fewer
	CreditCardHolderName string `json:"CreditCardHolderName,omitempty"`

	//  A masked version of the credit or debit card number.   **Character limit**: 32   **Values**: automatically generated
	CreditCardMaskNumber string `json:"CreditCardMaskNumber,omitempty"`

	//  The credit card or debit card number. This is an insert-only field; it cannot be updated nor queried for security purposes. This field is required only when you define a debit card or credit card payment.   **Character limit**: 16   **Values**: a string of 16 characters or fewer
	CreditCardNumber string `json:"CreditCardNumber,omitempty"`

	//  The billing address's zip code. This field is required only when you define a debit card or credit card payment.   **Character limit**: 20   **Values**: a string of 20 characters or fewer
	CreditCardPostalCode string `json:"CreditCardPostalCode,omitempty"`

	//  The CVV or CVV2 security code. See [How do I control what information Zuora sends over to the Payment Gateway?](https://knowledgecenter.zuora.com/kb/How_do_I_control_information_sent_to_payment_gateways_when_verifying_payment_methods%3F) for more information. To ensure PCI compliance, this value is not stored and cannot be queried.   **Character limit**:   **Values**: a valid CVV or CVV2 security code
	CreditCardSecurityCode string `json:"CreditCardSecurityCode,omitempty"`

	//  The billing address's state. Use this field is if the `CreditCardCountry` value is either Canada or the US. State names must be spelled in full.
	CreditCardState string `json:"CreditCardState,omitempty"`

	//  The type of credit card or debit card. This field is required only when you define a debit card or credit card payment.   **Character limit**: 32   **Values**: `AmericanExpress`, `Discover`, `MasterCard`, `Visa`
	CreditCardType string `json:"CreditCardType,omitempty"`

	//  The session ID of the user when the `PaymentMethod` was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently only Verifi supports this field.   **Character limit**: 255   **Values**:
	DeviceSessionId string `json:"DeviceSessionId,omitempty"`

	//  An email address for the payment method in addition to the bill to contact email address.   **Character limit**: 80   **Values**: a string of 80 characters or fewer
	Email string `json:"Email,omitempty"`

	//  Indicates if the customer has an existing mandate or a new mandate. A mandate is a signed authorization for UK and NL customers. When you are migrating mandates from another system, be sure to set this field correctly. If you indicate that a new mandate is an existing mandate or vice-versa, then transactions fail. This field is used only for the direct debit payment method.   **Character limit**: 3   **Values**: `Yes`, `No`
	ExistingMandate string `json:"ExistingMandate,omitempty"`

	//  The customer's first name. This field is used only for the direct debit payment method.   **Character limit**: 30   **Values**: a string of 30 characters or fewer
	FirstName string `json:"FirstName,omitempty"`

	GatewayOptionData SubscribeRequestPaymentMethodGatewayOptionData `json:"GatewayOptionData,omitempty"`

	//  The International Bank Account Number. This field is used only for the direct debit payment method.   **Character limit**: 42   **Values**: a string of 42 characters or fewer
	IBAN string `json:"IBAN,omitempty"`

	//  The IP address of the user when the payment method was created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, then Zuora passes this field to supported gateways. Currently PayPal, CyberSource, Authorize.Net, and Verifi support this field.   **Character limit**: 15   **Values**: a string of 15 characters or fewer
	IPAddress string `json:"IPAddress,omitempty"`

	//  The ID of this object. Upon creation, the ID of this object is `PaymentMethodId`.   **Character limit**: 32   **Values**: automatically generated
	Id string `json:"Id,omitempty"`

	//  The date of the last failed attempt to collect payment with this payment method.   **Character limit**: 29   **Values**: automatically generated
	LastFailedSaleTransactionDate time.Time `json:"LastFailedSaleTransactionDate,omitempty"`

	//  The customer's last name. This field is used only for the direct debit payment method.   **Character limit**: 70   **Values**: a string of 70 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The date of the most recent transaction.   **Character limit**: 29   **Values**: a valid date and time value
	LastTransactionDateTime time.Time `json:"LastTransactionDateTime,omitempty"`

	//  The status of the most recent transaction.   **Character limit**: 39   **Values**: automatically generated
	LastTransactionStatus string `json:"LastTransactionStatus,omitempty"`

	//  The date when the mandate was created, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method.   **Character limit**: 29
	MandateCreationDate time.Time `json:"MandateCreationDate,omitempty"`

	//  The ID of the mandate. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method.   **Character limit**: 36   **Values**: a string of 36 characters or fewer
	MandateID string `json:"MandateID,omitempty"`

	//  Indicates if  the mandate was received. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method.   **Character limit**: 3   **Values**: `Yes`, `No `(case-sensitive)
	MandateReceived string `json:"MandateReceived,omitempty"`

	//  The date when the mandate was last updated, in `yyyy-mm-dd` format. A mandate is a signed authorization for UK and NL customers. This field is used only for the direct debit payment method.   **Character limit**: 29
	MandateUpdateDate time.Time `json:"MandateUpdateDate,omitempty"`

	//  Specifies the number of allowable consecutive failures Zuora attempts with the payment method before stopping.    **Values**: a valid number
	MaxConsecutivePaymentFailures int32 `json:"MaxConsecutivePaymentFailures,omitempty"`

	//  Create Query Delete Filter
	Name string `json:"Name,omitempty"`

	//  The number of consecutive failed payment for this payment method. It is reset to 0 upon successful payment. You can use the API to update the field value to 0.   **Character limit**:   **Values**: a positive whole number
	NumConsecutiveFailures int32 `json:"NumConsecutiveFailures,omitempty"`

	//  Specifies the status of the payment method. It is set to Active on creation.   **Character limit**: 6   **Values**: `Active` or `Closed` PaymentMethodStatus should not be used in the `create ` call. You can only set this field to **Closed** via the `update ` call.
	PaymentMethodStatus string `json:"PaymentMethodStatus,omitempty"`

	//  The retry interval setting, which prevents making a payment attempt if the last failed attempt was within the last specified number of hours. This field is required if the `UseDefaultRetryRule` field value is set to `false`.   **Character limit**: 4   **Values**: a whole number between 1 and 1000, exclusive
	PaymentRetryWindow int32 `json:"PaymentRetryWindow,omitempty"`

	//  The PayPal billing agreement ID, which is a contract between two PayPal accounts. Typically, the selling party initiates a request to create a BAID, and sends it to buying party for acceptance. The seller can keep track of the BAID and use it for future charges against the buyer. This field is required when defining a PayPal payment method.   **Character limit**: 64   **Values**: a string of 64 characters or fewer
	PaypalBaid string `json:"PaypalBaid,omitempty"`

	//  The email address associated with the account holder's PayPal account or of the PayPal account of the person paying for the service. This field is required only when you define a PayPal payment method.   **Character limit**: 80   **Values**: a string of 80 characters or fewer
	PaypalEmail string `json:"PaypalEmail,omitempty"`

	//  PayPal's Adaptive Payments API key. Zuora does not create this key, nor does it call PayPal to generate it. You must use PayPal's Adaptive Payments' API to generate this key, and then pass it to Zuora. Zuora uses this key to authorize future payments to PayPal's Adaptive Payments API. This field is required when you use PayPal Adaptive Payments gateway.   **Character limit**: 32   **Values**: a valid PayPal Adaptive Payment pre-approval key
	PaypalPreapprovalKey string `json:"PaypalPreapprovalKey,omitempty"`

	//  Specifies the PayPal gateway: PayFlow Pro (Express Checkout) or Adaptive Payments. This field is required when you use PayPal Adaptive Payments or Payflow Pro (Express Checkout) gateways.   **Character limit**: 32   **Values**: `ExpressCheckout`, `AdaptivePayments`
	PaypalType string `json:"PaypalType,omitempty"`

	//  The phone number that the account holder registered with the bank. This field is used for credit card validation when passing to a gateway.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	Phone string `json:"Phone,omitempty"`

	//  The zip code of the customer's address. This field is used only for the direct debit payment method.   **Character limit**: 20   **Values**: a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  A gateway unique identifier that replaces sensitive payment method data. SecondTokenId is conditionally required only when TokenID is being used to represent a gateway customer profile. SecondTokenId is used in the CC Reference Transaction payment method.  **Character limit**: 64   **Values**: a string of 64 characters or fewer
	SecondTokenId string `json:"SecondTokenId,omitempty"`

	//  Creates the payment method even if authorization fails with the payment gateway.   **Character limit**: 5   **Values**: `t“rue`, `false`
	SkipValidation bool `json:"SkipValidation,omitempty"`

	//  The state of the customer's address. This field is used only for the direct debit payment method.   **Character limit**: 70   **Values**: a string of 70 characters or fewer
	State string `json:"State,omitempty"`

	//  The street name of the customer's address. This field is used only for the direct debit payment method.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	StreetName string `json:"StreetName,omitempty"`

	//  The street number of the customer's address. This field is used only for the direct debit payment method.   **Character limit**: 30   **Values**: a string of 30 characters or fewer
	StreetNumber string `json:"StreetNumber,omitempty"`

	//  A gateway unique identifier that replaces sensitive payment method data or represents a gateway's unique customer profile. When TokenId is used to represent a customer profile, then SecondTokenId is conditionally required for representing the underlying tokenized payment method. TokenId is required for the CC Reference Transaction payment method.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	TokenId string `json:"TokenId,omitempty"`

	//  The number of error payments that used this payment method.   **Character limit**:   **Values**: automatically generated
	TotalNumberOfErrorPayments int32 `json:"TotalNumberOfErrorPayments,omitempty"`

	//  The number of successful payments that used this payment method.   **Character limit**:   **Values**: automatically generated
	TotalNumberOfProcessedPayments int32 `json:"TotalNumberOfProcessedPayments,omitempty"`

	//  Create Query Update Delete Filter
	Type_ string `json:"Type,omitempty"`

	//  The ID of the user who last updated the payment method.   **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the payment method was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  Determines whether to use the default retry rules configured in the [Z-Payments settings](https://knowledgecenter.zuora.com/CB_Billing/L_Payment_Methods/H_Configure_Payment_Method_Retry_Rules). Set this to `true` to use the default retry rules. Set this to `false` to set the specific rules for this payment method. If you set this value to `false`, then the fields, `PaymentRetryWindow` and `MaxConsecutivePaymentFailures`, are required.   **Character limit**: 5   **Values**: `t“rue`, `false`
	UseDefaultRetryRule bool `json:"UseDefaultRetryRule,omitempty"`
}

This is the object defining the payment details for the Account. The Account will be updated with this payment as the default payment method. Use this field if you are associating an electronic payment method with the account. A payment gateway must be enabled. Values: A valid electronic PaymentMethod.

type SubscribeRequestPaymentMethodGatewayOptionData

type SubscribeRequestPaymentMethodGatewayOptionData struct {

	//
	GatewayOption []GatewayOption `json:"GatewayOption,omitempty"`
}

Use this field to pass gateway options. **Character limit**: 255 **Values**: GatewayOption

type SubscribeRequestPreviewOptions

type SubscribeRequestPreviewOptions struct {

	//  Determines whether to create an amendment or display a preview of the change.
	EnablePreviewMode bool `json:"EnablePreviewMode,omitempty"`

	//  Specifies whether to include draft invoice items in amendment previews.
	IncludeExistingDraftInvoiceItems bool `json:"IncludeExistingDraftInvoiceItems,omitempty"`

	//  Indicates the number of invoice periods to show in a preview.
	NumberOfPeriods int32 `json:"NumberOfPeriods,omitempty"`

	//  Request to preview the charge through the end of the subscription term.
	PreviewThroughTermEnd bool `json:"PreviewThroughTermEnd,omitempty"`

	//  The type of preview you will receive from a preview request.
	PreviewType string `json:"PreviewType,omitempty"`
}

Specify true to call subscribe() with preview mode. After that is completed, the call system will roll back the subscription and return only the temporary invoice data. Specify false to call subscribe() without preview mode. **Values:** `true`, `false`

type SubscribeRequestSoldToContact

type SubscribeRequestSoldToContact struct {

	//  The Zuora account ID associated with this contact. This field is not required when you use the subscribe call. This field is required for all other calls. **Character limit: **32 **Values: **a valid account ID
	AccountId string `json:"AccountId,omitempty"`

	//  The first line of the contact's address, which is often a street address or business name.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	Address1 string `json:"Address1,omitempty"`

	//  The second line of the contact's address.   **Character limit**: 255   **Values**: a string of 255 characters or fewer
	Address2 string `json:"Address2,omitempty"`

	//  The city of the contact's address.   **Character limit**: 40 **Values: **a string of 40 characters or fewer
	City string `json:"City,omitempty"`

	//  The country of the contact's address.
	Country string `json:"Country,omitempty"`

	//  The country. May optionally be used by [Z-Tax](/C_Zuora_User_Guides/A_Billing_and_Payments/I_Taxes/Z-Tax) to calculate county tax.   **Character limit**: 32   **Values**: a string of 32 characters or fewer
	County string `json:"County,omitempty"`

	// The ID of the Zuora user who created the contact.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	// The date when the contact was created.  **Character limit**: 29   **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  A description for the contact.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	Description string `json:"Description,omitempty"`

	//  The contact's fax number.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	Fax string `json:"Fax,omitempty"`

	//  The contact's first name.   **Character limit**: 100   **Values**: a string of the contact's first name
	FirstName string `json:"FirstName,omitempty"`

	//  The contact's home phone number.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	HomePhone string `json:"HomePhone,omitempty"`

	//  The contact's last name.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	LastName string `json:"LastName,omitempty"`

	//  The contact's mobile phone number.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	MobilePhone string `json:"MobilePhone,omitempty"`

	//  A nickname for the contact.   **Character limit**: 100   **Values**: a string of 100 characters or fewer
	NickName string `json:"NickName,omitempty"`

	//  An additional phone number for the contact.   **Character limit**: 40   **Values**: a string of 40 characters or fewer
	OtherPhone string `json:"OtherPhone,omitempty"`

	// The type of the `OtherPhone`.  **Character limit**: 20   **Values**: `Work`, `Mobile`, `Home`, `Other`
	OtherPhoneType string `json:"OtherPhoneType,omitempty"`

	//  The contact's personal email address.   **Character limit**: 80   **Values**: a string of 80 characters or fewer
	PersonalEmail string `json:"PersonalEmail,omitempty"`

	//  The zip code for the contact's address. **Character limit:** 20 **Values: **a string of 20 characters or fewer
	PostalCode string `json:"PostalCode,omitempty"`

	//  The state or province of the contact's address.
	State string `json:"State,omitempty"`

	// If using [Z-Tax](https://knowledgecenter.zuora.com/CB_Billing/J_Billing_Operations/L_Taxes/A_Z-Tax) tax rules
	TaxRegion string `json:"TaxRegion,omitempty"`

	//  The ID of the user who lasted updated the contact.   **Character limit**: 32   **Values**: automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the contact was last updated.   **Character limit**: 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  The contact's business email address.   **Character limit**: 80   **Values**: a string of 80 characters or fewer
	WorkEmail string `json:"WorkEmail,omitempty"`

	//  The contact's business phone number.   **Character limit**: 40 **notes**: --   **Values**: a string of 40 characters or fewer
	WorkPhone string `json:"WorkPhone,omitempty"`
}

Unless otherwise specified, this field defaults to the information in the `BillToContact` field. **Values:** A valid contact.

type SubscribeRequestSubscribeOptions

type SubscribeRequestSubscribeOptions struct {

	//
	ApplyCreditBalance bool `json:"ApplyCreditBalance,omitempty"`

	ElectronicPaymentOptions SubscribeRequestSubscribeOptionsElectronicPaymentOptions `json:"ElectronicPaymentOptions,omitempty"`

	ExternalPaymentOptions SubscribeRequestSubscribeOptionsExternalPaymentOptions `json:"ExternalPaymentOptions,omitempty"`

	//
	GenerateInvoice bool `json:"GenerateInvoice,omitempty"`

	//
	ProcessPayments bool `json:"ProcessPayments,omitempty"`

	SubscribeInvoiceProcessingOptions SubscribeRequestSubscribeOptionsSubscribeInvoiceProcessingOptions `json:"SubscribeInvoiceProcessingOptions,omitempty"`
}

This optional object specifies parameters related to invoicing - whether to immediately generate an invoice and collect payment, and whether the invoice should cover all subscriptions or just this new subscription. The default behavior is to invoice immediately for all the account's subscriptions, with the current date as the target date, and immediately collect payment if the account's `AutoPay` flag is true. **Values:** A valid SubscribeOptions object.

type SubscribeRequestSubscribeOptionsElectronicPaymentOptions

type SubscribeRequestSubscribeOptionsElectronicPaymentOptions struct {

	//
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`
}

type SubscribeRequestSubscribeOptionsExternalPaymentOptions

type SubscribeRequestSubscribeOptionsExternalPaymentOptions struct {

	//
	Amount float64 `json:"Amount,omitempty"`

	//
	EffectiveDate time.Time `json:"EffectiveDate,omitempty"`

	//
	GatewayOrderId string `json:"GatewayOrderId,omitempty"`

	//
	PaymentMethodId string `json:"PaymentMethodId,omitempty"`

	//
	ReferenceId string `json:"ReferenceId,omitempty"`
}

type SubscribeRequestSubscribeOptionsSubscribeInvoiceProcessingOptions

type SubscribeRequestSubscribeOptionsSubscribeInvoiceProcessingOptions struct {

	//
	InvoiceDate time.Time `json:"InvoiceDate,omitempty"`

	//
	InvoiceProcessingScope string `json:"InvoiceProcessingScope,omitempty"`

	//
	InvoiceTargetDate time.Time `json:"InvoiceTargetDate,omitempty"`
}

type SubscribeRequestSubscriptionData

type SubscribeRequestSubscriptionData struct {

	//
	RatePlanData []RatePlanData `json:"RatePlanData,omitempty"`

	Subscription SubscribeRequestSubscriptionDataSubscription `json:"Subscription,omitempty"`
}

This object contains the information on the contract's dates and terms. **Values:** A valid SubscriptionData object.

type SubscribeRequestSubscriptionDataSubscription

type SubscribeRequestSubscriptionDataSubscription struct {

	//  This field can be updated when `Status` is `Draft`.
	AccountId string `json:"AccountId,omitempty"`

	//  A filter option for querying all subscriptions under the same account hierarchy.   **Character limit**: 32   **Values**: a valid account ID
	AncestorAccountId string `json:"AncestorAccountId,omitempty"`

	//  This field can be updated when `Status` is `Draft`. Indicates if the subscription automatically renews at the end of the term.    **Values**: `true`, `false`
	AutoRenew bool `json:"AutoRenew,omitempty"`

	//  The date of the amendment that canceled the subscription.    **Values**: inherited from `Amendment`.`EffectiveDate`
	CancelledDate time.Time `json:"CancelledDate,omitempty"`

	//  The date when the customer accepts the contract. This field can be updated when **Status** is `Draft`.   **Note**: The service activation date is only required if the [Require Service Activation of Orders?](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Default_Subscription_Settings#Require_Service_Activation_of_Orders.3F) Setting is set to `Yes`. If this setting is set to `Yes`:  - If ContractAcceptanceDate field is required, you must set this field, ContractAcceptanceDate, and ContractEffectiveDate fields in the subscribe call to activate a subscription. - If ContractAcceptanceDate field is not required, you must set both this field and the ContractEffectiveDate field in the subscribe call to activate a subscription. If you only set a valid date in the ContractEffectiveDate field, the subscribe call still returns success, but the subscription is in `DRAT` status.
	ContractAcceptanceDate time.Time `json:"ContractAcceptanceDate,omitempty"`

	//  The date when the contract takes effect. This field can be updated when **Status** is `Draft`.   **Note**: This field is required in the subscribe call. If you set the value of this field to null and both the ServiceActivationDate and ContractAcceptanceDate fields are not required, the subscribe call still returns success, but the new subscription is in `DRAFT` status. To activate the subscription, you must set a valid date to this field.
	ContractEffectiveDate time.Time `json:"ContractEffectiveDate,omitempty"`

	// The user ID of the person who created the subscription.  **Character limit**: 32   **Values**: automatically generated
	CreatedById string `json:"CreatedById,omitempty"`

	//  The date the subscription was created. This value is the same as the OriginalCreatedDate value until the subscription is amended.    **Values**: automatically generated
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  The account ID that created the subscription or the amended subscription.   **Character limit**: 32   **Values**: automatically generated
	CreatorAccountId string `json:"CreatorAccountId,omitempty"`

	// The account ID that owns the invoices associated with the subscription or the amended subscription.   **Character limit**: 32   **Values**: automatically generated
	CreatorInvoiceOwnerId string `json:"CreatorInvoiceOwnerId,omitempty"`

	//  The length of the period for the current subscription term. If TermType is set to `TERMED`, this field is required and must be greater than `0`. If TermType is set to `EVERGREEN`, this value is ignored. Default is `0`.   **Character limit**: 20   **Values**: automatically generated
	CurrentTerm int32 `json:"CurrentTerm,omitempty"`

	//  The period type for the current subscription term. This field is used with the CurrentTerm field to specify the current subscription term.    **Values**:  - `Month` (default) - `Year` - `Day` - `Week`
	CurrentTermPeriodType string `json:"CurrentTermPeriodType,omitempty"`

	//  The length of the period for the first subscription term. This field can be updated when Status is `Draft`. If you use the subscribe call, this field is required.   **Required**: If TermType is Termed  **Character limit**: 20   **Values**: any valid number. The default value is 0.
	InitialTerm int32 `json:"InitialTerm,omitempty"`

	//  The period type for the first subscription term.    **Values**:  - `Month` (default) - `Year` - `Day` - `Week`   **Note**:  - This field can be updated when `Status` is `Draft`. - This field is used with the `InitialTerm` field to specify the initial subscription term.
	InitialTermPeriodType string `json:"InitialTermPeriodType,omitempty"`

	//  This field can be updated when `Status` is `Draft`.
	InvoiceOwnerId string `json:"InvoiceOwnerId,omitempty"`

	//  Determines if the subscription is invoiced separately. If `TRUE`, then all charges for this subscription are collected into the subscription's own invoice.    **Values**: `TRUE`, `FALSE `(default)
	IsInvoiceSeparate bool `json:"IsInvoiceSeparate,omitempty"`

	//  The unique identifier of the subscription. If you don't specify a value, then Zuora generates a name automatically. Whether auto-generated or manually specified, the subscription name must be unique. Otherwise an error will occur. You can change this value only when the subscription is in `Draft` status. Once the subscription is activated, you can't change this value, nor can you use this value for a different subscription.   **Character limit**: 100   **Values**: one of the following:  - leave null to automatically generate - a string of 100 characters or fewer
	Name string `json:"Name,omitempty"`

	//  Use this field to record comments about the subscription.   **Character limit**: 500   **Values**: a string of 500 characters or fewer
	Notes string `json:"Notes,omitempty"`

	//  The closing date of the Opportunity. This field is used in Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes.   **Character limit**:   **Values**: populated by Zuora Quotes
	OpportunityCloseDateQT time.Time `json:"OpportunityCloseDate__QT,omitempty"`

	//  The unique identifier of the Opportunity. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes.   **Character limit**: 100   **Values**: populated by Zuora Quotes
	OpportunityNameQT string `json:"OpportunityName__QT,omitempty"`

	//  The date when the subscription was originally created. This value is the same as the CreatedDate value until the subscription is amended.    **Values**: automatically generated
	OriginalCreatedDate time.Time `json:"OriginalCreatedDate,omitempty"`

	//  The original ID of this subscription.    **Values**: automatically generated
	OriginalId string `json:"OriginalId,omitempty"`

	//  The subscription ID immediately prior to the current subscription.   **Character limit**: 32   **Values**: automatically generated
	PreviousSubscriptionId string `json:"PreviousSubscriptionId,omitempty"`

	//  The specific identifier for the type of business transaction the Quote represents such as New, Upsell, Downsell, Renewal or Churn. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes.   **Character limit**: 32   **Values**: populated by Zuora Quotes
	QuoteBusinessTypeQT string `json:"QuoteBusinessType__QT,omitempty"`

	//  The unique identifier of the Quote. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes.   **Character limit**: 32   **Values**: populated by Zuora Quotes
	QuoteNumberQT string `json:"QuoteNumber__QT,omitempty"`

	//  The Quote type that represents the subscription lifecycle stage such as New, Amendment, Renew or Cancel. This field is used in the Zuora Reporting Data Sources to report on Subscription metrics. If the subscription was originated from Zuora Quotes, the value is populated with the value from Zuora Quotes.   **Character limit**: 32   **Values**: populated by Zuora Quotes
	QuoteTypeQT string `json:"QuoteType__QT,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed.   **Required**: If TermType is Termed   **Values**: `RENEW_WITH_SPECIFIC_TERM `(default), `RENEW_TO_EVERGREEN`
	RenewalSetting string `json:"RenewalSetting,omitempty"`

	//  The length of the period for the subscription renewal term. This field can be updated when **Status** is `Draft`. If you use the subscribe call, this field is required.   **Required**: If TermType is Termed.   **Character limit**: 20   **Values**: one of the following:  - leave null to default to `0` - any number
	RenewalTerm int32 `json:"RenewalTerm,omitempty"`

	//  The period type for the subscription renewal term.    **Values**:  - `Month` (default) - `Year` - `Day` - `Week`   **Note**:  - This field is used with the RenewalTerm field to specify the subscription renewal term. - This field can be updated when Status is `Draft`.
	RenewalTermPeriodType string `json:"RenewalTermPeriodType,omitempty"`

	//  The date when the subscription is activated. This field can be updated when **Status** is `Draft`.   **Character limit**: 29  **Note**: The service activation date is only required if the [Require Service Activation of Orders?](https://knowledgecenter.zuora.com/CB_Billing/Billing_Settings/Define_Default_Subscription_Settings#Require_Service_Activation_of_Orders.3F) Setting is set to `Yes`. If this setting is set to `Yes`:  - If ContractAcceptanceDate field is required, you must set this field, ContractAcceptanceDate, and ContractEffectiveDate fields in the subscribe call to activate a subscription. - If ContractAcceptanceDate field is not required, you must set both this field and the ContractEffectiveDate field in the subscribe call to activate a subscription. If you only set a valid date in the ContractEffectiveDate field, the subscribe call still returns success, but the subscription is in `DRAT` status.
	ServiceActivationDate time.Time `json:"ServiceActivationDate,omitempty"`

	//  The status of the subscription.   **Character limit**: 17   **Values**: automatically generated  **Possible values**: one of the following:  - `Draft` - `PendingActivation` - `PendingAcceptance` - `Active` - `Cancelled` - `Expired` - `Suspended` (This value is in **Limited Availability**.)
	Status string `json:"Status,omitempty"`

	//  The date when the subscription term ends, where the subscription ends at midnight the day before. For example, if the SubscriptionEndDate is 12/31/2016, the subscriptions ends at midnight (00:00:00 hours) on 12/30/2016. This date is the same as the term end date or the cancelation date, as appropriate.   **Character limit**: 29   **Values**: automatically generated
	SubscriptionEndDate time.Time `json:"SubscriptionEndDate,omitempty"`

	//  The date when the subscription term starts. This date is the same as the start date of the original term, which isn't necessarily the start date of the current or new term.   **Character limit**: 29   **Values**: automatically generated
	SubscriptionStartDate time.Time `json:"SubscriptionStartDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. The date when the subscription term ends. If the subscription is evergreen, the TermEndDate value is null or is the cancelation date, as appropriate.  **Character limit**: 29   **Values**: automatically generated
	TermEndDate time.Time `json:"TermEndDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. The date when the subscription term begins. If this is a renewal subscription, then this date is different from the subscription start date.   **Character limit**: 29
	TermStartDate time.Time `json:"TermStartDate,omitempty"`

	//  This field can be updated when **Status** is `Draft`. Indicates if a subscription is [termed or evergreen](https://knowledgecenter.zuora.com/BC_Subscription_Management/Subscriptions#Termed_and_Evergreen_Subscriptions). A termed subscription has a specific end date and requires manual renewal. An evergreen subscription doesn't have an end date and doesn't need renewal. This field can be updated when the subscription status is Draft.   **Character limit**: 9   **Values**: `TERMED`, `EVERGREEN`
	TermType string `json:"TermType,omitempty"`

	//  The ID of the user who last updated the subscription. **Character limit:** 32 **Values: **automatically generated
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  The date when the subscription was last updated. **Character limit:** 29   **Values**: automatically generated
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`

	//  The version number of the subscription.    **Values**: automatically generated
	Version int32 `json:"Version,omitempty"`
}

type SubscribeResult

type SubscribeResult struct {

	//
	AccountId string `json:"AccountId,omitempty"`

	//
	AccountNumber string `json:"AccountNumber,omitempty"`

	ChargeMetricsData SubscribeResultChargeMetricsData `json:"ChargeMetricsData,omitempty"`

	//
	Errors []ModelError `json:"Errors,omitempty"`

	//
	GatewayResponse string `json:"GatewayResponse,omitempty"`

	//
	GatewayResponseCode string `json:"GatewayResponseCode,omitempty"`

	//
	InvoiceData []InvoiceData `json:"InvoiceData,omitempty"`

	//
	InvoiceId string `json:"InvoiceId,omitempty"`

	//
	InvoiceNumber string `json:"InvoiceNumber,omitempty"`

	InvoiceResult SubscribeResultInvoiceResult `json:"InvoiceResult,omitempty"`

	//
	PaymentId string `json:"PaymentId,omitempty"`

	//
	PaymentTransactionNumber string `json:"PaymentTransactionNumber,omitempty"`

	//
	SubscriptionId string `json:"SubscriptionId,omitempty"`

	//
	SubscriptionNumber string `json:"SubscriptionNumber,omitempty"`

	//
	Success bool `json:"Success,omitempty"`

	//
	TotalMrr float64 `json:"TotalMrr,omitempty"`

	//
	TotalTcv float64 `json:"TotalTcv,omitempty"`
}

type SubscribeResultChargeMetricsData

type SubscribeResultChargeMetricsData struct {

	//
	ChargeMetrics []NewChargeMetrics `json:"ChargeMetrics,omitempty"`
}

type SubscribeResultInvoiceResult

type SubscribeResultInvoiceResult struct {

	//
	Invoice []Invoice `json:"Invoice,omitempty"`
}

type SubscriptionProductFeature

type SubscriptionProductFeature struct {

	//
	CreatedById string `json:"CreatedById,omitempty"`

	//  Date and time when the product feature was added to the subscription.   **Character limit**: 29   **Values**:
	CreatedDate time.Time `json:"CreatedDate,omitempty"`

	//  Description of the subscription product feature.   **Character limit**: 500   **Values**:
	Description string `json:"Description,omitempty"`

	//  Unique code of the feature.   **Character limit**: 255   **Values**:
	FeatureCode string `json:"FeatureCode,omitempty"`

	//  Internal Zuora ID of the feature.   **Character limit**: 32   **Values**:
	FeatureId string `json:"FeatureId,omitempty"`

	//  Name of the feature.   **Character limit**: 255   **Values**:
	Name string `json:"Name,omitempty"`

	//  Id of the product rate plan to which the feature belongs.   **Character limit**: 32   **Values**:
	RatePlanId string `json:"RatePlanId,omitempty"`

	//  Internal Zuora ID of the user who last updated the subscription product feature.   **Character limit**: 32   **Values**:
	UpdatedById string `json:"UpdatedById,omitempty"`

	//  Date and time when the subscription product feature was last updated.   **Character limit**: 29   **Values**:
	UpdatedDate time.Time `json:"UpdatedDate,omitempty"`
}

type SubscriptionProductFeatureList

type SubscriptionProductFeatureList struct {

	//
	SubscriptionProductFeature []SubscriptionProductFeature `json:"SubscriptionProductFeature,omitempty"`
}

type SubscriptionProductFeaturesApi

type SubscriptionProductFeaturesApi struct {
	Configuration *Configuration
}

func NewSubscriptionProductFeaturesApi

func NewSubscriptionProductFeaturesApi() *SubscriptionProductFeaturesApi

func NewSubscriptionProductFeaturesApiWithBasePath

func NewSubscriptionProductFeaturesApiWithBasePath(basePath string) *SubscriptionProductFeaturesApi

func (SubscriptionProductFeaturesApi) ObjectDELETESubscriptionProductFeature

func (a SubscriptionProductFeaturesApi) ObjectDELETESubscriptionProductFeature(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (SubscriptionProductFeaturesApi) ObjectGETSubscriptionProductFeature

func (a SubscriptionProductFeaturesApi) ObjectGETSubscriptionProductFeature(id string, entityId string, entityName string, fields string) (*ProxyGetSubscriptionProductFeature, *APIResponse, error)

*

type SubscriptionsApi

type SubscriptionsApi struct {
	Configuration *Configuration
}

func NewSubscriptionsApi

func NewSubscriptionsApi() *SubscriptionsApi

func NewSubscriptionsApiWithBasePath

func NewSubscriptionsApiWithBasePath(basePath string) *SubscriptionsApi

func (SubscriptionsApi) GETSubscriptionsByAccount

func (a SubscriptionsApi) GETSubscriptionsByAccount(accountKey string, entityId string, entityName string, pageSize int32, chargeDetail string) (*GetSubscriptionWrapper, *APIResponse, error)

*

  • Get subscriptions by account
  • Retrieves all subscriptions associated with the specified account. Zuora only returns the latest version of the subscriptions. Subscription data is returned in reverse chronological order based on &#x60;updatedDate&#x60;. *
  • @param accountKey Possible values are: * an account number * an account ID
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param pageSize Number of rows returned per page.
  • @param chargeDetail The segmented rate plan charges. When an amendment results in a change to a charge, Zuora creates a segmented rate plan charge. Use this field to track segment charges. Possible values are: * __last-segment__: (Default) The last rate plan charge on the subscription. The last rate plan charge is the last one in the order of time on the subscription rather than the most recent changed charge on the subscription. * __current-segment__: The segmented charge that is active on today’s date (effectiveStartDate &lt;&#x3D; today’s date &lt; effectiveEndDate). * __all-segments__: All the segmented charges. The &#x60;chargeSegments&#x60; field is returned in the response. The &#x60;chargeSegments&#x60; field contains an array of the charge information for all the charge segments. * __specific-segment&amp;as-of-date&#x3D;date__: The segmented charge that is active on a date you specified (effectiveStartDate &lt;&#x3D; specific date &lt; effectiveEndDate). The format of the date is yyyy-mm-dd.
  • @return *GetSubscriptionWrapper

func (SubscriptionsApi) GETSubscriptionsByKey

func (a SubscriptionsApi) GETSubscriptionsByKey(subscriptionKey string, entityId string, entityName string, chargeDetail string) (*GetSubscriptionTypeWithSuccess, *APIResponse, error)

*

  • Get subscriptions by key
  • This REST API reference describes how to retrieve detailed information about a specified subscription in the latest version. *
  • @param subscriptionKey Possible values are: * a subscription number * a subscription ID
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param chargeDetail The segmented rate plan charges. When an amendment results in a change to a charge, Zuora creates a segmented rate plan charge. Use this field to track segment charges. Possible values are: * __last-segment__: (Default) The last rate plan charge on the subscription. The last rate plan charge is the last one in the order of time on the subscription rather than the most recent changed charge on the subscription. * __current-segment__: The segmented charge that is active on today’s date (effectiveStartDate &lt;&#x3D; today’s date &lt; effectiveEndDate). * __all-segments__: All the segmented charges. The &#x60;chargeSegments&#x60; field is returned in the response. The &#x60;chargeSegments&#x60; field contains an array of the charge information for all the charge segments. * __specific-segment&amp;as-of-date&#x3D;date__: The segmented charge that is active on a date you specified (effectiveStartDate &lt;&#x3D; specific date &lt; effectiveEndDate). The format of the date is yyyy-mm-dd.
  • @return *GetSubscriptionTypeWithSuccess

func (SubscriptionsApi) GETSubscriptionsByKeyAndVersion

func (a SubscriptionsApi) GETSubscriptionsByKeyAndVersion(subscriptionKey string, version string, entityId string, entityName string, chargeDetail string) (*GetSubscriptionTypeWithSuccess, *APIResponse, error)

*

  • Get subscriptions by key and version
  • This REST API reference describes how to retrieve detailed information about a specified subscription in a specified version. When you create a subscription amendment, you create a new version of the subscription. You can use this method to retrieve information about a subscription in any version. *
  • @param subscriptionKey Subscription number. For example, A-S00000135.
  • @param version Subscription version. For example, 1.
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param chargeDetail The segmented rate plan charges. When an amendment results in a change to a charge, Zuora creates a segmented rate plan charge. Use this field to track segment charges. Possible values are: * __last-segment__: (Default) The last rate plan charge on the subscription. The last rate plan charge is the last one in the order of time on the subscription rather than the most recent changed charge on the subscription. * __current-segment__: The segmented charge that is active on today’s date (effectiveStartDate &lt;&#x3D; today’s date &lt; effectiveEndDate). * __all-segments__: All the segmented charges. The &#x60;chargeSegments&#x60; field is returned in the response. The &#x60;chargeSegments&#x60; field contains an array of the charge information for all the charge segments. * __specific-segment&amp;as-of-date&#x3D;date__: The segmented charge that is active on a date you specified (effectiveStartDate &lt;&#x3D; specific date &lt; effectiveEndDate). The format of the date is yyyy-mm-dd.
  • @return *GetSubscriptionTypeWithSuccess

func (SubscriptionsApi) ObjectDELETESubscription

func (a SubscriptionsApi) ObjectDELETESubscription(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (SubscriptionsApi) ObjectGETSubscription

func (a SubscriptionsApi) ObjectGETSubscription(id string, entityId string, entityName string, fields string) (*ProxyGetSubscription, *APIResponse, error)

*

func (SubscriptionsApi) ObjectPUTSubscription

func (a SubscriptionsApi) ObjectPUTSubscription(id string, modifyRequest ProxyModifySubscription, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (SubscriptionsApi) POSTPreviewSubscription

func (a SubscriptionsApi) POSTPreviewSubscription(request PostSubscriptionPreviewType, entityId string, entityName string, zuoraVersion string) (*PostSubscriptionPreviewResponseType, *APIResponse, error)

*

  • Preview subscription
  • The REST API reference describes how to create a new subscription in preview mode. This call does not require a valid customer account. It can be used to show potential new customers a preview of a subscription with complete details and charges before creating an account, or to let existing customers preview a subscription with all charges before committing. ## Notes - The response of the Preview Subscription call is based on the REST API minor version you set in the request header. The response structure might be different if you use different minor version numbers. - If you have the Advanced AR Settlement feature enabled, we recommend that you set the &#x60;zuora-version&#x60; parameter to &#x60;207.0&#x60; or later. Otherwise, an error is returned. - Default values for **customerAcceptanceDate** and **serviceActivationDate** are set as follows. | | serviceActivationDate (SA) specified | serviceActivationDate (SA) NOT specified | | ------------- |:-------------:| -----:| | customerAcceptanceDate (CA) specified | SA uses value in the request call; CA uses value in the request call| CA uses value in the request call;SA uses CE as default | | customerAcceptanceDate (CA) NOT specified | SA uses value in the request call; CA uses SA as default | SA and CA use CE as default | *
  • @param request
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param zuoraVersion The minor version of the Zuora REST API. You need to set this parameter if you use the following fields: * targetDate * includeExistingDraftDocItems * previewType If you have the Advanced AR Settlement feature enabled, you need to specify this parameter. Otherwise, an error is returned. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
  • @return *PostSubscriptionPreviewResponseType

func (SubscriptionsApi) POSTSubscription

func (a SubscriptionsApi) POSTSubscription(request PostSubscriptionType, entityId string, entityName string, zuoraVersion string) (*PostSubscriptionResponseType, *APIResponse, error)

*

  • Create subscription
  • This REST API reference describes how to create a new subscription for an existing customer account. ## Notes If invoiceCollect is &#x60;true&#x60;, the call will not return success &#x3D; &#x60;true&#x60; unless the subscription, invoice, and payment are all successful. Default values for **customerAcceptanceDate** and **serviceActivationDate** are set as follows. | | serviceActivationDate(SA) specified | serviceActivationDate (SA) NOT specified | | ------------- |:-------------:| -----:| | customerAcceptanceDate (CA) specified| SA uses value in the request call; CA uses value in the request call| CA uses value in the request call;SA uses CE as default | | customerAcceptanceDate (CA) NOT specified | SA uses value in the request call; CA uses SA as default | SA and CA use CE as default | *
  • @param request
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param zuoraVersion The minor version of the Zuora REST API. You only need to set this parameter if you use the following fields: * invoice * collect * runBilling * targetDate
  • @return *PostSubscriptionResponseType

func (SubscriptionsApi) PUTCancelSubscription

func (a SubscriptionsApi) PUTCancelSubscription(subscriptionKey string, request PostSubscriptionCancellationType, entityId string, entityName string, zuoraVersion string) (*PostSubscriptionCancellationResponseType, *APIResponse, error)

*

func (SubscriptionsApi) PUTRenewSubscription

func (a SubscriptionsApi) PUTRenewSubscription(subscriptionKey string, request PutRenewSubscriptionType, entityId string, entityName string, zuoraVersion string) (*PutRenewSubscriptionResponseType, *APIResponse, error)

*

func (SubscriptionsApi) PUTResumeSubscription

func (a SubscriptionsApi) PUTResumeSubscription(subscriptionKey string, request PutSubscriptionResumeType, entityId string, entityName string, zuoraVersion string) (*PutSubscriptionResumeResponseType, *APIResponse, error)

*

func (SubscriptionsApi) PUTSubscription

func (a SubscriptionsApi) PUTSubscription(subscriptionKey string, request PutSubscriptionType, entityId string, entityName string, zuoraVersion string) (*PutSubscriptionResponseType, *APIResponse, error)

*

  • Update subscription
  • Use this call to make the following kinds of changes to a subscription: * Add a note * Change the renewal term or auto-renewal flag * Change the term length or change between evergreen and termed * Add a new product rate plan * Remove an existing subscription rate plan * Change the quantity or price of an existing subscription rate plan ## Notes * The Update Subscription call creates a new subscription, which has the old subscription number but a new subscription ID. The old subscription is canceled but remains in the system. * In one request, this call can make: * Up to 9 combined add, update, and remove changes * No more than 1 change to terms &amp; conditions * Updates are performed in the following sequence: 1. First change the notes on the existing subscription, if requested. 2. Then change the terms and conditions, if requested. 3. Then perform the remaining amendments based upon the effective dates specified. If multiple amendments have the same contract-effective dates, then execute adds before updates, and updates before removes. * The update operation is atomic. If any of the updates fails, the entire operation is rolled back. * The response of the Update Subscription call is based on the REST API minor version you set in the request header. The response structure might be different if you use different minor version numbers. * If you have the Advanced AR Settlement feature enabled, we recommend that you set the &#x60;zuora-version&#x60; parameter to &#x60;207.0&#x60; or later. Otherwise, an error is returned. ## Override a Tiered Price There are two ways you override a tiered price: * Override a specific tier number For example: &#x60;tiers[{tier:1,price:8},{tier:2,price:6}]&#x60; * Override the entire tier structure For example: &#x60;tiers[{tier:1,price:8,startingUnit:1,endingUnit:100,priceFormat:\&quot;FlatFee\&quot;}, {tier:2,price:6,startingUnit:101,priceFormat:\&quot;FlatFee\&quot;}]&#x60; If you just override a specific tier, do not include the &#x60;startingUnit&#x60; field in the request. *
  • @param subscriptionKey Subscription number or ID.
  • @param request
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param zuoraVersion The minor version of the Zuora REST API. You need to set this parameter if you use the following fields: * collect * invoice * includeExistingDraftDocItems * previewType * runBilling * targetDate If you have the Advanced AR Settlement feature enabled, you need to specify this parameter. Otherwise, an error is returned. See [Zuora REST API Versions](https://www.zuora.com/developer/api-reference/#section/API-Versions) for more information.
  • @return *PutSubscriptionResponseType

func (SubscriptionsApi) PUTSuspendSubscription

func (a SubscriptionsApi) PUTSuspendSubscription(subscriptionKey string, request PutSubscriptionSuspendType, entityId string, entityName string, zuoraVersion string) (*PutSubscriptionSuspendResponseType, *APIResponse, error)

*

type SummaryJournalEntriesApi

type SummaryJournalEntriesApi struct {
	Configuration *Configuration
}

func NewSummaryJournalEntriesApi

func NewSummaryJournalEntriesApi() *SummaryJournalEntriesApi

func NewSummaryJournalEntriesApiWithBasePath

func NewSummaryJournalEntriesApiWithBasePath(basePath string) *SummaryJournalEntriesApi

func (SummaryJournalEntriesApi) DELETESummaryJournalEntry

func (a SummaryJournalEntriesApi) DELETESummaryJournalEntry(jeNumber string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (SummaryJournalEntriesApi) GETAllSummaryJournalEntries

func (a SummaryJournalEntriesApi) GETAllSummaryJournalEntries(jrNumber string, entityId string, entityName string, pageSize int32) (*GetJournalEntriesInJournalRunType, *APIResponse, error)

*

func (SummaryJournalEntriesApi) GETSummaryJournalEntry

func (a SummaryJournalEntriesApi) GETSummaryJournalEntry(jeNumber string, entityId string, entityName string) (*GetJournalEntryDetailType, *APIResponse, error)

*

func (SummaryJournalEntriesApi) POSTSummaryJournalEntry

func (a SummaryJournalEntriesApi) POSTSummaryJournalEntry(request PostJournalEntryType, entityId string, entityName string) (*PostJournalEntryResponseType, *APIResponse, error)

*

func (SummaryJournalEntriesApi) PUTBasicSummaryJournalEntry

func (a SummaryJournalEntriesApi) PUTBasicSummaryJournalEntry(jeNumber string, request PutBasicSummaryJournalEntryType, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (SummaryJournalEntriesApi) PUTSummaryJournalEntry

func (a SummaryJournalEntriesApi) PUTSummaryJournalEntry(jeNumber string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

type TaxationItemsApi

type TaxationItemsApi struct {
	Configuration *Configuration
}

func NewTaxationItemsApi

func NewTaxationItemsApi() *TaxationItemsApi

func NewTaxationItemsApiWithBasePath

func NewTaxationItemsApiWithBasePath(basePath string) *TaxationItemsApi

func (TaxationItemsApi) DELETETaxationItem

func (a TaxationItemsApi) DELETETaxationItem(id string, entityId string, entityName string) (*CommonResponseType, *APIResponse, error)

*

func (TaxationItemsApi) GETTaxationItem

func (a TaxationItemsApi) GETTaxationItem(id string, entityId string, entityName string) (*GetTaxationItemType, *APIResponse, error)

*

func (TaxationItemsApi) ObjectDELETETaxationItem

func (a TaxationItemsApi) ObjectDELETETaxationItem(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (TaxationItemsApi) ObjectGETTaxationItem

func (a TaxationItemsApi) ObjectGETTaxationItem(id string, entityId string, entityName string, fields string) (*ProxyGetTaxationItem, *APIResponse, error)

*

func (TaxationItemsApi) ObjectPOSTTaxationItem

func (a TaxationItemsApi) ObjectPOSTTaxationItem(createRequest ProxyCreateTaxationItem, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (TaxationItemsApi) ObjectPUTTaxationItem

func (a TaxationItemsApi) ObjectPUTTaxationItem(id string, modifyRequest ProxyModifyTaxationItem, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (TaxationItemsApi) POSTCMTaxationItems

func (a TaxationItemsApi) POSTCMTaxationItems(memoId string, body PostTaxationItemListForCmType, entityId string, entityName string) (*GetTaxationItemListType, *APIResponse, error)

*

func (TaxationItemsApi) POSTDMTaxationItems

func (a TaxationItemsApi) POSTDMTaxationItems(memoId string, body PostTaxationItemListForDmType, entityId string, entityName string) (*GetTaxationItemListType, *APIResponse, error)

*

func (TaxationItemsApi) PUTTaxationItem

func (a TaxationItemsApi) PUTTaxationItem(body PutTaxationItemType, id string, entityId string, entityName string) (*GetTaxationItemType, *APIResponse, error)

*

type TokenResponse

type TokenResponse struct {

	// The access token for the user.
	AccessToken string `json:"access_token,omitempty"`

	// The number of seconds until token expiry.
	ExpiresIn float32 `json:"expires_in,omitempty"`

	// A globally unique identifier for this token.
	Jti string `json:"jti,omitempty"`

	// A space-delimited list of scopes authorized by the user for this client.
	Scope string `json:"scope,omitempty"`

	// The type of the access token issued, i.e. bearer.
	TokenType string `json:"token_type,omitempty"`
}

type TransactionsApi

type TransactionsApi struct {
	Configuration *Configuration
}

func NewTransactionsApi

func NewTransactionsApi() *TransactionsApi

func NewTransactionsApiWithBasePath

func NewTransactionsApiWithBasePath(basePath string) *TransactionsApi

func (TransactionsApi) GETTransactionInvoice

func (a TransactionsApi) GETTransactionInvoice(accountKey string, entityId string, entityName string, pageSize int32) (*GetInvoiceFileWrapper, *APIResponse, error)

*

func (TransactionsApi) GETTransactionPayment

func (a TransactionsApi) GETTransactionPayment(accountKey string, entityId string, entityName string, pageSize int32) (*GetPaymentsType, *APIResponse, error)

*

type TransferPaymentType

type TransferPaymentType struct {

	// The ID of the customer account that the payment is transferred to.
	AccountId string `json:"accountId,omitempty"`
}

type UnapplyCreditMemoType

type UnapplyCreditMemoType struct {

	// Container for debit memos that the credit memo is unapplied from.
	DebitMemos []CreditMemoUnapplyDebitMemoRequestType `json:"debitMemos,omitempty"`

	// The date when the credit memo is unapplied.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Container for invoices that the credit memo is unapplied from.
	Invoices []CreditMemoUnapplyInvoiceRequestType `json:"invoices,omitempty"`
}

type UnapplyPaymentType

type UnapplyPaymentType struct {

	// Container for debit memos.
	DebitMemos []PaymentDebitMemoApplicationUnapplyRequestType `json:"debitMemos,omitempty"`

	// The date when the payment is unapplied, in `yyyy-mm-dd` format.
	EffectiveDate time.Time `json:"effectiveDate,omitempty"`

	// Container for invoices.
	Invoices []PaymentInvoiceApplicationUnapplyRequestType `json:"invoices,omitempty"`
}

type UnitOfMeasureApi

type UnitOfMeasureApi struct {
	Configuration *Configuration
}

func NewUnitOfMeasureApi

func NewUnitOfMeasureApi() *UnitOfMeasureApi

func NewUnitOfMeasureApiWithBasePath

func NewUnitOfMeasureApiWithBasePath(basePath string) *UnitOfMeasureApi

func (UnitOfMeasureApi) ObjectDELETEUnitOfMeasure

func (a UnitOfMeasureApi) ObjectDELETEUnitOfMeasure(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (UnitOfMeasureApi) ObjectGETUnitOfMeasure

func (a UnitOfMeasureApi) ObjectGETUnitOfMeasure(id string, entityId string, entityName string, fields string) (*ProxyGetUnitOfMeasure, *APIResponse, error)

*

func (UnitOfMeasureApi) ObjectPOSTUnitOfMeasure

func (a UnitOfMeasureApi) ObjectPOSTUnitOfMeasure(createRequest ProxyCreateUnitOfMeasure, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (UnitOfMeasureApi) ObjectPUTUnitOfMeasure

func (a UnitOfMeasureApi) ObjectPUTUnitOfMeasure(id string, modifyRequest ProxyModifyUnitOfMeasure, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

type UpdateEntityResponseType

type UpdateEntityResponseType struct {

	// Returns `true` if the request is successful.
	Success bool `json:"success,omitempty"`
}

type UpdateEntityType

type UpdateEntityType struct {

	// The display name of the entity that is shown in the Zuora UI and APIs  **Note:** If you do not specify the display name in the request, the entity name is used as the display name.
	DisplayName string `json:"displayName,omitempty"`

	// The locale that is used in this entity.
	Locale string `json:"locale,omitempty"`

	// The name of the entity that is the entity identifier and is unique across all entities in a multi-entity hierarchy.  **Note:** Only alphanumeric characters (letters A–Z and a–z, and digits 0–9), space, period, and hyphen are allowed to be used in entity names.
	Name string `json:"name,omitempty"`

	// The time zone that is used in this entity.
	Timezone string `json:"timezone,omitempty"`
}

type UpdatePaymentType

type UpdatePaymentType struct {

	// Comments about the payment.
	Comment string `json:"comment,omitempty"`

	// Any custom fields defined for this object. The custom field name is case-sensitive.
	CustomFieldC string `json:"customField__c,omitempty"`

	FinanceInformation CreatePaymentTypeFinanceInformation `json:"financeInformation,omitempty"`
}

type UsageApi

type UsageApi struct {
	Configuration *Configuration
}

func NewUsageApi

func NewUsageApi() *UsageApi

func NewUsageApiWithBasePath

func NewUsageApiWithBasePath(basePath string) *UsageApi

func (UsageApi) GETUsage

func (a UsageApi) GETUsage(accountKey string, entityId string, entityName string, pageSize int32) (*GetUsageWrapper, *APIResponse, error)

*

func (UsageApi) ObjectDELETEUsage

func (a UsageApi) ObjectDELETEUsage(id string, entityId string, entityName string) (*ProxyDeleteResponse, *APIResponse, error)

*

func (UsageApi) ObjectGETUsage

func (a UsageApi) ObjectGETUsage(id string, entityId string, entityName string, fields string) (*ProxyGetUsage, *APIResponse, error)

*

func (UsageApi) ObjectPOSTUsage

func (a UsageApi) ObjectPOSTUsage(createRequest ProxyCreateUsage, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (UsageApi) ObjectPUTUsage

func (a UsageApi) ObjectPUTUsage(id string, modifyRequest ProxyModifyUsage, entityId string, entityName string) (*ProxyCreateOrModifyResponse, *APIResponse, error)

*

func (UsageApi) POSTUsage

func (a UsageApi) POSTUsage(contentType string, entityId string, entityName string) (*PostUsageResponseType, *APIResponse, error)

*

  • Post usage
  • This REST API reference describes how to post or import usage data for one or more accounts in the CSV format. There are no path or query parameters. The data is uploade using the HTTP multipart/form-data POST method and applied to the user&#39;s tenant. ## How this REST API Call Works The content of the upload file must follow the format used by the UI import tool. It must be a comma-separated (CSV) file with a corresponding .csv extension. The file size must not exceed 4MB. Click [here](https://knowledgecenter.zuora.com/@api/deki/files/4105/UsageFileFormat.csv) to download the usage file template. At the completion of the upload, before actually processing the file contents, theAPI returns a response containing the byte count of the received file and a URL for checking the status of the import process. Of the five possible results displayed at that URL Pending, Processing, Completed, Canceled, and Failed) only a Completed status indicates that the import was successful. The operation is atomic; if any record fails, the file is rejected. In that case, the entire import is rolled back and all stored data is returned to its original state. To view the actual import status, enter the resulting status URL from the checkImportStatus response using a tool such as POSTMAN.This additional step provides more information about why the import may have failed. To manage the information after a successful upload, use the web-based UI. ## Upload File Format The upload file uses the following headings: | Heading | Description | Required | |-----------------|--------|----------| | ACCOUNT_ID | Enter the account number, e.g., the default account number, such as A00000001, or your custom account number.,Although this field is labeled as Account_Id, it is not the actual Account ID nor Account Name. | Yes | | UOM | Enter the unit of measure. This must match the UOM for the usage. | Yes | | QTY | Enter the quantity. | Yes | | STARTDATE | Enter the start date of the usage.,This date determines the invoice item service period the associated usage is billed to. Date format is based on locale of the current user. Default date format: &#x60;MM/DD/YYYY&#x60; | Yes | | ENDDATE | Enter the end date of the usage.,This is not used in calculations for usage billing and is optional. Date format is based on locale of the current user. Default date format: &#x60;MM/DD/YYYY&#x60; | Yes | | SUBSCRIPTION_ID | Enter the subscription number or subscription name. If you created the subscription in the Zuora application, Zuora created a number automatically in a format similar to A-S00000001. If you do not provide a value for this field, the associated usage will be added to all subscriptions for the specified Account that use this Unit Of Measure. If your Accounts can have multiple subscriptions and you do not want double or triple counting of usage, you must specify the Subscription or Charge ID in each usage record. | Yes | | CHARGE_ID | Enter the charge number (not the charge name). You can see the charge ID, e.g., C-00000001, when you add your rate plan to your subscription and view your individual charges. If your Accounts can have multiple subscriptions and you do not want double or triple counting of usage, you must specify the specific Subscription or Charge ID in each usage record. This field is related to the Charge Number on the subscription rate plan. | Yes | | DESCRIPTION | Enter a description for the charge. | No | *
  • @param contentType Must be set to \&quot;multipart/form-data\&quot;.
  • @param entityId The Id of the entity that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @param entityName The [name of the entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity/B_Introduction_to_Entity_and_Entity_Hierarchy#Name_and_Display_Name) that you want to access. Note that you must have permission to access the entity. For more information, see [REST Authentication](https://www.zuora.com/developer/api-reference/#section/Authentication/Entity-Id-and-Entity-Name).
  • @return *PostUsageResponseType

type UsersApi

type UsersApi struct {
	Configuration *Configuration
}

func NewUsersApi

func NewUsersApi() *UsersApi

func NewUsersApiWithBasePath

func NewUsersApiWithBasePath(basePath string) *UsersApi

func (UsersApi) GETEntitiesUserAccessible

func (a UsersApi) GETEntitiesUserAccessible(username string, entityId string, entityName string) (*GetEntitiesUserAccessibleResponseType, *APIResponse, error)

*

func (UsersApi) PUTAcceptUserAccess

func (a UsersApi) PUTAcceptUserAccess(username string, entityId string, entityName string) (*PutAcceptUserAccessResponseType, *APIResponse, error)

*

func (UsersApi) PUTDenyUserAccess

func (a UsersApi) PUTDenyUserAccess(username string, entityId string, entityName string) (*PutDenyUserAccessResponseType, *APIResponse, error)

*

func (UsersApi) PUTSendUserAccessRequests

func (a UsersApi) PUTSendUserAccessRequests(username string, request PutSendUserAccessRequestType, entityId string, entityName string) (*PutSendUserAccessRequestResponseType, *APIResponse, error)

*

type ZObject

type ZObject struct {
}

type ZObjectUpdate

type ZObjectUpdate struct {

	//
	Id string `json:"Id,omitempty"`

	//
	FieldsToNull string `json:"fieldsToNull,omitempty"`
}

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL